Upload
truongphan
View
37
Download
2
Embed Size (px)
DESCRIPTION
Ngon Ngu SQL
Citation preview
Chng 4: Ngn ng SQL
1
Ni dung
1. Gii thiu2. Cc ngn ng giao tip
2
3. Ngn ng nh ngha d liu (DDL)4. Ngn ng thao tc d liu (DML)5. Ngn ng truy vn d liu c cu trc (SQL)6. Ngn ng iu khin d liu (DCL)
L ngn ng chun truy vn v thao tc trnCSDL quan h
L ngn ng phi th tc
1. Gii thiu
3
L ngn ng phi th tc Khi ngun ca SQL l SEQUEL - Structured
English Query Language, nm 1974) Cc chun SQL
SQL89 SQL92 (SQL2) SQL99 (SQL3)
2. Cc ngn ng giao tip
Ngn ng nh ngha d liu (Data DefinitionLanguage - DDL): cho php khai bo cu trc bng,cc mi quan h v cc rng buc.
4
Ngn ng thao tc d liu (Data ManipulationLanguage - DML): cho php thm, xa, sa d liu.
Ngn ng truy vn d liu (Structured QueryLanguage SQL): cho php truy vn d liu.
Ngn ng iu khin d liu (Data ControlLanguage DCL): khai bo bo mt thng tin, cp quyn v thu hi quyn khai thc trn c s d liu.
3.1 Lnh to bng (CREATE)3.1.1 C php3.1.2 Mt s kiu d liu3.1.3 Cc rng buc
3. Ngn ng nh ngha d liu
5
3.1.3 Cc rng buc3.2 Lnh sa cu trc bng (ALTER)
3.2.1 Thm thuc tnh3.2.2 Sa kiu d liu ca thuc tnh3.2.3 Xo thuc tnh3.2.4 Thm rng buc ton vn3.2.5 Xo rng buc ton vn
3.3 Lnh xa bng (DROP)
3.1.1 C phpCREATE TABLE (
3.1 Lnh to bng
6
[not null], [not null],
[not null],khai bo kha chnh, kha ngoi, rng buc)
To bng vi mt rng buc duy nhtC php:
CREATE TABLE
3.1 Lnh to bng (2)
7
( [not null], [not null], [default gi_tr] [not null],[ CONSTRAINT PK_Tnbng_tnct PRIMARY
KEY(Danh_sch_ct_kha_chnh) ][CONSTRAINT UQ_Tnbng_tnct
UNIQUE(Danh_sch_cc_ct)])
V d:Create Table NhanVien( Manv int,
Hoten varchar (100) not null,
3.1 Lnh to bng (3)
8
Hoten varchar (100) not null,Gioitinh varchar (5) default Nam,Cmnd varchar (10) not null,Mapb varchar (5),CONSTRAINT PK_Nhanvien_manv PRIMARYKEY(Manv) ,CONSTRAINT UQ_Nhanvien_cmndUNIQUE(Cmnd)
)
Lnh to bng vi rng buc kha ngoiC php:
CREATE TABLE
3.1 Lnh to bng (4)
9
( [not null], [not null], [default gi_tr] [not null],[ CONSTRAINT FK_Tnbng_tnct FOREIGN
KEY(Danh_sch_kha_ngoi) REFERENCES Tn_bng_tham_chiu(Danh_sch_ct_tham_chiu)]
)
To bng vi rng buc kha ngoi, min gi trC php:
CREATE TABLE
3.1 Lnh to bng (5)
10
( [not null], [not null], [default gi_tr][not null],[ CONSTRAINT FK_Tnbng_Tnct FOREIGN
KEY(Tnct_kha_ngoi) REFERENCES Tn_bng_tham_chiu (Tn_ct_tham_chiu)]
[ CONSTRAINT CK_Tnbng_tnct CHECK(Biu_thc_lun_l)]
)
Kiu d liu SQL Server
3.1 Lnh to bng (6)
3.1.2 Mt s kiu d liu
11
Chui k t varchar(n), char(n),nvarchar(n), nchar(n)S tinyint, smallint, int,
numeric(m,n), decimal(m,n),float, real, smallmoney, money
Ngy thng smalldatetime, datetime
Lun l bit
Mt s kiu d liu (tt)Kiu d liu Kch
thcMin gi tr d liu lu tr
Cc kiu d liu dng s nguyn
Int 4 bytes t-2,147,483,648n +2,147,483,647
SmallInt 2 bytes t -32768 n +32767
12
SmallInt 2 bytes t -32768 n +32767
TinyInt 1 byte t 0 n 255
Bit 1 byte 0, 1 hoc Null
Cc kiu d liu dng s thp phn
Decimal,Numeric
17bytes t -10^38 n +10^38
Cc kiu d liu dng s thc
Float 8 bytes t -1.79E+308 n +1.79E+308
Real 4 bytes t -3.40E+38 n +3.40E+38
Cc kiu d liu dng chui c di c nh
Char N bytes t 1 n 8000 k t, mi k t l mt
Mt s kiu d liu (tt)
13
Char N bytes t 1 n 8000 k t, mi k t l mtbyte
Cc kiu d liu dng chui c di bin i
VarChar N bytes t 1 n 8000 k t, mi k t l 1byte
Text N bytes t 1 n 2,147,483,647 k t, mi kt l 1 byte
Cc kiu d liu dng tin t
Money 8 bytes t -922,337,203,685,477.5808 n+922,337,203,685,477.5807
SmallMoney 4 bytes t -214,748.3648 n +214,748.3647
Mt s kiu d liu (tt)
14
214,748.3647
Cc kiu d liu dng ngy v gi
DateTime 8 bytes t01/01/1753n31/12/9999
SmallDateTime 4 bytes t01/01/1900n06/06/2079
Cc kiu d liu dng chui nh phn (Binary String)
Binary N bytes t 1 n 8000 bytes
VarBinary N bytes t 1 n 8000 bytes
Image N bytes t 1 n 2,147,483,647bytes
3.1 Lnh to bng (7)
3.1.3 Cc rng buc CHECK: quy nh cc gi tr d liu c php chp nhn
trn cc ct ca bng;
15
trn cc ct ca bng; DEFAULT: Quy nh gi tr mc nh cho cc ct;
Ex: SoLuong int DAFAULT (0) PRIMARY KEY, UNIQUE, FOREIGN: To tnh ton vn
trong 1 bng d liu v ton vn tham chiu gia cc bngtrong CSDL.
3.1 Lnh to bng (8)
Lc CSDL qun l bn hng gm c cc quan h sau:
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH,
16
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK, CMND)
NHANVIEN (MANV,HOTEN, NGVL, SODT, DIACHI)SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)CTHD (SOHD,MASP,SL)
3.1 Lnh to bng (9)Create table KHACHHANG(
MAKH char(4) primary key,
17
HOTEN varchar(40),DCHI varchar(50),SODT varchar(20),NGSINH smalldatetime,DOANHSO money,NGDK smalldatetime,CMND varchar(10)
)
3.1 Lnh to bng (10)
Create table CTHD(
SOHD int foreign key
18
SOHD int foreign keyreferences HOADON(SOHD),
MASP char(4) foreign keyreferences SANPHAM(MASP),
SL int,constraint PK_CTHD primary key (SOHD,MASP)
)
3.1 Lnh to bng (11)Create table NHANVIEN(
MANV char (4) primary key,
19
MANV char (4) primary key,HOTEN char (20),NGVL smalldatetime(),SODT char (8) null
constraint CHK_SoDT check SoDT like [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]
DIACHI char (50) DEFAULT Khng bit)
3.2.1 Thm thuc tnhALTER TABLE tnbng ADD tnct kiudliu V d: thm ct Ghi_chu vo bng khch hng
ALTER TABLE KHACHHANG ADD GHI_CHU varchar(20)
3.2 Sa cu trc bng(1)
20
ALTER TABLE KHACHHANG ADD GHI_CHU varchar(20)3.2.2 Sa kiu d liu thuc tnh
ALTER TABLE tnbng ALTER COLUMN tnct kiudliu_mi
Lu :Khng phi sa bt k kiu d liu no cng c
V d: Sa Ct Ghi_chu thnh kiu d liu varchar(50)ALTER TABLE KHACHHANG ALTER COLUMN GHI_CHU varchar(50) Nu sa kiu d liu ca ct Ghi_chu thnh varchar(50),
m trc nhp gi tr cho ct Ghi_chu c di hn
3.2 Sa cu trc bng(2)
21
m trc nhp gi tr cho ct Ghi_chu c di hn50 k t th khng c php.
Hoc sa t kiu chui k t sang kiu s, 3.2.3 Xa thuc tnh
ALTER TABLE tn_bng DROP COLUMN tn_ct V d: xa ct Ghi_chu trong bng KHACHHANG
ALTER TABLE NHANVIEN DROP COLUMN Ghi_chu
3.2.4 Thm rng buc ton vnUNIQUE tn_ct
PRIMARY KEY (tn_ct)
3.2 Sa cu trc bng(3)
22
ALTER TABLE ADD CONSTRAINT
PRIMARY KEY (tn_ct)FOREIGN KEY (tn_ct)REFERENCES tn_bng (ct_l_kha_chnh)CHECK (tn_ct iu_kin)
V d: ALTER TABLE NHANVIEN ADD CONSTRAINT
PK_NV PRIMARY KEY (MANV)
3.2 Sa cu trc bng(4)
23
ALTER TABLE CTHD ADD CONSTRAINT FK_CT_SP FOREIGN KEY (MASP) REFERENCES SANPHAM(MASP)
ALTER TABLE SANPHAM ADD CONSTRAINTCK_GIA CHECK (GIA >=500)
ALTER TABLE KHACHHANG ADD CONSTRAINTUQ_KH UNIQUE (CMND)
3.2.5 Xa rng buc ton vnALTER TABLE tn_bng DROP CONSTRAINT
tn_rng_buc
3.2 Sa cu trc bng(5)
24
tn_rng_buc V d:
Alter table CTHD drop constraint FK_CT_SP Alter table SANPHAM drop constraint ck_gia
Lu : i vi rng buc kha chnh, mun xarng buc ny phi xa ht cc rng buc khangoi tham chiu ti n
C phpDROP TABLE tn_bng
V d: xa bng KHACHHANG.
3.3 Lnh xa bng
25
V d: xa bng KHACHHANG.DROP TABLE KHACHHANG
Lu : khi mun xa mt bng phi xa tt c nhng kha ngoi tham chiu ti bng trc.
Gm cc lnh: 4.1 Lnh thm d liu (INSERT)4.2 Lnh sa d liu (UPDATE)
4. Ngn ng thao tc d liu
26
4.2 Lnh sa d liu (UPDATE)4.3 Lnh xa d liu (DELETE)
C phpINSERT INTO tn_bng (ct1,,ctn) VALUES
(gi_tr_1,., gi_tr_n)INSERT INTO tn_bng VALUES (gi_tr_1,
4.1 Thm d liu
27
INSERT INTO tn_bng VALUES (gi_tr_1,gi_tr_2,, gi_tr_n)
V d insert into SANPHAM values('BC01','But chi', 'cay',
'Singapore', 3000) insert into SANPHAM(masp,tensp,dvt,nuocsx,gia)
values ('BC01','But chi','cay','Singapore',3000)
C phpUPDATE tn_bngSET ct_1 = gi_tr_1, ct_2 = gi_tr_2 .[WHERE iu_kin]
4.2 Sa d liu
28
[WHERE iu_kin] Lu : cn thn vi cc lnh xa v sa, nu khng
c iu kin WHERE ngha l xa hoc sa tt c. V d: Tng gi 10% i vi nhng sn phm do
Trung Quoc sn xutUPDATE SANPHAMSET Gia = Gia*1.1WHERE Nuocsx=Trung Quoc
4.3 Xa d liu
C phpDELETE FROM tn_bng [WHERE iu_kin]
V d:
29
V d: Xa ton b nhn vin
DELETE FROM NHANVIEN Xa nhng sn phm do Trung Quc sn xut c gi
thp hn 10000DELETE FROM SANPHAM WHERE (Gia
5. Ngn ng truy vn d liu c cu trc
5.1 Cu truy vn tng qut 5.2 Truy vn n gin5.3 Php kt
30
5.3 Php kt5.4 t b danh, s dng *, distinct5.5 Cc ton t5.6 Cu truy vn con (subquery)5.7 Php chia5.8 Hm tnh ton, gom nhm
SELECT [DISTINCT] *|tn_ct | hmFROM bng [WHERE iu_kin]
5.1Cu truy vn tng qut
31
[WHERE iu_kin][GROUP BY tn_ct][HAVING iu_kin][ORDER BY tn_ct ASC | DESC]
5.2 Truy vn n gin(1) SELECT
Tng ng php chiu ca SQH Lit k cc thuc tnh cn hin th trong kt qu
WHERE
32
L iu kin chn trong SQH iu kin lin quan ti thuc tnh, s dng cc php ni
lun l AND, OR, NOT, cc php ton so snh, BETWEEN FROM
Lit k cc quan h cn thit. L php tch Decartes cc quan h (khng c t kha
JOINT, ch l du phy gia cc quan h). L php kt cc quan h (nu c t kha JOINT)
5.2 Truy vn n gin(2)
Tm masp, tensp do Trung Quoc sn xut c gi t 20000 n 30000
Select masp,tensp
33
Select masp,tenspFrom SANPHAMWhere nuocsx=Trung Quoc
and gia between 20000 and 30000
5.3 Php kt(1)
Inner Join, Left Join, Right Join, Full Join V d:
In ra danh sch cc khch hng (MAKH,
34
In ra danh sch cc khch hng (MAKH, HOTEN) mua hng trong ngy 1/1/2007.select KHACHHANG.makh,hoten from KHACHHANG inner join HOADON on
KHACHHANG.makh=HOADON.makh where nghd='1/1/2007'
5.3 Php kt (2)
V d: In ra danh sch tt c cc ha n v h tn ca khch hng mua ha n (nu c) Select sohd, hoten
35
Select sohd, hotenFrom HOADON left join KHACHHANG on
HOADON.makh=KHACHHANG.makh Select sohd, hoten
From HOADON, KHACHHANG where HOADON.makh*=KHACHHANG.makh
5.4 t b danh, s dng *, distinct
t b danh Alias: cho thuc tnh v quan h: tn_c AS tn_mi Select manv,hoten as [ho va ten] From NHANVIEN
36
Lit k tt c cc thuc tnh ca quan h: Select * from Nhanvien Select NHANVIEN.* from NHANVIEN
Distinct: trng ch ly mt ln Select distinct nuocsx from SANPHAM
Sp xp kt qu hin th: Order by Select * from SANPHAM order by nuocsx, gia DESC
5.5 Ton t truy vn(1)
Ton t so snh: =, >,=,
5.5 Ton t truy vn(2) IS NULL, IS NOT NULL
Select sohd from HOADON where makh is Null Select * from HOADON where makh is Not Null
38
Ton t so snh, php ton Select gia*1.1 as [gia ban] from SANPHAM where nuocsx
Viet Nam Select * from SANPHAM where (gia between 20000 and
30000) OR (nuocsx = Viet Nam) Ton t IN, NOT IN: Cc mu tin ca query chnh c
gi tr bng vi mt gi tr trong subquery Select * from SANPHAM where masp NOT IN
(BB01,BB02,BB03)
Ton t LIKE
So snh chui tng i
C php: s LIKE p, p c th cha % hoc _
5.5 Ton t so snh(3)
39
C php: s LIKE p, p c th cha % hoc _
% : thay th mt chui k t bt k _ : thay th mt k t bt k V d: Select masp,tensp from SANPHAM
where masp like 'B%01
5.6 Cu truy vn con (0) Exists: c s dng kt hp vi truy vn con di dng:
WHERE [NOT] EXISTS (truy_vn_con) kim tra xem 1 truy vn con c tr v dng kt qu no hay
khng. Lng t EXISTS (tng ng NOT EXISTS) tr v gi tr True nu kt qu ca truy vn con c t nht mt dng
40
(tng ng khng c dng no). iu khc bit ca vic s dng EXISTS vi hai cch nu trn l trong danh sch chn ca truy vn con c th c nhiu hn hai ct.
V d: Cho bit h tn sinh vin cha c im thi ca bt k mn hc no.
5.6 Cu truy vn con (1)In hoc Exists (Cc mu tin ca query chnh tha mn khi subquery c mu tin)
V d: Tm cc s ha n mua cng lc 2 sn phm c m s BB01 v BB02.
41
BB01 v BB02. select distinct sohd
from CTHD where masp='BB01' and sohd IN(select distinct sohd from CTHD where masp='BB02')
select distinct A.sohd from CTHD A where A.masp='BB01' and
EXISTS (select * from CTHD B where B.masp='BB02' and A.sohd=B.sohd)
5.6 Cu truy vn con (2)
Not In hoc Not Exists V d: Tm cc s ha n c mua sn phm m s
BB01 nhng khng mua sn phm m s BB02.
42
BB01 nhng khng mua sn phm m s BB02. select distinct sohd
from CTHD where masp='BB01' and sohd NOT IN(select distinct sohd from CTHD where masp='BB02')
select distinct A.sohd from CTHD A where A.masp='BB01' and
NOT EXITST (select * from CTHD B where B.masp='BB02 and A.sohd=B.sohd)
5.7 Php chia
V d: Tm nhng sn phm ca Singapore mSoHD 1001 cha mua+ S dng NOT IN
43
SELECT * FROM SANPHAMWHERE NUOCSX='SINGAPORE' AND MASP NOT IN(--Cu truy vn con
SELECT MASP FROM CTHDWHERE SOHD='1001')
5.7 Php chia (1)
V d: Tm nhng sn phm ca Singapore m SoHD 1001 cha mua + S dng NOT EXISTS
44
+ S dng NOT EXISTSSELECT * FROM SANPHAM AWHERE NUOCSX='SINGAPORE' AND NOT EXISTS(--
Cu truy vn conSELECT * FROM CTHD BWHERE SOHD='1001' AND A.MASP=B.MASP)
5.7 Php chia
S dng NOT EXISTS V d: Tm s ha n mua tt c nhng sn
phm.
45
phm.Select sohd from HOADON where not exists (select * from SANPHAM where not exists
(select * from CTHD where HOADON.sohd=CTHD.sohd and CTHD.masp=SANPHAM.masp))
5.7 Php chiaS dng NOT EXISTS V d: Tm s ha n mua tt c nhng sn
phm do Trung Quoc sn xut:Select sohd from HOADON where not exists
46
Select sohd from HOADON where not exists (select * from SANPHAM where nuocsx=Trung Quoc and not exists
(select * from CTHD where HOADON.sohd=CTHD.sohd and CTHD.masp=SANPHAM.masp))
- Ph: tm nhng sn phm ca TQ m mt S ha n bt kcha mua. Ph: ng (khng c SP no) = S ha n mua tt c sn phm ca Trung Quc
5.8.1 Cc hm tnh ton c bn COUNT: m s b d liu ca thuc tnh
5.8 Cc hm tnh ton v gom nhm (1)
47
MIN: Tnh gi tr nh nht
MAX: Tnh gi tr ln nht
AVG: Tnh gi tr trung bnh
SUM: Tnh tng gi tr cc b d liu
NHANVIEN
MANV HOTEN PHAI MANQL PHONG LUONGNV001 Nguyn Ngc Linh N Null NC 2.800.000
48
NV002 inh B Tin Nam NV002 DH 2.000.000NV003 Nguyn Vn Mnh Nam NV001 NC 2.300.000NV004 Trn Thanh Long Nam NV002 DH 1.800.000NV005 Nguyn Th Hng Vn N NV001 NC 2.500.000NV006 Nguyn Minh Nam NV002 DH 2.000.000NV007 H Duy Lp Nam NV003 NC 1.800.000NV008 Trn Kim Duyn N NV003 NC 1.800.000NV009 Nguyn Kim Anh N NV003 NC 2.000.000
V d
1. Tnh lng thp nht, cao nht, trung bnh v tng lng ca tt c cc nhn vin.
2. C tt c bao nhiu nhn vin
49
2. C tt c bao nhiu nhn vin3. Bao nhiu nhn vin c ngi qun l4. Bao nhiu phng ban c nhn vin trc thuc5. Tnh lng trung bnh ca cc nhn vin6. Tnh lng trung bnh ca cc nhn vin theo
tng phng ban
1. Tnh lng thp nht, cao nht, trung bnh v tng lng ca tt c cc nhn vin.
50
SELECT min(luong) as thapnhat, max(luong) as caonhat, avg(luong) as trungbinh, sum(luong) as tongluong
FROM NhanVien
2. C tt c bao nhiu nhn vinSELECT count(*) FROM NhanVien
51
3. Bao nhiu nhn vin c ngi qun l Select count(*) FROM NhanVien WHERE manql is not null SELECT count(Manql) FROM NhanVien
4. Bao nhiu phng ban c nhn vin trc thucSELECT count(distinct phong) FROM NhanVien
5.8 Cc hm tnh ton v gom nhm (2)
5.8.2 Gom nhm: mnh GROUP BY S dng hm gom nhm trn cc b trong quan h. Mi nhm b bao gm tp hp cc b c cng gi tr trn
52
Mi nhm b bao gm tp hp cc b c cng gi tr trn cc thuc tnh gom nhm
Hm gom nhm p dng trn mi b c lp nhau. SQL c mnh GROUP BY ch ra cc thuc tnh
gom nhm, cc thuc tnh ny phi xut hin trong mnh SELECT
5. Tnh lng trung bnh ca cc nhn vinSELECT avg(LUONG) as LUONGTBFROM NhanVien
53
FROM NhanVien
6. Tnh lng trung bnh ca cc nhn vin theo tng phng ban.SELECT phong, avg(LUONG) as LUONGTBFROM NhanVienGROUP BY phong
5.8 Cc hm tnh ton v gom nhm (3)
5.8.3 iu kin sau gom nhm: mnh HAVING Lc kt qu theo iu kin, sau khi gom nhm iu kin HAVING c thc hin sau khi gom nhm,
54
iu kin HAVING c thc hin sau khi gom nhm, cc iu kin c lin quan n thuc tnh Group By
V d: tm phng c s lng nhn vin N trn 5 ngiSELECT phongFROM NhanVienWHERE phai = NGROUP BY phongHAVING count(manv) > 5
5.9 Cc hm x l trong SQL
Hm ton hc
55
Hm x l xu
Hm ngy thng
Hm chuyn i
Hm ton hc
Sqrt(n): cn bc 2 Square(n): hm bnh phng Sign(n): hm ly du
56
Sign(n): hm ly du Sign(10) = Sign(5) = 1, Sign(-2) = -1
Pi(): tr v gi tr Pi Round(n): lm trn Ceiling(n): lm trn ln Floor(n): lm trn xung
Hm x l xu Upper(str): chuyn i xu str sang ch HOA
Upper(H Ni) => H NI Lower(str) : chuyn i xu str sang ch thng
Lower(H Ni) => h ni
57
Len(str) : tr v di ca xu + : php ton ghp 2 xu
H Ni + H Nam => H NiH Nam
Ltrim(str) : loi b k t trng bn tri xu Ltrim( H Ni ) => H Ni
Rtrim(str) : loi b k t trng bn phi xu Rtrim( H Ni ) => H Ni
Hm x l xu Left(str,n) : tr v n k t bn tri xu
Left(H Ni,5) => H N Right(str,n) : tr v n k t bn phi xu
Left(H Ni,5) => Ni
58
Left(H Ni,5) => Ni Substring(str,m,n) : tr v n k t bt u t v tr th m trong
xu str Subtring(H Ni,2,4) => N;
Replace(str,str1,str2) : thay th xu str1 bng xu str2 nu str1 xut hin trong str Replace(H Ni,Ni,Nam) => H Nam
Reverse(str) : tr v xu o ngc ca xu str Reverse(H Ni) => iN H
Hm ngy thng
Getdate(): hm tr ra ngy gi h thng Datepart(tham_s_datepart, date): tr v gi tr
nguyn theo tham s ly
59
nguyn theo tham s ly
V dDatepart(dd,getdate());Datepart(yyyy,getdate());
Hm ngy thng Day(date) : tr v gi tr nguyn ngy Month(date) : tr v gi tr nguyn thng Year(date): tr v gi tr nguyn nm
Year(2007/5/20) => 2007
60
Year(2007/5/20) => 2007
Datediff(tham_s_datepart, date1, date2): tr vkhong cch date2-date1 theo tham s Datediff(mm, 2006/5/15, 2007/10/15) => 17
Dateadd(tham_s_datepart, n, date): cng thm n theo loi tham s vo date Dateadd(dd, 40, 2007/5/15) => 2007/6/24
DDLDML SQLHm tnh
ton & x l
61
ton & x l
62
63