* Quy tҳc khi viӃt câu lӋnh SQL:
- Các câu lӋnh SQL không phân biӋt chӳ hoa và chӳ WKѭӡQJ7X\QKLrQÿӇ dӉ ÿӑc nên viӃt hoa tӯ khóa trong mӋQKÿӅ.
- Câu lӋnh SQL có thӇ viӃt trên mӝt dòng hay nhiӅu dòng. NKѭQJQrQYLӃt mӛi dòng mӝt mӋQKÿӅ.
- Không tách tӯ khóa trên nhiӅu dòng, không viӃt tҳt tӯ khóa. - Câu lӋnh SQL kӃt thúc bҵng dҩu chҩm phҭy (;)
1. Tҥo bҧng
Cú pháp:
CREATE TABLE tên_bҧng (
tên_cӛt thuӛc_tính_cӛt các_ràng_buӛc
[ , ...
, tên_cӛt_n thuӛc_tính_cӛt_n các_ràng_buӛc_cӛt_n ]
[ , các_ràng_buӛc_trên_bҥng ] )
7URQJÿy
tên_bҥng Tên cӫa bҧng cҫn tҥo (<=128 ký tӵ)
tên_cӛt Tên cӫa cӝt (field / WUѭӡng) cҫQÿӏnh nghƭD
thuӛc_tính_cӛt Gӗm:
• KiӇu dӳ liӋu cӫa cӝt (field). • Giá trӏ mһFÿӏnh cӫa cӝt (filed).
• IDENTITY - giá trӏ tӵ ÿӝQJWăQJ, dùng vӟi field kiӇu sӕ. • NULL / NOT NULL
các_ràng_buӛc Các ràng buӝFÿѭӧc sӱ dөng trên mӛi cӝt (field) hoһc trên bҧng.
LѭXKjQKQӝi bӝ Trang 59 Tҥo bҧng NHANVIEN gӗm các field MANV (mã nhân viên), HOTEN (hӑ và tên),
NGAYSINH (ngày sinh cӫa nhân viên), ',$&+,ÿӏa chӍ cӫa nhân viên), HSLUONG (hӋ sӕ OѭѫQJ, MADONVI (mã ÿѫQYӏ).
+ѭӟng dүn:
CREATE TABLE nhanvien (
manv NVARCHAR(10) NOT NULL, hoten NVARCHAR(50) NOT NULL, ngaysinh DATE NULL, diachi NVARCHAR(100) NULL, dienthoai NVARCHAR(10) NULL,
hsluong DECIMAL(3,2) DEFAULT (1.92) madonvi NVARCHAR(10) NOT NULL )
2. Tҥo ràng buӝc
a. Ràng buӝc CHECK:
- ChӍ ÿӏQKÿLӅu kiӋn hӧp lӋ ÿӕi vӟi dӳ liӋu khi có sӵ WKD\ÿәi dӳ liӋu trên bҧng. - Dùng vӟi các lӋnh INSERT, UPDATE.
Cú pháp:
[CONSTRAINT tên_ràng_buӝc] &+(&.ÿLӅu_kiӋn)
Ví dө 8.2:
Tҥo bҧQJ1+$19,(1QKѭYtGө WURQJÿy - NGAYSINH < '1/1/1990'
- DIENTHOAI cӫa nhân viên là mӝt chuӛi 6 chӳ sӕ. +ѭӟng dүn:
CREATE TABLE nhanvien (
manv NVARCHAR(10) NOT NULL, hoten NVARCHAR(50) NOT NULL,
ngaysinh DATE NULL
CONSTRAINT CK_nhanvien_ngaysinh CHECK (ngaysinh < '1/1/1990'),
diachi NVARCHAR(100) NULL, dienthoai NVARCHAR(10) NULL, CONSTRAINT CK_nhanvien_dienthoai
CHECK (dienthoai LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]____') hsluong DECIMAL(3,2) DEFAULT (1.92)
madonvi NVARCHAR(10) NOT NULL )
b. Ràng buӝc PRIMARY KEY:
- ChӍ ÿӏnh khoá chính cӫa bҧng. Cú pháp:
[CONSTRAINT tên_ràng_buӝc] PRIMARY KEY [(danh_sách_cӝt)] /ѭX ý:
• Mӛi bҧng có nhiӅu nhҩt mӝt ràng buӝc PRIMARY KEY.
LѭXKjQKQӝi bӝ Trang 60
Ví dө 8.3:
Tҥo bҧng 1+$19,(1QKѭYtGө 8.2, vӟi khoá chính là MANV +ѭӟng dүn:
CREATE TABLE nhanvien (
manv NVARCHAR(10) NOT NULL, hoten NVARCHAR(50) NOT NULL,
ngaysinh DATE NULL
CONSTRAINT CK_nhanvien_ngaysinh CHECK (ngaysinh < '1/1/1990'),
diachi NVARCHAR(100) NULL, dienthoai NVARCHAR(10) NULL, CONSTRAINT CK_nhanvien_dienthoai
CHECK (dienthoai LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]____') hsluong DECIMAL(3,2) DEFAULT (1.92)
madonvi NVARCHAR(10) NOT NULL, CONSTRAINT PK_nhanvien_manv PRIMARY KEY ) c. Ràng buӝc UNIQUE: - ChӍ ÿӏnh khoá phө cho bҧng. Cú pháp: [CONSTRAINT tên_ràng_buӝc] UNIQUE [(danh_sách_cӝt)] Ví dө 8.4:
Tҥo bҧQJ1+$19,(1QKѭYtGө WURQJÿykhông cho phép các nhân viên khác nhau ÿѭӧFWUQJÿLӋn thoҥi vӟi nhau.
+ѭӟng dүn:
CREATE TABLE nhanvien (
manv NVARCHAR(10) NOT NULL, hoten NVARCHAR(50) NOT NULL,
ngaysinh DATE NULL
CONSTRAINT CK_nhanvien_ngaysinh CHECK (ngaysinh < '1/1/1990'),
diachi NVARCHAR(100) NULL, dienthoai NVARCHAR(10) NULL, CONSTRAINT CK_nhanvien_dienthoai
CHECK (dienthoai LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]____') hsluong DECIMAL(3,2) DEFAULT (1.92)
madonvi NVARCHAR(10) NOT NULL, CONSTRAINT PK_nhanvien_manv PRIMARY KEY,
CONSTRAINT UNIQUE_nhanvien_dienthoai UNIQUE(dienthoai) )
d. Ràng buӝc FOREIGN KEY (khóa ngoҥi)
- Mӝt cӝt (hay mӝt tұp các cӝt) trong mӝt bҧQJ ÿѭӧc gӑi là khoá ngoҥi (ràng buӝc FOREIGN KEY) nӃu giá trӏ cӫD Qy ÿѭӧF [iF ÿӏnh tӯ khoá chính (PRIMARY KEY) hoһc khoá phө (UNIQUE) cӫa mӝt bҧng dӳ liӋu khác.
Cú pháp:
LѭXKjQKQӝi bӝ Trang 61 FOREIGN KEY [(danh_sách_cӝt)]
REFERENCES tên_bҧng_tham_chiӃu(danh_sách_cӝt_tham_chiӃu) [ON DELETE CASCADE | NO ACTION | SET NULL | SET DEFAULT] [ON UPDATE CASCADE | NO ACTION | SET NULL | SET DEFAULT] 7URQJÿy
· CASCADE: Tӵ ÿӝng xoá (cұp nhұt) nӃu bҧQJKLÿѭӧc tham chiӃu bӏ xoá (cұp nhұt). · NO ACTION (MһFÿӏnh): NӃu bҧn ghi trong bҧng tham chiӃXÿDQJÿѭӧc tham chiӃu
bӣi mӝt bҧn ghi bҩt kǤ trong bҧQJÿѭӧFÿӏnh nghƭDWKì bàn ghi ÿyNK{QJÿѭӧc phép xoá hoһc cұp nhұWÿӕi vӟi cӝWÿѭӧc tham chiӃu).
· SET NULL: Cұp nhұt lҥi khoá ngoài cӫa bҧn ghi thành giá trӏ NULL (nӃu cӝt cho phép nhұn giá trӏ NULL).
· SET DEFAULT: Cұp nhұt lҥi khoá ngoài cӫa bҧn ghi nhұn giá trӏ mһFÿӏnh (nӃu cӝt FyTXLÿӏnh giá trӏ mһFÿӏnh).
Ví dө 8.5:
Tҥo bҧQJ 1+$19,(1 QKѭ Yt Gө WURQJ ÿykhoá ngoài trên cӝt MADONVI (bҧng DONVI). Giҧ sӱ rҵng bҧng DONVI ÿã ÿѭӧFÿӏnh nghƭD.
+ѭӟng dүn:
CREATE TABLE nhanvien (
manv NVARCHAR(10) NOT NULL, hoten NVARCHAR(50) NOT NULL,
ngaysinh DATE NULL
CONSTRAINT CK_nhanvien_ngaysinh CHECK (ngaysinh < '1/1/1990'),
diachi NVARCHAR(100) NULL, dienthoai NVARCHAR(10) NULL, CONSTRAINT CK_nhanvien_dienthoai
CHECK (dienthoai LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]____') hsluong DECIMAL(3,2) DEFAULT (1.92)
madonvi NVARCHAR(10) NOT NULL, CONSTRAINT PK_nhanvien_manv PRIMARY KEY,
CONSTRAINT UNIQUE_nhanvien_dienthoai UNIQUE(dienthoai) , CONSTRAINT FK_nhanvien_madonvi FOREIGN KEY(madonvi) REFERENCES donvi(madonvi) ON DELETE CASCADE ON UPDATE CASCADE ) 3. Sӱa cҩu trúc bҧng a. Cú pháp
ALTER TABLE tên_bҧng $''ÿӏnh_nghƭDBFӝt |
ALTER COLUMN tên_cӝt kiӇu_dӳ_liêu [NULL | NOT NULL] | DROP COLUMN tên_cӝt |
ADD CONSTRAINT tên_ràng_buӝc ÿӏnh_nghƭDBUàng_buӝc | DROP CONSTRAINT tên_ràng_buӝc
LѭXKjQKQӝi bӝ Trang 62 Bә sung vào bҧng DONVI ӣ ví dө 8.5, cӝt GHICHU
+ѭӟng dүn:
ALTER TABLE nhanvien ADD
ghichu NVARCHAR(50)
4. Xóa bҧng
a. Cú pháp
DROP TABLE tên_bҧng
b. Ví dө 8.7:
Xoá bҧng DONVI ra khӓi CSDL.
/ѭXý: Cӝt MADONVI trong bҧQJ '219, ÿDQJ ÿѭӧc tham chiӃu bӣi khoá ngoài FK_nhanvien_madonvi trong bҧng NHANVIEN.
+ѭӟng dүn:
- Xoá bӓ ràng buӝc FK_nhanvien_madonvi khӓi bҧng NHANVIEN ALTER TABLE nhanvien
DROP CONSTRAINT FK_nhanvien_madonvi - Xoá bҧng DONVI:
DROP TABLE donvi
Thӵc hành
1. KhӣLÿӝng SQL SERVER 2008:
a. Start à All programs à Microsoft SQL Server 2008 à SQL Server Management Studio b. Chͱng thc: chӑn 1 trong 2 chӃ ÿӝ
v Là cӫa Windows
v Là cӫa SQL Server
c. Chӑn Connect 2. Tҥo database:
Ӣ cӱa sә Object Explorer, click chuӝt phҧi vào Database VDXÿyFKӑn New database - Database nane: banhang
- Chӑn Ok
3. Tҥo cҩu trúc table: a. Tҥo table Nhanvien
LѭXKjQKQӝi bӝ Trang 63 * Ӣ cӱa sә Object Explorer:
- Nhҳp dҩXWUѭӟc database banhang (thành dҩu -) - Click chuӝt phҧi vào Table VDXÿyFKӑn New table
- Khai báo cҩu trúc: Ví dͭ 8.1
- /ѭXQKҳp
b. Tҥo table Donvi : tӵ thӵc hiӋn. 4. Tҥo ràng buӝc cho table
* Chӑn table Nhanvien
a. Ràng buӝc CHECK
Ví dͭ 8.2
* Ӣ cӱa sә hiӇn thӏ cҩu trúc cӫa table Nhanvien
- Click chuӝt phҧi vào field ngaysinh, chӑn CheckConstraints … - Nhҳp Add
+ (Name): gõ CK_nhanvien_ngaysinh Expression: gõ ([ngaysinh] < '1/1/1990')
- Nhҳp Add (lҫn 2)
+ (Name): gõ CK_nhanvien_dienthoai
+ Expression: gõ (dienthoai LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]____')
- Nhҳp Close
* Chӑn table Donvi: tӵ thӵc hiӋn cho field dienthoai.
b. Ràng buӝc PRIMARY KEY
* Chӑn table Nhanvien
Ví dͭ 8.3
* Ӣ cӱa sә hiӇn thӏ cҩu trúc cӫa table Nhanvien
- Click phҧi chuӝt vào field manv và chӑn Set Primary Key * Cho table Donvi: tӵ thӵc hiӋn cho field madonvi .
c. Ràng buӝc UNIQUE
* Chӑn table Nhanvien
Ví dͭ 8.4
* Ӣ cӱa sә hiӇn thӏ cҩu trúc cӫa table Nhanvien
- Click phҧi chuӝt vào field dienthoai và chӑn Indexes / Keys… - Nhҳp Add
+ (Name): gõ UNIQUE_nhanvien_dienthoai + Columns: dienthoai (ASC)
+ Type: Unique Key - Nhҳp Close
5. Tҥo quan hӋ (relationship) cho các table: Donvi, Nhanvien
Ví dͭ 8.5
* Ӣ cӱa sә Object Explorer
- Click chuӝt phҧi vào Database Diagrams VDXÿyFKӑn New database Diagram
- Chӑn các table tham gia tҥo quan hӋ, nhҳp Close.
- Rê field madonvi (tӯ table nhanvien) thҧ vào field madonvi (cӫa table donvi). - Khai báo:
Primary key table Foreign key table
Donvi Nhanvien madonvi madonvi
LѭXKjQKQӝi bӝ Trang 64 6. Thêm field GHICHU vào table DONVI
Ví dͭ 8.6
* Ӣ cӱa sә hiӇn thӏ cҩu trúc cӫa table Donvi
- Khai báo (ӣ cuӕi) thêm field: ghichu, nvarchar(50), NULL 7. Nhұp dӳ liӋu cho các table: Donvi, Nhanvien
* Ӣ cӱa sә Object Explorer:
- Click chuӝt phҧi vào dbo.donvi / dbo.nhanvien VDXÿyFKӑn Edit top 200 Rows
- Nhұp dӳ liӋu
LѭXKjQKQӝi bӝ Trang 65
Bài 9: CÁC CÂU LӊNH TRUY VҨN
* Xét CSDL banhang gӗm các table:
NHANVIEN, DONVI, MATHANG, NHATKYBANHANG
- Cҩu trúc:
- Dӳ liӋu:
Bҧng NHANVIEN
LѭXKjQKQӝi bӝ Trang 66
IV. Các câu lӋnh truy vҩn 1. Câu lӋnh SELECT
Công dөng:
- Chӑn các field tӯ bҧng. Cú pháp:
SELECT [ALL | DISTINCT][TOP n] danh_sách_chӑn [INTO tên_bҧng_mӟi]
FROM danh_sách_bҧng [ | khung_nhìn] [WHERE ÿLӅu_kiӋn]
[GROUP BY danh_sách_cӝt] [HAVING ÿLӅu_kiӋn]
[ORDER BY cӝt_sҳp_xӃp]
[COMPUTE danh_sách_hàm_gӝp [BY danh_sách_cӝt]]
Chú ý: Các thành phҫn trong câu lӋnh SELECT phҧLÿѭӧc sӱ dөQJWKHRÿ~QJWKӭ tӵ trên.
c. Danh sách chӑn trong câu lӋnh SELECT
- Chӑn tҩt cҧ các field Ví dө 9.1a:
Câu lӋQKVDXÿk\FKRELӃt thông tin cӫa các nhân viên trong bҧng NHANVIEN. SELECT * FROM nhanvien n1
- Ĉәi tên các cӝt trong kӃt quҧ Ví dө 9.1b:
Câu lӋQKVDXÿk\FKRELӃt HOTEN (hӑ WrQÿѭӧFÿәi thành H͕ và Tên',$&+,ÿӏa chӍ) ÿѭӧFÿәi thành Ĉӏa ChӍ cӫa các nhân viên trong bҧng NHANVIEN.
SELECT 'Hӑ và Tên' = hoten, 'Ĉӏa ChӍ' = diachi FROM nhanvien
Hoһc:
SELECT hoten 'Hӑ và Tên', diachi 'Ĉӏa ChӍ' FROM nhanvien
- Sӱ dөng cҩXWU~F&$6(ÿӇ ÿәi tên các cӝt trong kӃt quҧ Ví dө 9.1c:
Câu lӋQKVDXÿk\FKRELӃt HOTEN (hӑ tên), HSLUONG (hӋ sӕ OѭѫQJYj[Ӄp loҥLOѭѫQJ cӫa các nhân viên trong bҧng NHANVIEN theo HSLUONG (hӋ sӕ OѭѫQJ
SELECT 'Hӑ và Tên'= hoten, 'HӋ sӕ OѭѫQJ' = hsluong, 'HӋ sӕ OѭѫQJ' = CASE
WHEN hsluong = NULL THEN '.K{QJ[iFÿӏnh' WHEN hsluong <= 1.92 THEN '/ѭѫQJWKҩp' WHEN hsluong <= 3.11 THEN '/ѭѫQJWUXQJEình' WHEN hsluong <= 5.2 THEN '/ѭѫQJFDR' ELSE '/ѭѫQg rҩt cao'
END FROM nhanvien
- Thêm chuӛi ký tӵ trong kӃt quҧ Ví dө 9.1d:
Câu lӋQK VDX ÿk\ VӁ cho thêm chuӛi 'HӋ sӕ OѭѫQJ Oj' ӣ WUѭӟc cӝt HSLUONG (hӋ sӕ OѭѫQJWURQJWӯng dòng kӃt quҧ.
SELECT 'Hӑ và Tên' = hoten, 'HӋ sӕ OѭѫQJOj', 'HӋ sӕ OѭѫQJ' = hsluong FROM nhanvien
LѭXKjQKQӝi bӝ Trang 67
Ví dө 9.1e:
Câu lӋQKVDXÿk\VӁ cho HOTEN (hӑ WrQYj/821*OѭѫQJFӫa nhân viên theo công thӭc LUONG = HSLUONG * 730000.
SELECT 'Hӑ và Tên' = hoten, '/ѭѫQJ' = hsluong * 730000 FROM nhanvien
- Tӯ NKyD',67,1&7GQJÿӇ loҥi bӓ nhӳng dòng dӳ liӋu có kӃt quҧ giӕng nhau Ví dө 9.1f:
Câu lӋnh sau sӁ cho các giá trӏ hsluong khác nhau trong bҧng NHANVIEN SELECT hsluong
FROM nhanvien
- Tҥo bҧng mӟi bҵng câu lӋnh SELECT … INTO Ví dө 9.1g:
Câu lӋnh sau sӁ tҥo bҧng có tên NHANVIEN_LUU gӗm các field HOTEN (hӑ tên), ',$&+,ÿӏa chӍ) cӫa các nhân viên có HSLUONG > 1.92 tӯ bҧng NHANVIEN.
SELECT hoten, diachi INTO nhanvien_luu FROM nhanvien
WHERE hsluong > 1.92
- Sҳp xӃp kӃt quҧ $6&WăQJ'(6&JLҧm) bҵng ORDER BY Ví dө 9.1h:
Câu lӋQKVDXÿk\VӁ sҳp xӃp các nhân viên theo thӭ tӵ giҧm dҫn cӫa HSLUONG (hӋ sӕ OѭѫQJQӃu HSLUONG bҵng nhau thì sҳp xӃp kӃt quҧ theo thӭ tӵ WăQJGҫn cӫa NGAYSINH (ngày sinh)
SELECT hoten, ngaysinh, hsluong FROM nhanvien
ORDER BY hsluong DESC, ngaysinh ASC
d. ;iFÿӏnh bҧng bҵng mӋQKÿӅ FROM
FROM danh_sách_bҧng [ | khung_nhìn]
Ví dө 9.1i:
Câu lӋQKVDXÿk\ FKRELӃt HOTEN (hӑ WrQ',$&+, ÿӏa chӍ) cӫa các nhân viên bҵng cách gán bí danh (alias) cho bҧng NHANVIEN.
SELECT hoten, diachi FROM nhanvien n1
e. ĈһWÿLӅu kiӋn truy xuҩt dӳ liӋu bҵng mӋQKÿӅ WHERE
WHERE ÿLӅu_kiӋn
ÿLӅu_kiӋn: sӱ dөng các phép toán sau
+ So sánh: = , > , < , >= , <= , <> , !> , !<
+ Giӟi hҥn: BETWEEN … AND … , NOT BETWEEN … AND … + Danh sách: IN , NOT IN
+ Khuôn dҥng: LIKE , NOT LIKE Vӟi các ký tӵ ÿҥi diӋn: % , _ , [] , [^]
+ Các giá trӏ FKѭDELӃt: IS NULL , IS NOT NULL + KӃt hӧSFiFÿLӅu kiӋn: AND , OR
Ví dө 9.1j:
Câu lӋQK VDX ÿk\ FKR ELӃt HOTEN (hӑ WrQ ',$&+, ÿӏa chӍ Yj ',(17+2$, ÿLӋn thoҥi) cӫa các nhân viên có HSLUONG (hӋ sӕ OѭѫQJOӟQKѫQ
SELECT hoten, diachi FROM nhanvien WHERE hsluong > 1.92
LѭXKjQKQӝi bӝ Trang 68
Ví dө 9.1k:
Câu lӋQK VDX ÿk\ FKR ELӃt HOTEN (hӑ WrQ ',$&+, ÿӏa chӍ Yj ',(17+2$, ÿLӋn thoҥi) cӫa các nhân viên có HSLUONG (hӋ sӕ OѭѫQJWURQJNKRҧQJÿӃn 3.11
SELECT hoten, diachi FROM nhanvien
WHERE hsluong BETWEEN 1.92 AND 3.11
Ví dө 9.1l:
Câu lӋQK VDX ÿk\ FKR ELӃt HOTEN (hӑ WrQ ',$&+, ÿӏa chӍ Yj ',(17+2$, ÿLӋn thoҥi) cӫa các nhân viên có HSLUONG (hӋ sӕ OѭѫQJOj
SELECT hoten, diachi FROM nhanvien
WHERE hsluong IN (1.86, 1.92, 2.11) * Hoһc:
SELECT hoten, diachi FROM nhanvien
WHERE hsluong = 1.86 OR hsluong = 1.92 OR hsluong = 2.11
Ví dө 9.1m:
Câu lӋQKVDXÿk\FKRELӃt thông tin cӫa nhân viên có tên là NAM. SELECT *
FROM nhanvien
WHERE hoten LIKE '%NAM'
Ví dө 9.1n:
Câu lӋQKVDXÿk\FKRELӃt thông tin cӫDQKkQYLrQNK{QJFyÿLӋn thoҥi. SELECT *
FROM nhanvien
WHERE dienthoai IS NULL
2. Thêm dӳ liӋu INSERT
Công dөng:
- Thêm dòng dӳ liӋu (mүu tin/record) vào bҧng. Cú pháp:
INSERT INTO tên_bҧng
[(danh_sách_cӝt)] VALUES(danh_sách_trӏ)
Ví dө 9.2a:
Câu lӋQKVDXÿk\WKrPPӝt dòng dӳ liӋu vào bҧng DONVI INSERT INTO donvi
VALUES('06', 'Phòng CTCT-HSSV', '821460')
Ví dө 9.2b:
Câu lӋQKVDXÿk\WKrPPӝt dòng dӳ liӋu vào bҧng NHANVIEN INSERT INTO nhanvien
VALUES('NV02003', 'Lê Thӏ Mai', '23/05/1972', NULL, '523312', 1.92, '02')
Ví dө 9.2c:
Câu lӋQKVDXÿk\thêm mӝt dòng dӳ liӋu vào bҧng NHANVIEN QKѭQJFKӍ ÿLӅn dӳ liӋu vào mӝt sӕ cӝt.
INSERT INTO nhanvien(manv, hoten, diachi, madonvi)
VALUES('NV05002', 'NguyӉn Thӏ Hҥnh Dung', '56 Trҫn Phú', '05')
Ví dө 9.2d: Thêm dͷ li͏u vào b̫ng vͣi dͷ li͏u ḽy tͳ b̫ng khác
Câu lӋQKVDXÿk\thêm dӳ liӋu vào bҧng LUONG_NHANVIEN vӟi dӳ liӋu lҩy tӯ bҧng NHANVIEN.
LѭXKjQKQӝi bӝ Trang 69 INSERT INTO luong_nhanvien
SELECT manv, hoten, hsluong*730000 FROM nhanvien
3. Cұp nhұt dӳ liӋu UPDATE
Công dөng:
- Cұp nhұt dӳ liӋu trong các bҧng. Cú pháp:
UPDATE tên_bҧng SET tên_cӝt = biӇu_thӭc [ , ...
, tên_cӝt_k = biӇu_thӭc_k] [FROM danh_sách_bҧng] >:+(5(ÿLӅu_kiӋn]
Ví dө 9.3a:
Câu lӋQK VDX ÿk\ WăQJ +6/821* KӋ sӕ OѭѫQJ WKrP FKR FiF QKkQ YLrQ Fy MADONVI là 04.
UPDATE nhanvien
SET hsluong = hsluong + 0.2 WHERE madonvi = '04'
Ví dө 9.3b:
Câu lӋQK VDX ÿk\sӁ cұp nhұt giá trӏ cho field THANHTIEN (thành tiӅn) trong bҧng NHATKYBANHANG theo công thӭc THANHTIEN = SOLUONG * DONGIA.
UPDATE nhatkybanhang
SET thanhtien = soluong * MATHANG.dongia FROM MATHANG
WHERE nhatkybanhang.mahang = MATHANG.mahang
4. Xóa dӳ liӋu DELETE
Công dөng:
- ĈӇ xóa dӳ liӋu trong bҧng. Cú pháp:
DELETE FROM tên_bҧng [FROM danh_sách_bҧng] >:+(5(ÿLӅu_kiӋn]
Ví dө 9.4:
Câu lӋQK VDX ÿk\xoá khӓi bҧng NHANVIEN nhӳng nhân viên làm tҥL ÿѫQ Yӏ có SODIENTHOAI (sӕ ÿLӋn thoҥi) là '848484'
DELETE FROM nhanvien FROM donvi
WHERE nhanvien.madonvi = donvi.madonvi AND donvi.dienthoai = '848484'
5. Xóa toàn bӝ dӳ liӋu TRUNCATE
Công dөng:
- ĈӇ xóa toàn bӝ dӳ liӋu trong bҧng. Cú pháp:
TRUNCATE TABLE tên_bҧng
Ví dө 9.5:
Câu lӋnh sau xoá toàn bӝ dӳ liӋu trong bҧng LUONG_NHANVIEN DELETE FROM luong_nhanvien
LѭXKjQKQӝi bӝ Trang 70 7ѭѫQJÿѭѫQJcâu lӋnh
TRUNCATE TABLE luong_nhanvien
V. Mӝt sӕ KjPWKѭӡng dùng trong SQL Server 1. Hàm ngày – giӡ 1. Hàm ngày – giӡ
a. Hàm DATEADD
Cú pháp:
DATEADD(datepart, number, date)
Datepart: tham sӕ chӍ ÿӏnh thành phҫn sӁ ÿѭӧc cӝng thêm vào ngày date.
DatePart ViӃt tҳt
year yy, yyyy
quarter qq, q month mm, m dayofyear dy, y day dd, d week wk, ww hour hh minute mi, n second ss, s milisecond ms
Công dөng: Hàm trҧ vӅ mӝt giá trӏ kiӇu DateTime bҵng cách cӝng thêm mӝt khoҧng giá trӏ là number vào ngày date ÿѭӧc chӍ ÿӏnh.
b. Hàm DATEDIFF
Cú pháp:
DATEDIFF(datepart, startdate, enddate)
Công dөng: Hàm trҧ vӅ khoҧng thӡi gian giӳa 2 giá trӏ kiӇu ngày startdate và enddate tùy thuӝc vào datepart.
Ví dө: DateDiff(year, '3/10/2003', '6/15/2010') à kӃt quҧ: 7 c. Hàm DATEPART Cú pháp: DATEPART(datepart, date) Công dөng: Hàm trҧ vӅ mӝt sӕ QJX\rQ ÿѭӧc trích ra tӯ thành phҫQ ÿѭӧc chӍ ÿӏnh bӣi
datepart trong giá trӏ ngày date.
Ví dө:
DatePart(year, '6/15/2010') à kӃt quҧ: 2010
d. Hàm GETDATE
Cú pháp:
GETDATE()
Công dөng: Hàm trҧ vӅ giá trӏ là ngày hiӋn tҥi.
e. Hàm DAY, MONTH, YEAR
Cú pháp:
DAY(date) / MONTH(date) / YEAR(date)
Công dөng: Hàm trҧ vӅ giá trӏ OjQJj\WKiQJQăPFӫa ngày date. Ví dө:
Day('6/15/2010') à kӃt quҧ: 15 Month('6/15/2010') à kӃt quҧ: 6
LѭXKjQKQӝi bӝ Trang 71 Year('6/15/2010') à kӃt quҧ: 2010 2. Hàm chuӛi a. Hàm LEFT Cú pháp: LEFT(string, n)
Công dөng: Hàm trích tӯ chuӛi string n ký tӵ tính tӯ bên trái.
b. Hàm RIGHT
Cú pháp:
RIGHT(string, n)
Công dөng: Hàm trích tӯ chuӛi string n ký tӵ tính tӯ bên phҧi.
c. Hàm SUBSTRING
Cú pháp:
SUBSTRING(string, m, n)
Công dөng: Hàm trích tӯ chuӛi string n ký tӵ tính tӯ ký tӵ thӭ m.
d. Hàm LTRIM
Cú pháp:
LTRIM(string)
Công dөng: Hàm cҳt bӓ khoҧng trҳng thӯa bên trái chuӛi string.
e. Hàm RTRIM
Cú pháp:
RTRIM(string)
Công dөng: Hàm cҳt bӓ khoҧng trҳng thӯa bên phҧi chuӛi string.
f. Hàm LEN
Cú pháp: LEN(string)
Công dөng: Hàm trҧ vӅ ÿӝ dài cӫa chuӛi string.
Thӵc hành
1. KhӣLÿӝng SQL SERVER 2008:
a. Start à All programs à Microsoft SQL Server 2008 à SQL Server Management Studio b. Chͱng thc
c. Chӑn Connect
2. Ӣ cӱa sә Object Explorer, click phҧi chuӝt lên banhang và chӑn lӋnh New Query
3. Ӣ cӱa sә query, thӵc hiӋn các câu lӋnh trong các Ví dө ӣ trên.
LѭXKjQKQӝi bӝ Trang 72
&KѭѫQJ6: LҰP TRÌNH KӂT NӔI CSDL SQL SERVER 2008 Bài 10-11: LҰP TRÌNH KӂT NӔ,&Ѫ6Ӣ DӲ LIӊU
* &KXҭQEӏ:
- 7rQPi\ÿѭӧFVӱGөQJ(SERVERNAME) là PC-PC
- 'DWDEDVHÿѭӧFVӱGөQJ(DATABASENAME) là QuanLyBanHang, JӗPFyFiFWDEOH:
+ Nhanvien + HoaDon
+ Sanpham + ChiTietHoaDon
+ Khachhang + ThanhPho
- Vӟi quan hӋ 5HODWLRQVKLSQKѭVDX
- Sӱ dөng Visual Studio 2008 WҥRPӝWSURMHFWPӟL(Windows Forms Application)
I. Tҥo kӃt nӕi - 9ұQFKX\ӇQGӳOLӋX 1. Khai báo namespace sӱ dөng
using System.Data.SqlClient;
2. .KDLEiRӣPӭFFODVV
// ChuәLNӁWQӓL
string strConnectionString = "Data
Source=SERVERNAME;Initial Catalog=DATABASENAME;Integrated Security=True";
ĈӓLWѬӥQJNӁWQӓL
SqlConnection conn = null;
ĈӓLWѬӥQJÿѬDGӱOLӉXYào DataTable dtTABLENAME
SqlDataAdapter daTABLENAME = null;
ĈӓLWѬӥQJKLӅQWKӍ dӱOLӉu lên Form
DataTable dtTABLENAME = null;
LѭXKjQKQӝi bӝ Trang 73
// KhӡLÿӛQJNӁWQӓL
conn = new SqlConnection(strConnectionString);
// VүQFKX\ӅQGӱOLӉXOên DataTable dtTABLENAME
daTABLENAME = new SqlDataAdapter("SELECT * FROM TABLENAME",conn);
dtTABLENAME = new DataTable();
daTABLENAME.Fill(dtTABLENAME); 4. *LҧLSKyQJWjLQJX\rQ
. &KX\ӇQ)RUPYӅFKӃÿӝ'HVLJQ9LHZ
. ӢFӱDVәSURSHUWLHVFӫDIRUPÿDQJFKӑQ, click Events . 1KҳSÿ~SOrQVӵNLӋQFormClosing
. 9LӃWFRGHFKRVӵNLӋQQj\QKѭVDX:
// GiҥLSKyQJWài nguyên
dtTABLENAME.Dispose();
dtTABLENAME = null;
// Hө\NӁWQӓL
conn = null;
II. ĈѭDGӳOLӋXOrQFiFÿӕLWѭӧQJ/LVW%R[/ ComboBox – DataGridView 1. ĈѭDGӳOLӋXOrQ/LVW%R[/ ComboBox
Ví dө 10.1: 7KLӃWNӃIRUPQKѭVDX
(lstThanhPho, btnThoat) * <rXFҫX:
. Khi Form load: ÿѭDGӳ OLӋXWӯWDEOHThanhPho lên ListBox (lstThanhPho), NqPEү\OӛL. . 1KҳSYjR%XWWRQThoát: GӯQJFKѭѫQJWUuQK (có hiӋn hӝp thoҥi hӓLÿiS WUѭӟc khi dӯng).