
H c SQL căn b n đây (p1) ! ọ ả
Mình th y trên các di n đàn r t ít v Mysql . Vì th này m o m i s u t m và b sung cho nh ng ai ch aấ ễ ấ ề ế ạ ụ ư ầ ổ ữ ư
bi t chút gì v Mysql . R t mong các b n ng h ! ế ề ấ ạ ủ ộ Đăng b i: ởadmin S l n xem: 548ố ầ
SQL là chu n ngôn ng ANSI đ truy c p CSDL.ẩ ữ ể ậ
SQL là gì?
•SQL là vi t t t c a ế ắ ủ Structured Query Language - Ngôn ng truy v n c u trúc.ữ ấ ấ
•SQL cho phép b n truy c p vào CSDL.ạ ậ
•SQL là m t chu n ngôn ng c a ANSI.ộ ẩ ữ ủ
•SQL có th th c thi các câu truy v n trên CSDL.ể ự ấ
•SQL có th l y d li u t CSDL.ể ấ ữ ệ ừ
•SQL có th chèn d li u m i vào CSDL.ể ữ ệ ớ
•SQL có th xoá d li u trong CSDL.ể ữ ệ
•SQL có th s a đ i d li u hi n có trong CSDL.ể ử ổ ữ ệ ệ
•SQL d h c :-)ễ ọ
SQL là m t chu nộ ẩ
SQL là m t chu n c a ANSI (ộ ẩ ủ American National Standards Institute - Vi n tiêu chu n qu c gia Hoa kỳ) vệ ẩ ố ề
truy xu t các h th ng CSDL. Các câu l nh SQL đ c s d ng đ truy xu t và c p nh t d li u trong m tấ ệ ố ệ ượ ử ụ ể ấ ậ ậ ữ ệ ộ
CSDL.
SQL ho t đ ng v i h u h t các ch ng trình CSDL nh ạ ộ ớ ầ ế ươ ư MS Access, DB2, Informix, MS SQL Server,
Oracle, Sybase v.v...
L u ý:ư H u h t các ch ng trình CSDL h tr SQL đ u có ph n m r ng cho SQL ch ho t đ ng v i chínhầ ế ươ ỗ ợ ề ầ ở ộ ỉ ạ ộ ớ
ch ng trình đó.ươ
B ng CSDLả
M t CSDL th ng bao g m m t ho c nhi u b ng (table). M i b ng đ c xác đ nh thông qua m t tên (ví dộ ườ ồ ộ ặ ề ả ỗ ả ượ ị ộ ụ
Customers ho c ặOrders). B ng ch a các m u tin - dòng (record - row), là d li u c a b ng.ả ứ ẩ ữ ệ ủ ả
D i đây là m t ví d v m t b ng có tên là ướ ộ ụ ề ộ ả Persons (ng i):ườ
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger
B ng trên bao g m 3 m u tin (dòng), m i m u tin t ng ng v i m t ng i, và b n c t (ả ở ồ ẩ ỗ ẩ ươ ứ ớ ộ ườ ố ộ LastName,
FirstName, Address và City).
Câu truy v n SQLấ

