You are on page 1of 11

Gii thiu v MYSQL SQL l chun ngn ng ANSI truy cp CSDL. SQL l g?

? * SQL l vit tt ca Structured Query Language - Ngn ng truy vn cu trc. * SQL cho php bn truy cp vo CSDL. * SQL l mt chun ngn ng ca ANSI. * SQL c th thc thi cc cu truy vn trn CSDL. * SQL c th ly d liu t CSDL. * SQL c th chn d liu mi vo CSDL. * SQL c th xo d liu trong CSDL. * SQL c th sa i d liu hin c trong CSDL. * SQL d hc SQL l mt chun SQL l mt chun ca ANSI (American National Standards Institute - Vin tiu chun quc gia Hoa k) v truy xut cc h thng CSDL. Cc cu lnh SQL c s dng truy xut v cp nht d liu trong mt CSDL. SQL hot ng vi hu ht cc chng trnh CSDL nh MS Access, DB2, Informix, MS SQL Server,Oracle, Sybase v.v... Lu : Hu ht cc chng trnh CSDL h tr SQL u c phn m rng cho SQL ch hot ng vi chnh chng trnh . Bng CSDL Mt CSDL thng bao gm mt hoc nhiu bng (table). Mi bng c xc nh thng qua mt tn (v d Customers hoc Orders). Bng cha cc mu tin - dng (record - row), l d liu ca bng. Di y l mt v d v mt bng c tn l Persons (ngi): LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23Sandnes Pettersen Kari Storgt 20 Stavanger Bng trn bao gm 3 mu tin (dng), mi mu tin tng ng vi mt ngi, v bn ct (LastName,FirstName, Address v City). Cu truy vn SQL Vi SQL ta c th truy vn CSDL v nhn ly kt qu tr v thng qua cc cu truy vn. Mt cu truy vn nh sau: SELECT LastName FROM Persons S tr v kt qu nh sau: LastName Hansen Svendson Pettersen Lu : Mt s h thng CSDL i hi cu lnh SQL phi kt thc bng mt du chm phy (;). Chng ta s khng dng du chm phy trong bi vit ny. SQL l ngn ng thao tc d liu (DML - Data Manipulation Language) SQL l c php thc thi cc cu truy vn. SQL cng bao gm c php cp nht - sa i, chn thm v xo cc mu tin. Sau y l danh sch cc lnh v truy vn dng DML ca SQL: SELECT - ly d liu t mt bng CSDL. UPDATE - cp nht/sa i d liu trong bng. DELETE - xo d liu trong bng. INSERT INTO - thm d liu mi vo bng. SQL l ngn ng nh ngha d liu (DDL - Data Definition Language) Phn DDL ca SQL cho php to ra hoc xo cc bng. Chng ta cng c th nh ngha cc kho (key), ch mc (index), ch nh cc lin kt gia cc bng v thit lp cc quan h rng buc gia cc bng trong CSDL. Cc lnh DDL quan trng nht ca SQL l: CREATE TABLE - to ra mt bng mi. ALTER TABLE - thay i cu trc ca bng. DROP TABLE - xo mt bng.

CREATE INDEX - to ch mc (kho tm kim - search key). DROP INDEX - xo ch mc c to. Mnh WHERE Mnh WHERE c dng thit lp iu kin truy xut. Mnh WHERE truy xut d liu trong bng theo cc iu kin no , mt mnh WHERE c th c thm vo cu lnh SELECT. C php C php mnh WHERE trong cu lnh SELECT nh sau: SELECT tn_ct FROM tn_bng WHERE tn_ct php_ton gi_tr Trong mnh WHERE, cc php ton c s dng l Php ton M t = So snh bng <> So snh khng bng > Ln hn < Nh hn >= Ln hn hoc bng <= Nh hn hoc bng BETWEEN Nm gia mt khong LIKE So snh mu chui Lu : Trong mt s phin bn ca SQL, php ton <> c th c vit di dng != S dng mnh WHERE ly danh sch nhng ngi sng thnh ph Sandnes, ta s dng mnh WHERE trong cu lnh SELECT nh sau: SELECT * FROM Persons WHERE City = 'Sandnes' Bng Persons:
LastNameFirstNameAddressCityYearHansenOlaTimoteivn 10Sandnes1951SvendsonToveBorgvn 23Sandnes1978SvendsonStaleKaivn 18Sandnes1980PettersenKariStorgt 20Stavanger1960

