Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

Hc SQL cn bn y (p1) !

Mnh thy trn cc din n rt t v Mysql . V th ny mo mi su tm v b sung cho nhng ai cha bit cht g v Mysql . Rt mong cc bn ng h ! ng bi: admin S ln xem: 548 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 Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes 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 DROP INDEX - xo ch mc c to.

- search key).

Hc SQL cn bn y (p2) !

Mnh thy trn cc din n rt t v Mysql . V th ny mo mi su tm v b sung cho nhng ai cha bit cht g v Mysql . Phn 1 ng bi: admin S ln xem: 425

Cu lnh SELECT Cu lnh SELECT c dng truy xut d liu t mt bng. Kt qu tr v di dng bng c lu trong 1 bng, gi l bng kt qu - result table (cn c gi l tp kt qu - result set). C php C php ca cu lnh SELECT nh sau:
SELECT tn_cc_ct FROM tn_bng

Truy xut nhiu ct truy xut cc ct mang tn LastName v FirstName, ta dng mt cu lnh SELECT nh sau:
SELECT LastName, FirstName FROM Persons

Bng Persons:
LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Kt qu tr v:
LastName Hansen Svendson Pettersen FirstName Ola Tove Kari

Truy xut tt c cc ct truy xut tt c cc ct t bng Persons, ta dng k hiu * thay cho danh sch cc ct:
SELECT * FROM Persons

Kt qu tr v:
LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Tp kt qu Kt qu tr v t mt cu truy vn SQL c lu trong 1 tp kt qu (result set). Hu ht cc h thng chng trnh CSDL cho php duyt qua tp kt qu bng cc hm lp trnh nh Move-To-First-Record, Get-Record-Content, Move-To-Next-Record v.v...

Du chm phy (;) pha sau cu lnh Du chm phy l mt cch chun phn cch cc cu lnh SQL nu nh h thng CSDL cho php nhiu cu lnh SQL c thc thi thng qua mt li gi duy nht. Cc cu lnh SQL trong bi vit ny u l cc cu lnh n (mi cu lnh l mt v ch mt lnh SQL). MS Access v MS SQL Server khng i hi phi c du chm phy ngay sau mi cu lnh SQL, nhng mt s chng trnh CSDL khc c th bt buc bn phi thm du chm phy sau mi cu lnh SQL (cho d l cu lnh n). Xin nhc li, trong bi vit ny chng ta s khng dng du chm phy cui cu lnh SQL. Hc SQL cn bn y (p3) !

Mnh thy trn cc din n rt t v Mysql . V th ny mo mi su tm v b sung cho nhng ai cha bit cht g v Mysql
ng bi: admin S ln xem: 395

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 = <> > < >= <= BETWEEN LIKE M t So snh bng So snh khng bng Ln hn Nh hn Ln hn hoc bng Nh hn hoc bng Nm gia mt khong 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:
LastName Hansen Svendson Svendson Pettersen FirstName Ola Tove Stale Kari Address Timoteivn 10 Borgvn 23 Kaivn 18 Storgt 20 City Sandnes Sandnes Sandnes Stavanger Year 1951 1978 1980 1960

Kt qu tr v:
LastName Hansen Svendson Svendson FirstName Ola Tove Stale Address Timoteivn 10 Borgvn 23 Kaivn 18 City Sandnes Sandnes Sandnes Year 1951 1978 1980

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%'

Hc SQL cn bn y (p4) !

Mnh thy trn cc din n rt t v Mysql . V th ny mo mi su tm v b sung cho nhng ai cha bit cht g v Mysql ng bi: admin S ln xem: 289
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
LastName Hansen Svendson Svendson FirstName Ola Tove Stephen Address Timoteivn 10 Borgvn 23 Kaivn 18 City Sandnes Sandnes Sandnes

V d 1 S dng AND tm nhng ngi c tn l Tove v h l Svendson:


SELECT * FROM Persons WHERE FirstName = 'Tove' AND LastName = 'Svendson'

Kt qu tr v:
LastName Svendson FirstName Tove Address Borgvn 23 City Sandnes

V d 2 S dng OR tm nhng ngi c tn l Tove hoc h l Svendson:


SELECT * FROM Persons WHERE firstname = 'Tove' OR lastname = 'Svendson'

Kt qu tr v:
LastName Svendson Svendson FirstName Tove Stephen Address Borgvn 23 Kaivn 18 City Sandnes Sandnes

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 LastName = 'Svendson'