V i SQL ta có th truy v n CSDL và nh n l y k t qu tr v thông qua các câu truy v n.ớ ể ấ ậ ấ ế ả ả ề ấ
M t câu truy v n nh sau:ộ ấ ư
SELECT LastName FROM Persons
S tr v k t qu nh sau:ẽ ả ề ế ả ư
LastName
Hansen
Svendson
Pettersen
L u ý:ư M t s h th ng CSDL đòi h i câu l nh SQL ph i k t thúc b ng m t d u ch m ph y (ộ ố ệ ố ỏ ệ ả ế ằ ộ ấ ấ ả ;). Chúng ta
s không dùng d u ch m ph y trong bài vi t này.ẽ ấ ấ ả ế
SQL là ngôn ng thao tác d li u (DML - Data Manipulation Language)ữ ữ ệ
SQL là cú pháp đ th c thi các câu truy v n. SQL cũng bao g m cú pháp đ c p nh t - s a đ i, chèn thêm vàể ự ấ ồ ể ậ ậ ử ổ
xoá các m u tin.ẩ
Sau đây là danh sách các l nh và truy v n d ng DML c a SQL:ệ ấ ạ ủ
•SELECT - l y d li u t m t b ng CSDL.ấ ữ ệ ừ ộ ả
•UPDATE - c p nh t/s a đ i d li u trong b ng.ậ ậ ử ổ ữ ệ ả
•DELETE - xoá d li u trong b ng.ữ ệ ả
•INSERT INTO - thêm d li u m i vào b ng.ữ ệ ớ ả
SQL là ngôn ng đ nh nghĩa d li u (DDL - Data Definition Language)ữ ị ữ ệ
Ph n DDL c a SQL cho phép t o ra ho c xoá các b ng. Chúng ta cũng có th đ nh nghĩa các khoá (key), chầ ủ ạ ặ ả ể ị ỉ
m c (index), ch đ nh các liên k t gi a các b ng và thi t l p các quan h ràng bu c gi a các b ng trongụ ỉ ị ế ữ ả ế ậ ệ ộ ữ ả
CSDL.
Các l nh DDL quan tr ng nh t c a SQL là:ệ ọ ấ ủ
•CREATE TABLE - t o ra m t b ng m i.ạ ộ ả ớ
•ALTER TABLE - thay đ i c u trúc c a b ng.ổ ấ ủ ả
•DROP TABLE - xoá m t b ng.ộ ả
•CREATE INDEX - t o ch m c (khoá đ tìm ki m - search key).ạ ỉ ụ ể ế
•DROP INDEX - xoá ch m c đã đ c t o.ỉ ụ ượ ạ
H c SQL căn b n đây (p2) ! ọ ả
Mình th y trên các di n đàn r t ít v Mysql . Vì th này m o m i s u t m và b sung cho nh ng ai ch aấ ễ ấ ề ế ạ ụ ư ầ ổ ữ ư
bi t chút gì v Mysql .ế ề Ph n 1ầ Đăng b i: ởadmin S l n xem: 425ố ầ

Câu l nh ệSELECT
Câu l nh ệSELECT đ c dùng đ truy xu t d li u t m t b ng. K t qu tr v d i d ng b ng đ c l uượ ể ấ ữ ệ ừ ộ ả ế ả ả ề ướ ạ ả ượ ư
trong 1 b ng, g i là b ng k t qu - result table (còn đ c g i là t p k t qu - result set).ả ọ ả ế ả ượ ọ ậ ế ả
Cú pháp
Cú pháp c a câu l nh SELECT nh sau:ủ ệ ư
SELECT tên_các_c tộ
FROM tên_b ngả
Truy xu t nhi u c tấ ề ộ
Đ truy xu t các c t mang tên ể ấ ộ LastName và FirstName, ta dùng m t câu l nh ộ ệ SELECT nh sau:ư
SELECT LastName, FirstName FROM Persons
B ng ảPersons:
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger
K t qu tr v :ế ả ả ề
LastName FirstName
Hansen Ola
Svendson Tove
Pettersen Kari
Truy xu t t t c các c tấ ấ ả ộ
Đ truy xu t t t c các c t t b ng Persons, ta dùng ký hi u * thay cho danh sách các c t:ể ấ ấ ả ộ ừ ả ệ ộ
SELECT * FROM Persons
K t qu tr v :ế ả ả ề
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger
T p k t quậ ế ả
K t qu tr v t m t câu truy v n SQL đ c l u trong 1 t p k t qu (result set). H u h t các h th ngế ả ả ề ừ ộ ấ ượ ư ậ ế ả ầ ế ệ ố
ch ng trình CSDL cho phép duy t qua t p k t qu b ng các hàm l p trình nh ươ ệ ậ ế ả ằ ậ ư Move-To-First-Record,
Get-Record-Content, Move-To-Next-Record v.v...