Kt qu tr v:
LastNameFirstNameAddressCityYearHansenOlaTimoteivn 10Sandnes1951SvendsonToveBorgvn 23Sandnes1978SvendsonStaleKaivn 18Sandnes1980

S dng du nhy Lu rng v d trn ta s dng hai du nhy n (') bao quanh gi tr iu kin 'Sandnes'. SQL s dng du nhy n bao quanh cc gi tr dng chui vn bn (text). Nhiu h CSDL cn cho php s dng du nhy kp ("). Cc gi tr dng s khng dng du nhy bao quanh. Vi d liu dng chui vn bn: Cu lnh ng: SELECT * FROM Persons WHERE FirstName = 'Tove' Cu lnh sai: SELECT * FROM Persons WHERE FirstName = Tove Vi d liu dng s: Cu lnh ng: SELECT * FROM Persons WHERE Year > 1965 Cu lnh sai: SELECT * FROM Persons WHERE Year > '1965' Php ton iu kin LIKE Php ton LIKE c dng tm kim mt chui mu vn bn trn mt ct. C php C php ca php ton LIKE nh sau: SELECT tn_ct FROM tn_bng WHERE tn_ct LIKE mu Mt k hiu % c th c s dng nh ngha cc k t i din. % c th c t trc v/hoc sau mu.

S dng LIKE Cu lnh SQL sau s tr v danh sch nhng ngi c tn bt u bng ch O: SELECT * FROM Persons WHERE FirstName LIKE 'O%' Cu lnh SQL sau s tr v danh sch nhng ngi c tn kt thc bng ch a: SELECT * FROM Persons WHERE FirstName LIKE '%a' Cu lnh SQL sau s tr v danh sch nhng ngi c tn kt cha chui la:SELECT * FROM Persons WHERE FirstName LIKE '%la%' Ton t l-gic AND v OR AND v OR Hai ton t AND v OR ni hai hoc nhiu iu kin trong mnh WHERE li vi nhau. Ton t AND s hin th 1 dng nu TT C cc iu kin u tho mn. Ton t OR hin th mt dng nu BT K iu kin no c tho. Bng d liu dng trong v d
LastNameFirstNameAddressCityHansenOlaTimoteivn 10SandnesSvendsonToveBorgvn 23SandnesSvendsonStephenKaivn 18Sandnes

V d 1 S dng AND tm nhng ngi c tn l Tove v h l Svendson: SELECT * FROM PersonsWHERE FirstName = 'Tove'AND LastName = 'Svendson' Kt qu tr v:
LastNameFirstNameAddressCitySvendsonToveBorgvn 23Sandnes

V d 2 S dng OR tm nhng ngi c tn l Tove hoc h l Svendson: SELECT * FROM PersonsWHERE firstname = 'Tove'OR lastname = 'Svendson' Kt qu tr v:
LastNameFirstNameAddressCitySvendsonToveBorgvn 23SandnesSvendsonStephenKaivn 18Sandnes

V d 3 Bn cng c th s dng kt hp AND v OR cng vi du ngoc n to nn cc cu truy vn phc tp: SELECT * FROM Persons WHERE(FirstName = 'Tove' OR FirstName = 'Stephen')AND LastNam e ='Svendson' Kt qu tr v:
LastNameFirstNameAddressCitySvendsonToveBorgvn 23SandnesSvendsonStephenKaivn 18Sandnes

Ton t BETWEEN...AND Ton t BETWEEN...AND ly ra mt min d liu nm gia hai gi tr. Hai gi tr ny c th l s, chui vn bn hoc ngy thng. SELECT tn_ct FROM tn_bng WHERE tn_ct BETWEEN gi_tr_1 AND gi_tr_2 Bng d liu dng trong v d
LastNameFirstNameAddressCityHansenOlaTimoteivn 10SandnesNordmannAnnaNeset 18SandnesPettersenKariStorgt 20StavangerSvendsonToveBorgvn 23Sandnes

V d 1 Tm tt c nhng ngi c h (sp xp theo ABC) nm gia Hansen (tnh lun Hansen) v Pettersen(khng tnh Pettersen): SELECT * FROM Persons WHERE LastName BETWEEN 'Hansen' AND 'Pettersen' Kt qu tr v:
LastNameFirstNameAddressCityHansenOlaTimoteivn 10SandnesNordmannAnnaNeset 18Sandnes

Lu quan trng: Ton t BETWEEN...END s tr v nhng kt qu khc nhau trn cc h CSDL khc nhau. Vi mt s h CSDL, ton t BETWEEN...END s tr v cc dng m c gi tr thc s "nm gia" hai khong gi tr (tc l b qua khng tnh n cc gi tr trng vi gi tr ca hai u mt). Mt s h CSDL th s tnh lun cc gi tr trng vi hai u mt. Trong khi mt s h CSDL khc li ch tnh cc gi tr trng vi u mt th nht m khng tnh u mt th hai (nh v d pha trn). Do vy, bn phi kim tra li h CSDL m bn ang dng khi s

dng ton t BETWEEN...AND. V d 2 tm nhng ngi c h (sp xp theo ABC) nm ngoi khong hai gi tr v d 1, ta dng thm ton t NOT: SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Hansen' AND 'Pettersen' Kt qu tr v:
LastNameFirstNameAddressCityPettersenKariStorgt 20StavangerSvendsonToveBorgvn 23Sandnes

Cu lnh INSERT INTO. Cu lnh INSERT INTO Cu lnh INSERT INTO c dng chn dng mi vo bng. C php: INSERT INTO tn_bng VALUES (gi_tr_1, gi_tr_2,....) Bn cng c th ch r cc ct/trng no cn chn d liu: INSERT INTO tn_bng (ct_1, ct_2,...) VALUES (gi_tr_1, gi_tr_2,....) Chn 1 dng mi Ta c bng Persons nh sau:
LastNameFirstNameAddressCityPettersenKariStorgt 20Stavanger

Cu lnh SQL sau: INSERT INTO Persons VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes') s tora kt qu trong bng Persons nh sau:
LastNameFirstNameAddressCityPettersenKariStorgt 20StavangerHetlandCamillaHagabakka 24Stavanger

Chn d liu vo cc ct/trng c th Vi bng Persons nh trn, cu lnh SQL sau: INSERT INTO Persons (LastName, Address) VALUES ('Rasmussen', 'Storgt 67') S to ra kt qu:
LastNameFirstNameAddressCityPettersenKariStorgt 20StavangerHetlandCamillaHagabakka 24StavangerRasmussenStorgt 67

Cu lnh UPDATE Cu lnh UPDATE Cu lnh UPDATE c s dng cp nht/sa i d liu c trong bng. C php: UPDATE tn_bng SET tn_ct = gi_tr_mi WHERE tn_ct = gi_tr V d: bng Person ca ta nh sau: LastNameFirstNameAddressCityNilsenFredKirkegt 56StavangerRasmussenStorgt 67 Cp nht 1 ct trn 1 dng Gi s ta mun b xung thm phn tn cho ngi c h l Rasmussen: UPDATE Person SET FirstName = 'Nina' WHERE LastName = 'Rasmussen' Ta s c kt qu nh sau: LastNameFirstNameAddressCityNilsenFredKirkegt 56StavangerRasmussenNinaStorgt 67 Cp nht nhiu ct trn 1 dng By gi ta li mun i tn v a ch:

UPDATE Person SET Address = 'Stien 12', City = 'Stavanger' WHERE LastName = 'Rasmussen' Kt qu s l: LastNameFirstNameAddressCityNilsenFredKirkegt 56StavangerRasmussenNinaStien 12Stavanger Cu lnh DELETE Cu lnh DELETE c dng xo cc dng ra khi bng. C php: DELETE FROM tn_bng WHERE tn_ct = gi_tr V d: Bng Person ca ta nh sau:
LastNameFirstNameAddressCityNilsenFredKirkegt 56StavangerRasmussenNinaStien 12Stavanger

Xo 1 dng: Ta xo ngi c tn l Nina Rasmussen: DELETE FROM Person WHERE LastName = 'Rasmussen' Kt qu sau khi xo:
LastNameFirstNameAddressCityNilsenFredKirkegt 56Stavanger

Xo tt c cc dng: i khi ta mun xo tt c d liu trong bng nhng vn gi li bng cng vi cu trc v tt c cc thuc tnh ca bng, ta c th dng cu lnh: DELETE FROM table_name hocDELETE * FROM table_name Hm COUNT SQL c sn lnh m cc dng trong CSDL. C php ca hm COUNT: SELECT COUNT(tn_ct) FROM tn_bng Hm COUNT :

Hm COUNT tr v s lng cc dng c chn trong bng. V d ta c bng Persons nh sau:


NameAgeHansen, Ola34Svendson, Tove45Pettersen, Kari19

Cu lnh sau s tr v s lng cc dng trong bng: SELECT COUNT(*) FROM Persons v kt qu tr v s l: 3 Cu lnh sau s tr v s lng nhng ngi ln hn 20 tui: SELECT COUNT(*) FROM Persons WHERE Age > 20 kt qu tr v s l: 2 Hm COUNT(column): Hm COUNT(column) s tr v s lng cc dng c gi tr khc NULL ct c ch nh. V d ta c bng Persons nh sau:
NameAgeHansen, Ola34Svendson, Tove45Pettersen, Kari

Cu lnh sau s tr v s lng nhng ngi m ct Age trong bng khng rng: SELECT COUNT(Age) FROM Persons v kt qu tr v s l: 2 Mnh COUNT DISTINCT Lu : Cc v d di y ch hot ng vi CSDL Oracle v MS SQL Server, khng hot ng trn MS Access (cha th nhim vi cc h CSDL khc!) T kho DISTINCT v COUNT c th c dng chung vi nhau m s lng cc kt qu khng trng nhau. C php nh sau:

SELECT COUNT(DISTINCT column(s)) FROM table V d ta c bng Orders nh sau:


CompanyOrderNumberSega3412W3Schools2312Trio4678W3Schools6798

Cu lnh SQL sau: SELECT COUNT(DISTINCT Company) FROM Orders s tr v kt qu l:3 Phn Nng cao-Hm SQL c sn kh nhiu hm thc hin m v tnh ton. C php: C php gi hm trong cu lnh SQL nh sau: SELECT function(tn_ct) FROM tn_bng Bng d liu chng ta s dng trong cc v s tip theo:
NameAgeHansen, Ola34Svendson, Tove45Pettersen, Kari19

Hm AVG(column) Hm AVG tr v gi tr trung bnh tnh theo ct c ch nh ca cc dng c chn. Cc gi tr NULL s khng c xt n khi tnh gi tr trung bnh. V d: Cu lnh sau s tnh s tui trung bnh ca nhng ngi c tui trn 20: SELECT AVG(Age) FROM Persons WHERE Age > 20 kt qu tr v s l: 39.5 Hm MAX(column) Hm MAX tr v gi tr ln nht trong ct. Cc gi tr NULL s khng c xt n. V d: SELECT MAX(Age) FROM Persons kt qu tr v: 45 Hm MIN(column) Hm MAX tr v gi tr nh nht trong ct. Cc gi tr NULL s khng c xt n. V d: SELECT MIN(Age) FROM Persons kt qu tr v: 19 Lu : Hm MIN v MAX cng c th p dng cho cc ct c d liu l chui vn bn. D liu trong ct s c so snh theo th t tng dn ca t in Hm SUM(column) Hm SUM tr v tng gi tr ca ct. Cc gi tr NULL s khng c xt n. V d: Tm tng s tui ca tt c nhng ngi c trong bng: SELECT SUM(Age) FROM Persons kt qu tr v: 98 V d: Tm tng s tui ca tt c nhng ngi c tui ln hn 20: SELECT SUM(Age) FROM Persons WHERE Age > 20 kt qu tr v:79 To CSDL v bng vi CREATE To mt CSDL CREATE DATABASE tn_CSDL To mt bng trong mt CSDL CREATE TABLE tn_bng ( tn_ct_1 kiu_d_liu,

tn_ct_2 kiu_d_liu, ....... ) V d To mt bng tn Person c bn ct: LastName, FirstName, Address v Age: CREATE TABLE Person ( LastName varchar, FirstName varchar, Address varchar, Age int ) To bng v t kch thc ti a ca cc ct: CREATE TABLE Person ( LastName varchar(30), FirstName varchar, Address varchar, Age int(3) ) Kiu d liu s qui nh loi d liu no c php lu tr trong ct. Sau y l cc kiu d liu thng dng nht trong SQL: integer(n) int(n) smallint(n) tinyint(n)Ch lu tr d liu l s nguyn. S lng ti a cc ch s c qui nh bi n.decimal(n,d) numeric(n,d)Lu tr s thp nhn. S lng ti a cc ch s c qui nh bi n. S lng ti a cc ch s sau du phy thp phn c qui nh bi d.char(n)Lu tr n k t.varchar(n)Lu tr ti a n k t.date(yyyymmdd)Lu tr ngy thng (dng nm-thng-ngy) To ch mc Ch mc c to ra nhm cc dng trong bng c truy xut nhanh v hiu qu hn. Ch mc c th c to trn mt hoc nhiu ct ca bng, v mi ch mc c t mt tn. Ngi dng khng thy c cc ch mc ny, chng ch c dng tng tc cho CSDL. Lu : Sau khi bng c to ch mc th vic cp nht thay thm dng mi vo bng s mt nhiu thi gian hn l i vi bng khng c ch mc. L do l v khi cp nht bng, cc ch mc ng thi cng phi c cp nht theo. V th, ta ch nn to ch mc cho cc ct thng xuyn dng trong cc tc v tm kim. Ch mc n nht (Unique Index) Ch mc n nht s bt buc hai dng bt k ca bng s khng c php mang cng gi tr ct c to ch mc. C php: CREATE UNIQUE INDEX tn_ch_mc ON tn_bng (tn_ct) Ch mc n (Simple Index) Khi khng dng t kho UNIQUE trong cu lnh to ch mc, cc gi tr trng nhau trong ct s c php. C php: CREATE INDEX tn_ch_mc ON tn_bng (tn_ct) V d To mt ch mc n c tn l PersonIndex trn ct LastName ca bng Person: CREATE INDEX PersonIndex ON Person (LastName) Nu bn mun to ch mc sp xp gim dn, bn s dng thm t dnh ring DESC:

CREATE INDEX PersonIndex ON Person (LastName DESC) Nu bn mun to ch mc trn nhiu ct: CREATE INDEX PersonIndex ON Person (LastName, Firstname) Xo ch mc Bn c th xo ch mc to bng lnh DROP. DROP INDEX tn_bng.tn_ch_mc Xo CSDL hoc bng xo mt CSDL (cc bng trong CSDL cng ng thi c xo): DROP DATABASE tn_CSDL xo mt bng (ton b cu trc, d liu v ch mc ca bng s c xo):DROP TABLE tn_bng Cu lnh ALTER Thay i cu trc bng. Cu lnh ALTER TABLE c s dng thm hoc xo ct trong mt bng. ALTER TABLE tn_bng ADD tn_ct kiu_d_liu ALTER TABLE tn_bng DROP COLUMN tn_ct Lu : Mt s h CSDL khng cho php vic xo b ct trong bng. V d: ta c bng Person nh sau:
LastNameFirstNameAddressPettersenKariStorgt 20

Thm mt ct tn l City vo bng Person: ALTER TABLE Person ADD City varchar(30) kt qu:
LastNameFirstNameAddressCityPettersenKariStorgt 20

Xo ct Address: ALTER TABLE Person DROP COLUMN Address kt qu:


LastNameFirstNameCityPettersenKari

GROUP BY v HAVING Cc hm tp hp (v d nh SUM) thng thng cn thm chc nng ca mnh GROUP BY. GROUP BY... Mnh GROUP BY...c thm vo SQL bi v cc hm tp hp (nh SUM) tr v mt tp hp ca cc gi tr trong ct mi khi chng c gi, v nu khng c GROUP BY ta khng th no tnh c tng ca cc gi tr theo tng nhm ring l trong ct. C php ca GROUP BY nh sau: SELECT tn_ct, SUM(tn_ct) FROM tn_bng GROUP BY tn_ct V d s dng GROUP BY: Gi s ta c bng Sales nh sau:
CompanyAmountW3Schools5500IBM4500W3Schools7100

Cu lnh SQL sau: SELECT Company, SUM(Amount) FROM Sales s tr v kt qu:


CompanySUM(Amount)W3Schools17100IBM17100W3Schools17100

Kt qu tr v trn i khi khng phi l ci m ta mong i. Ta thm mnh GROUP BY vo trong cu lnh SQL: SELECT Company, SUM(Amount) FROM Sales GROUP BY Company v kt qu tr v ln ny s l:
CompanySUM(Amount)W3Schools12600IBM4500

Kt qu ny ng l ci m ta mong mun. HAVING... Mnh HAVING...c thm vo SQL v mnh WHERE khng p dng c i vi cc

hm tp hp (nh SUM). Nu khng c HAVING, ta khng th no kim tra c iu kin vi cc hm tp hp. C php ca HAVING nh sau: SELECT tn_ct, SUM(tn_ct) FROM tn_bng GROUP BY tn_ct HAVING SUM(tn_ct) iu_kin gi_tr Ta s dng li bng Sales trn. Cu lnh SQL sau: SELECT Company, SUM(Amount) FROM Sales GROUP BY Company HAVING SUM(Amount) > 10000 s tr v kt qu:
CompanySUM(Amount)W3Schools12600

B danh Vi SQL, b danh c th c s dng cho tn ca ct v tn ca bng. B danh ct: C php b danh ct nh sau: SELECT tn_ct AS b_danh_ct FROM tn_bng B danh bng: B danh bng c c php nh sau: SELECT tn_ct FROM tn_bng AS b_danh_bng V d s dng b danh ct: Ta c bng Persons nh sau:
LastNameFirstNameAddressCityHansenOlaTimoteivn 10SandnesSvendsonToveBorgvn 23SandnesPettersenKariStorgt 20Stavanger

Cu lnh SQL sau: SELECT LastName AS H, FirstName AS Tn FROM Persons S tr v kt qu:


HTnHansenOlaSvendsonTovePettersenKari

Cu lnh JOIN Ni kt v kho i khi chng ta phi ly d liu t hai bng cng mt lc, chng ta thc hin mt kt ni. Cc bng trong CSDL c th quan h rng buc vi nhau thng qua cc kho. Mt kho chnh (primary key) l mt ct m trong mi gi tr ca hng phi l duy nht. Mc ch ca kho l kt ni d liu li vi nhau, t nhiu bng khc nhau m khng gy trng lp d liu gia cc bng. Trong bng Employees (nhn vin) v d di y c ct Employees_ID l kho chnh, bo m rng khng th c hai dng no c trng Employees_ID. Employees_ID dng phn bit hai nhn vin khi h trng tn. Trong v d di y: Employee_ID l kho chnh ca bng Employees. Prod_ID l kho chnh ca bng Orders. Ct Employeed_ID trong bng Orders c s dng kt ni vi bng Employees, ch n nhn vin trong bng Employees. Bng Employees:
Employees_IDName01Hansen, Ola02Svendson, Tove03Svendson, Stephen04Pettersen, Kari

Bng Orders:
Prod_IDProductEmployee_ID234Printer01657Table03865Chair03

Kt ni hai bng vi nhau Chng ta c th ly d liu t hai bng bng cch kt ni chng, tng t nh sau: V d: Tm xem ai t hng sn phm v h t mn hng g:

SELECT Employees.Name, Orders.Product FROM Employees, Orders WHERE Employees.Employee_ID = Orders.Employee_ID kt qu tr v:


NameProductHansen, OlaPrinterSvendson, StephenTableSvendson, StephenChair

V d: Tm xem ai t hng my in: SELECT Employees.Name FROM Employees, Orders WHERE Employees.Employee_ID = Orders.Employee_ID AND Orders.Product = 'Printer' kt qu tr v:
NameHansen, Ola

S dng JOIN Ta c th s dng t kho JOIN kt ni d liu t hai bng. V d: INNER JOIN C php: SELECT ct_1, ct_2, ct_3 FROM bng_1 INNER JOIN bng_2 ON bng_1.kho_chnh = bng_2.kho_ngoi Ai t hng v h t mn hng no: SELECT Employees.Name, Orders.Product FROM Employees INNER JOIN Orders ON Employees.Employee_ID = Orders.Employee_ID INNER JOIN tr v tt c cc dng c hai bng khi chng tng ng vi nhau. Nu c mt dng bng Employees khng ng vi dng no bng Orders, dng s khng c tnh. kt qu tr v:
NameProductHansen, OlaPrinterSvendson, StephenTableSvendson, StephenChair

V d: LEFT JOIN C php: SELECT ct_1, ct_2, ct_3 FROM bng_1 LEFT JOIN bng_2 ON bng_1.kho_chnh = bng_2.kho_ngoi Lit k tt c cc nhn vin v mn hng m h t (nu c): SELECT Employees.Name, Orders.Product FROM Employees LEFT JOIN Orders ON Employees.Employee_ID = Orders.Employee_ID LEFT JOIN tr v tt c cc dng ca bng th nht (Employees), ngay c khi cc dng khng ng vi dng no bng th hai (Orders). Nu c mt dng no bng Employees khng ng vi bt c dng no bng Orders th dng cng vn c tnh. kt qu tr v:
NameProductHansen, OlaPrinterSvendson, ToveSvendson, StephenTableSvendson, StephenChairPettersen, Kari

V d: RIGHT JOIN C php: SELECT ct_1, ct_2, ct_3 FROM bng_1 RIGHT JOIN bng_2 ON bng_1.kho_chnh = bng_2.kho_ngoi Lit k tt c cc mt hng c t v tn ngi t hng (nu c): SELECT Employees.Name, Orders.Product FROM Employees RIGHT JOIN Orders ON Employees.Employee_ID = Orders.Employee_ID

RIGHT JOIN tr v tt c cc dng bng th hai (Orders), ngay c khi cc dng khng ng vi dng no bng th nht (Employees). Nu c mt dng no bng Orders khng ng vi bt c dng no bng Employees th dng cng vn c tnh. kt qu tr v:
NameProductHansen, OlaPrinterSvendson, StephenTableSvendson, StephenChair

V d: Ai t hng my in: SELECT Employees.Name FROM Employees INNER JOIN Orders ON Employees.Employee_ID = Orders.Employee_ID WHERE Orders.Product = 'Printer' kt qu tr v:
NameHansen, Ola

You might also like