Kt qu tr v:
LastName Svendson Svendson FirstName Tove Stephen Address Borgvn 23 Kaivn 18 City Sandnes Sandnes

Hc SQL cn bn y (p5) !

Tip tc no ! Bt u mi tay ri y :D
ng bi: admin S ln xem: 362

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


LastName FirstName Address City

Hansen Nordmann Pettersen Svendson

Ola Anna Kari Tove

Timoteivn 10 Neset 18 Storgt 20 Borgvn 23

Sandnes Sandnes Stavanger Sandnes

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:
LastName Hansen Nordmann FirstName Ola Anna Address Timoteivn 10 Neset 18 City Sandnes Sandnes

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:
LastName Pettersen Svendson FirstName Kari Tove Address Storgt 20 Borgvn 23 City Stavanger Sandnes

Hc SQL cn bn y (p6) !

Tip tip tip no :((

ng bi: admin S ln xem: 311

T kho DISTINCT c dng lc ra cc gi tr khc nhau. T kho DISTINCT

Cu lnh SELECT s tr v thng tin v cc ct trong bng. Nhng nu chng ta khng mun ly v cc gi tr trng nhau th sau? Vi SQL, ta ch cn thm t kho DISTINCT vo cu lnh SELECT theo c php sau:
SELECT DISTINCT tn_ct FROM tn_bng

V d: Tm tt c cc cng ty trong bng t hng Bng t hng ca ta nh sau:


Company Sega W3Schools Trio W3Schools OrderNumber 3412 2312 4678 6798

Cu lnh SQL sau:


SELECT Company FROM Orders

S tr v kt qu:
Company Sega W3Schools Trio W3Schools

Tn cng ty W3Schools xut hin hai ln trong kt qu, i khi y l iu chng ta khng mun. V d: Tm tt c cc cng ty khc nhau trong bng t hng Cu lnh SQL sau:
SELECT DISTINCT Company FROM Orders

S tr v kt qu:
Company Sega W3Schools Trio

Tn cng ty W3Schools by gi ch xut hin 1 ln, i khi y l iu chng ta mong mun. Hc SQL cn bn y (p7) !

Tm ngh dng sc nha p kon :(

ng bi: admin S ln xem: 323

T kho ORDER BY c s dng sp xp kt qu tr v. Sp xp cc dng Mnh ORDER BY c dng sp xp cc dng. V d bng Orders:
Company Sega ABC Shop W3Schools W3Schools OrderNumber 3412 5678 2312 6798

V d: ly danh sch cc cng ty theo th t ch ci (tng dn):


SELECT Company, OrderNumber FROM Orders ORDER BY Company

Kt qu tr v:
Company ABC Shop Sega W3Schools W3Schools OrderNumber 5678 3412 6798 2312

V d: Ly danh sch cc cng ty theo th t ch ci (tng dn) v ho n t hng theo th t s tng dn:
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber

Kt qu tr v:
Company ABC Shop Sega W3Schools W3Schools OrderNumber 5678 3412 2312 6798

V d: Ly danh sch cc cng ty theo th t gim dn:

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

Kt qu tr v:
Company W3Schools W3Schools Sega ABC Shop OrderNumber 6798 2312 3412 5678

Hc SQL cn bn y (p8) !

Hc SQL cn bn y (p8) !

ng bi: admin S ln xem: 504

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:


LastName Pettersen FirstName Kari Address Storgt 20 City Stavanger

Cu lnh SQL sau:


INSERT INTO Persons VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes')

s tora kt qu trong bng Persons nh sau:


LastName Pettersen Hetland FirstName Kari Camilla Address Storgt 20 Hagabakka 24 City Stavanger Stavanger

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:
LastName Pettersen Hetland Rasmussen FirstName Kari Camilla Address Storgt 20 Hagabakka 24 Storgt 67 City Stavanger Stavanger

Hc SQL cn bn y (p9) !

Hc SQL cn bn y (p9) !

ng bi: admin S ln xem: 477

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:


LastName Nilsen Rasmussen FirstName Fred Address Kirkegt 56 Storgt 67 City Stavanger

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:
LastName Nilsen Rasmussen FirstName Fred Nina Address Kirkegt 56 Storgt 67 City Stavanger

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:
LastName Nilsen Rasmussen FirstName Fred Nina Address Kirkegt 56 Stien 12 City Stavanger Stavanger

You might also like