D u ch m ph y (;) phía sau câu l nhấ ẩ ả ệ
D u ch m ph y là m t cách chu n đ phân cách các câu l nh SQL n u nh h th ng CSDL cho phép nhi uấ ẩ ả ộ ẩ ể ệ ế ư ệ ố ề
câu l nh SQL đ c th c thi thông qua m t l i g i duy nh t.ệ ượ ự ộ ờ ọ ấ
Các câu l nh SQL trong bài vi t này đ u là các câu l nh đ n (m i câu l nh là m t và ch m t l nh SQL).ệ ế ề ệ ơ ỗ ệ ộ ỉ ộ ệ
MS Access và MS SQL Server không đ i h i ph i có d u ch m ph y ngay sau m i câu l nh SQL, nh ngỏ ỏ ả ấ ấ ả ỗ ệ ư
m t s ch ng trình CSDL khác có th b t bu c b n ph i thêm d u ch m ph y sau m i câu l nh SQL (choộ ố ươ ể ắ ộ ạ ả ấ ấ ả ỗ ệ
dù đó là câu l nh đ n). Xin nh c l i, trong bài vi t này chúng ta s không dùng d u ch m ph y cu i câuệ ơ ắ ạ ế ẽ ấ ấ ả ở ố
l nh SQL.ệ
H c SQL căn b n đây (p3) ! ọ ả
Mình th y trên các di n đàn r t ít v Mysql . Vì th này m o m i s u t m và b sung cho nh ng ai ch aấ ễ ấ ề ế ạ ụ ư ầ ổ ữ ư
bi t chút gì v Mysqlế ề
Đăng b i: ởadmin S l n xem: 395ố ầ
M nh đ ệ ề WHERE đ c dùng đ thi t l p đi u ki n truy xu t.ượ ể ế ậ ề ệ ấ
M nh đ ệ ề WHERE
Đ truy xu t d li u trong b ng theo các đi u ki n nào đó, m t m nh đ ể ấ ữ ệ ả ề ệ ộ ệ ề WHERE có th đ c thêm vào câuể ượ
l nh ệSELECT.
Cú pháp
Cú pháp m nh đ ệ ề WHERE trong câu l nh ệSELECT nh sau:ư
SELECT tên_c t ộFROM tên_b ngả
WHERE tên_c t ộphép_toán giá_trị
Trong m nh đ ệ ề WHERE, các phép toán đ c s d ng làượ ử ụ
Phép toán Mô tả
= So sánh b ngằ
<> So sánh không b ngằ
> L n h nớ ơ
< Nh h nỏ ơ
>= L n h n ho c b ngớ ơ ặ ằ
<= Nh h n ho c b ngỏ ơ ặ ằ
BETWEEN N m gi a m t kho ngằ ữ ộ ả
LIKE So sánh m u chu iẫ ỗ
L u ý:ư Trong m t s phiên b n c a SQL, phép toán ộ ố ả ủ <> có th đ c vi t d i d ng ể ượ ế ướ ạ !=
S d ng m nh đ ử ụ ệ ề WHERE

Đ l y danh sách nh ng ng i s ng thành ph ể ấ ữ ườ ố ở ố Sandnes, ta s d ng m nh đ ử ụ ệ ề WHERE trong câu l nhệ
SELECT nh sau:ư
SELECT * FROM Persons
WHERE City = 'Sandnes'
B ng ảPersons:
LastName FirstName Address City Year
Hansen Ola Timoteivn 10 Sandnes 1951
Svendson Tove Borgvn 23 Sandnes 1978
Svendson Stale Kaivn 18 Sandnes 1980
Pettersen Kari Storgt 20 Stavanger 1960
K t qu tr v :ế ả ả ề
LastName FirstName Address City Year
Hansen Ola Timoteivn 10 Sandnes 1951
Svendson Tove Borgvn 23 Sandnes 1978
Svendson Stale Kaivn 18 Sandnes 1980
S d ng d u nháyử ụ ấ
L u ý r ng ví d trên ta đã s d ng hai d u nháy đ n (ư ằ ở ụ ử ụ ấ ơ ') bao quanh giá tr đi u ki n 'Sandnes'.ị ề ệ
SQL s d ng d u nháy đ n bao quanh các giá tr d ng chu i văn b n (text). Nhi u h CSDL còn cho phépử ụ ấ ơ ị ở ạ ỗ ả ề ệ
s d ng d u nháy kép (ử ụ ấ "). Các giá tr d ng s không dùng d u nháy đ bao quanh.ị ở ạ ố ấ ể
V i d li u d ng chu i văn b n:ớ ữ ệ ạ ỗ ả
Câu l nh đúng:ệ
SELECT * FROM Persons WHERE FirstName = 'Tove'
Câu l nh sai:ệ
SELECT * FROM Persons WHERE FirstName = Tove
V i d li u d ng s :ớ ữ ệ ạ ố
Câu l nh đúng:ệ
SELECT * FROM Persons WHERE Year > 1965
Câu l nh sai:ệ
SELECT * FROM Persons WHERE Year > '1965'
Phép toán đi u ki n ề ệ LIKE
Phép toán LIKE đ c dùng đ tìm ki m m t chu i m u văn b n trên m t c t.ượ ể ế ộ ỗ ẫ ả ộ ộ
Cú pháp
Cú pháp c a phép toán LIKE nh sau:ủ ư

