SQL Tutorial
© Dương Thiên T 1
Welcome to SQL tutorial
Mc lc
SQL căn bn
Gii thiu SQL
Mô t thế nào là SQL, cách dùng SQL.
SQL Select
Cách dùng phát biu SELECT để chn d liu t mt bng trong SQL.
SQL Where
Cách dùng mnh đề WHERE để ch định tiêu chun chn.
SQL And & Or
Cách dùng AND và OR để kết ni hai hay nhiu điu kin trong mnh đề WHERE.
SQL Between
Cách dùng BETWEEN....AND để tìm d liu trong mt khong gii hn.
SQL Distinct
Cách dùng t khóa DISTINCT để ch tr v các tr khác nhau trong mt ct.
SQL Order By
Cách dùng t khóa ORDER BY để tr vc hàng được sp xếp theo mt th t định trước.
SQL Insert
Cách dùng phát biu INSERT để chèn hàng mi vào trong mt bng.
SQL Update
Cách dùng phát biu UPDATE để cp nht hay thay đổi các hàng trong mt bng.
SQL Delete
Cách dùng phát biu DELETE để xóa các hàng trong mt bng.
SQL Count
Gii thích các hàm COUNT to sn trong SQL.
SQL nâng cao
Các hàm SQL
Gii thích cách dùng các hàm to sn trong SQL.
SQL Group By
Gii thích cách dùng hàm GROUP BY to sn trong SQL.
Các bí danh SQL
Gii thích cách dùng các bí danh (alias) cho các tên ct và các tên bng.
SQL Join
Gii thích cách chn thông tin t nhiu bng.
SQL Create
Cách to các cơ s d liu và các bng, và cách xóa chúng.
SQL Alter
Cách dùng phát biu ALTER TABLE để thêm hay loi các ct trong mt bng cho trước.
Gii thiu SQL
SQL là mt ngôn ng theo chun ANSI để truy xut các cơ s d liu.
SQL là gì?
SQL là Structured Query Language – Ngôn ng Truy vn có Cu trúc
SQL cho phép bn truy xut mt cơ s d liu
SQL là mt ng theo chun ANSI
SQL có th thc hin các truy vn đến mt cơ s d liu
SQL có th truy tìm d liu t mt cơ s d liu
SQL có th chèn các mu tin mi vào trong mt cơ s d liu
SQL có th xóa các mu tin trong mt cơ s d liu
SQL Tutorial
© Dương Thiên T 2
SQL có th cp nht các mu tin trong mt cơ s d liu
SQL rt d hc
SQL là mt chun
SQL là mt chun ANSI (American National Standards Institute - Vin Tiêu chun Quc gia M) cho các h thng truy xut cơ
s d liu. Các phát biu SQL dùng để truy tìm và cp nht d liu trong mt cơ s d liu.
SQL làm vic vi các trình qun lý cơ s d liu như Access, DB2, Informix, Microsoft SQL Server, Oracle, Sybase, và nhiu
trình khác (đáng tiếc là đa s trong chúng có các phn m rng ngôn ng SQL riêng).
Các bng cơ s d liu
Cơ s d liu cha các đối tượng gi là các Bng (Tables).
Các Mu tin (Records) lưu trong các bng này. Các bng được gi theo tên bng (như "Persons", "Orders", "Suppliers").
Các bng cha các Ct (Columns) và các Dòng (Rows) d liu. Dòng cha các mu tin (như mu tin v mt người). Ct cha
d liu (như First Name, Last Name, Address, và City).
Mt ví d là bng "Persons" sau:
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger
LastName, FirstName, Address, và City là các ct ca bng. Các dòng cha ba mu tin ca 3 người.
Các truy vn SQL
Vi SQL, chúng ta có th truy vn mt cơ s d liu và nhn được mt kết qu tr v vi dng bng.
Mt truy vn ging như sau:
SELECT LastName FROM Persons
S tr v mt kết qu ging như sau:
LastName
Hansen
Svendson
Pettersen
Chú ý: i h cơ s d liu cn mt du “;” cui phát biu SQL. Chúng ta không dùng du “;” trong bài viết này.
Thao tác d liu SQL
SQL là mt cú pháp để thc hin các truy vn. Nhưng ngôn ng SQL cũng cha các cú pháp cp nht các mu tin (record),
chèn các mu tin mi và xóa các mu tin đang tn ti.
Các lnh truy vn và cp nht này thuc dng Ngôn ng Thao tác D liu (Data Manipulation Language - DML) mt phn ca
SQL:
SELECT – trích d liu t mt cơ s d liu
UPDATE – cp nht d liu trong mt cơ s d liu
DELETE – xóa d liu t mt cơ s d liu
INSERT – chèn d liu mi vào trong mt cơ s d liu
Định nghĩa d liu SQL
Ngôn ng Định nghĩa D liu (Data Definition Language - DDL) mt phn ca SQL, cho phép to hay xóa các bng cơ s d
liu. Chúng ta cũng có th định nghĩa các ch mc (các khóa - key), ch định liên kết gia các bng, và ràng but gia các bng
cơ s d liu.
Các phát biu DDL quan trng nht trong SQL là::
CREATE TABLE – to mt bng cơ s d liu mi
ALTER TABLE – thay đổi (alters) mt bng cơ s d liu
SQL Tutorial
© Dương Thiên T 3
DROP TABLE – xóa mt bng cơ s d liu
CREATE INDEX – to mt ch mc (khóa tìm kiếm)
DROP INDEX – xoá mt ch mc
SQL và ASP
SQL là mt phn quan trng ca ASP (Active Server Pages), vì ADO (Active Data Object) được dùng trong ASP để truy xut cơ
s d liu, ADO da trên SQL để truy xut d liu.
Phát biu SQL Select
Phát biu SELECT chn các ct d liu t mt cơ s d liu.
Kết qu dng bng được lưu trong mt bng kết qu (gi là tp kết qu - result set).
Phát biu SELECT
Phát biu SELECT chn các ct d liu t mt cơ s d liu.
Dùng phát biu này để chn (SELECT) thông tin t (FROM) mt bng như sau:
SELECT column_name(s) FROM table_name
Ví d: Chn các ct t mt bng
Để chn các ct có tên "LastName" và "FirstName", dùng mt phát biu SELECT như sau:
SELECT LastName,FirstName FROM Persons
Bng "Persons":
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger
Kết qu:
LastName FirstName
Hansen Ola
Svendson Tove
Pettersen Kari
Ví d: Chn tt c các ct
Để chn tt c các ct t bng "Person", dùng mt ký hiu * thay thế cho tên các ct như sau:
SELECT * FROM Persons
Kết qu:
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger
Bng kết qu
Kết qu t mt truy vn SQL được lưu tr trong mt tp kết qu. Tp kết qu có th xem như mt bng kết qu. Đa s các
SQL Tutorial
© Dương Thiên T 4
trình qun lý cơ s d liu cho phép duyt tp kết qu vi các hàm lp trình như: Move-To-First-Record, Get-Record-Content,
Move-To-Next-Record......
Mnh đề SQL Where
Mnh đề WHERE dùng để ch định mt tiêu chun (criteria) chn.
Mnh đề WHERE
Để chn có điu kin d liu t mt bng, mt mnh đề WHERE có th thêm vào phát biu SELECT vi cú pháp sau:
SELECT column FROM table WHERE column condition value
Vi mnh đề WHERE, các điu kin sau có th được dùng:
Operator Condition
= Bng
<> Không bng
> Ln hơn
< Nh hơn
>= Ln hơn hoc bng
<= Nh hơn hoc bng
LIKE S gii thích bên dưới
Chú ý: Vài phiên bn SQL toán t <> có th được viết thành !=
Ví d: Chn người t mt công ty
Để chn nhng người ch sng Sandnes, thêm mnh đề WHERE vào phát biu SELECT như sau:
SELECT * FROM Persons WHERE City='Sandnes'
Bng "Persons":
LastName FirstName Address City Year
Hansen Ola Timoteivn 10 Sandnes 1951
Svendson Tove Borgvn 23 Sandnes 1978
Svendson Ståle Kaivn 18 Sandnes 1980
Pettersen Kari Storgt 20 Stavanger 1960
Kết qu:
LastName FirstName Address City Year
Hansen Ola Timoteivn 10 Sandnes 1951
Svendson Tove Borgvn 23 Sandnes 1978
Svendson Ståle Kaivn 18 Sandnes 1980
Dùng du nháy
Chú ý rng chúng ta dùng du nháy đơn bao quanh các tr điu kin trong các ví d. SQL dùng du nháy đơn bao quanh các tr
văn bn. Phn ln các h qun lý cơ s d liu cũng chp nhn du nháy kép. Các tr s không được đóng trong du nháy.
Vi các tr văn bn:
Viết đúng:
SELECT * FROM Persons WHERE FirstName='Tove'
Viết sai:
SELECT * FROM Persons WHERE FirstName=Tove
Vi các tr s:
Viết đúng:
SELECT * FROM Persons WHERE Year>1965
Viết sai:
SELECT * FROM Persons WHERE Year>'1965'
SQL Tutorial
© Dương Thiên T 5
Điu kin LIKE
Điu kin LIKE dùng ch định vic tìm mt mu trong mt ct.
Cú pháp:
SELECT column FROM table WHERE column LIKE pattern
Mt du "%" có th dùng như ký t đại din (wildcards) c trước ln sau mu.
Ví d: Chn trong bng Persons vi mu tên
Phát biu SQL s tr v nhng người có firstname bt đầu vi mt ký t 'O'.
SELECT * FROM Persons WHERE FirstName LIKE 'O%'
Phát biu SQl s tr v nhng người có firstname kết thúc vi mt ký t 'a'.
SELECT * FROM Persons WHERE FirstName LIKE '%a'
Phát biu SQL s tr v nhng người có firstname cha mu 'la'.
SELECT * FROM Persons WHERE FirstName LIKE '%la%'
Tt c các ví d trên s tr v kết qu sau:
LastName FirstName Address City Year
Hansen Ola Timoteivn 10 Sandnes 1951
SQL And & Or
AND & OR
AND và OR kết ni hai hay nhiu điu kin trong mt mnh đề WHERE.
Toán t AND hin th mt ct nếu TT C các điu kin lit kê đều đúng.
Toán t OR hin th mt ct nếu MT TRONG các điu kin lit kê là đúng.
Bng gc (dùng trong các ví d)
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Svendson Stephen Kaivn 18 Sandnes
Ví d
Dùng AND để hin th người có firstname là "Tove", và lastname là "Svendson":
SELECT * FROM Persons
WHERE FirstName='Tove'
AND LastName='Svendson'
Kết qu:
LastName FirstName Address City
Svendson Tove Borgvn 23 Sandnes
Ví d
Dùng OR để hin th người có firstname là "Tove", hoc có lastname là "Svendson":
SELECT * FROM Persons
WHERE firstname='Tove'
OR lastname='Svendson'
Kết qu: