N i dung chi ti t<br />
Gi i thi u nh ngh a d li u Truy v n d li u C p nh t d li u Khung nhìn (view) Ch m c (index)<br />
<br />
Ch<br />
<br />
ng 5 SQL<br />
<br />
C s d li u<br />
<br />
2<br />
<br />
Gi i thi u<br />
Ngôn ng SQH<br />
- Cách th c truy v n d li u - Khó kh n cho ng i s d ng<br />
<br />
Gi i thi u (tt)<br />
SQL g m<br />
nh ngh a d li u (DDL) - Thao tác d li u (DML) nh ngh a khung nhìn - Ràng bu c toàn v n - Phân quy n và b o m t i u khi n giao tác<br />
<br />
SQL (Structured Query Language)<br />
- Ngôn ng c p cao - Ng i s d ng ch c n a ra n i dung c n truy v n c phát tri n b i IBM (1970s) c g i là SEQUEL c ANSI công nh n và phát tri n thành chu n<br />
SQL-86 SQL-92 SQL-99<br />
C s d li u 3<br />
<br />
Lý thuy t : Chu n SQL-92 Ví d : SQL Server<br />
<br />
SQL s d ng thu t ng<br />
- B ng ~ quan h - C t ~ thu c tính - Dòng ~ b<br />
C s d li u 4<br />
<br />
N i dung chi ti t<br />
Gi i thi u nh ngh a d li u<br />
5<br />
<br />
nh ngh a d<br />
Là ngôn ng mô t<br />
<br />
li u<br />
<br />
- Ki u d li u - Các l nh nh ngh a d li u<br />
<br />
Truy v n d li u C p nh t d li u Khung nhìn (view) Ch m c (index)<br />
<br />
L c cho m i quan h Mi n giá tr t ng ng c a t ng thu c tính Ràng bu c toàn v n Ch m c trên m i quan h CREATE TABLE (t o b ng) DROP TABLE (xóa b ng) ALTER TABLE (s a b ng) CREATE DOMAIN (t o mi n giá tr ) CREATE DATABASE …<br />
6<br />
<br />
G m<br />
<br />
C s d li u<br />
<br />
C s d li u<br />
<br />
Ki u d<br />
-<br />
<br />
li u<br />
<br />
Ki u d<br />
<br />
li u (tt)<br />
<br />
S (numeric)<br />
INTEGER SMALLINT NUMERIC, NUMERIC(p), NUMERIC(p,s) DECIMAL, DECIMAL(p), DECIMAL(p,s) REAL DOUBLE PRECISION FLOAT, FLOAT(p)<br />
<br />
Chu i ký t (character string)<br />
- CHARACTER, CHARACTER(n) - CHARACTER VARYING(x)<br />
<br />
Chu i bit (bit string)<br />
- BIT, BIT(x) - BIT VARYING(x)<br />
<br />
Ngày gi (datetime)<br />
- DATE g m ngày, tháng và n m - TIME g m gi , phút và giây - TIMESTAMP g m ngày và gi<br />
<br />
C s d li u<br />
<br />
7<br />
<br />
C s d li u<br />
<br />
8<br />
<br />
L nh t o b ng<br />
nh ngh a m t b ng<br />
- Tên b ng - Các thu c tính<br />
Tên thu c tính Ki u d li u Các RBTV trên thu c tính<br />
<br />
Ví d<br />
<br />
- T o b ng<br />
CREATE TABLE KHACHHANG ( MAKH CHAR(4), HOTEN VARCHAR(40), DCHI VARCHAR(50), SODT VARCHAR(20), NGSINH SMALLDATETIME, DOANHSO MONEY, NGDK SMALLDATETIME )<br />
<br />
Cú pháp<br />
CREATE TABLE ( [], [], … [] )<br />
<br />
C s d li u<br />
<br />
9<br />
<br />
C s d li u<br />
<br />
10<br />
<br />
L nh t o b ng (tt)<br />
<br />
NOT NULL NULL UNIQUE DEFAULT PRIMARY KEY FOREIGN KEY / REFERENCES CHECK<br />
<br />
Ví d<br />
<br />
- RBTV<br />
CREATE TABLE KHACHHANG ( MAKH CHAR(4) PRIMARY KEY, HOTEN VARCHAR(40) NOT NULL, DCHI VARCHAR(50), SODT VARCHAR(20) NOT NULL, NGSINH SMALLDATETIME CHECK (NGSINH > ’01-01-1900’), DOANHSO MONEY DEFAULT (10000), NGDK SMALLDATETIME<br />
<br />
t tên cho RBTV<br />
CONSTRAINT <br />
C s d li u 11 C s d li u<br />
<br />
)<br />
<br />
12<br />
<br />
Ví d<br />
<br />
- RBTV<br />
<br />
Ví d<br />
<br />
-<br />
<br />
t tên cho RBTV<br />
<br />
CREATE TABLE NHANVIEN ( MANV CHAR(4) PRIMARY KEY, HOTEN VARCHAR(40) NOT NULL, SODT VARCHAR(20) UNIQUE, NGVL SMALLDATETIME DEFAULT (GETDATE()) ) CREATE TABLE HOADON ( SOHD INT PRIMARY KEY, NGHD SMALLDATETIME, MAKH CHAR(4) REFERENCES KHACHHANG(MAKH), MANV CHAR(4) FOREIGN KEY (MANV) REFERENCES NHANVIEN(MANV), TRIGIA MONEY )<br />
C s d li u 13 C s d li u 14<br />
<br />
CREATE TABLE KHACHHANG ( MAKH CHAR(4) CONSTRAINT KH_MAKH_PK PRIMARY KEY, HOTEN VARCHAR(40) CONSTRAINT KH_HOTEN_NN NOT NULL, DCHI VARCHAR(50), SODT VARCHAR(20) NOT NULL, NGSINH SMALLDATETIME CONSTRAINT KH_NGSINH_CK CHECK (NGSINH > ’01-01-1900’), DOANHSO MONEY CONSTRAINT KH_DOANHSO_DF DEFAULT (10000), NGDK SMALLDATETIME )<br />
<br />
Ví d<br />
<br />
-<br />
<br />
t tên cho RBTV<br />
<br />
L nh s a b ng<br />
c dùng<br />
- Thay - Thay i c u trúc b ng i RBTV<br />
<br />
CREATE TABLE CTHD ( SOHD INT, MASP CHAR(4), SL INT, CONSTRAINT CTHD_SOHD_MASP_PK PRIMARY KEY (SOHD, MASP), CONSTRAINT CTHD_SOHD_FK FOREIGN KEY (SOHD) REFERENCES HOADON(SOHD), CONSTRAINT CTHD_MASP_FK FOREIGN KEY (MASP) REFERENCES SANPHAM(MASP) )<br />
<br />
Thêm c t<br />
<br />
ALTER TABLE ADD COLUMN []<br />
<br />
Xóa c t<br />
<br />
ALTER TABLE DROP COLUMN ALTER TABLE ALTER COLUMN <br />
16<br />
<br />
M r ng c t<br />
C s d li u 15 C s d li u<br />
<br />
L nh s a b ng (tt)<br />
Thêm RBTV<br />
ALTER TABLE ADD CONSTRAINT , CONSTRAINT , …<br />
<br />
Ví d<br />
<br />
- Thay<br />
<br />
i c u trúc b ng<br />
<br />
ALTER TABLE SANPHAM ADD GHICHU VARCHAR(20)<br />
<br />
ALTER TABLE SANPHAM DROP COLUMN GHICHU<br />
<br />
Xóa RBTV<br />
ALTER TABLE DROP ALTER TABLE SANPHAM ALTER COLUMN GHICHU VARCHAR(50)<br />
<br />
C s d li u<br />
<br />
17<br />
<br />
C s d li u<br />
<br />
18<br />
<br />
Ví d<br />
<br />
- Thay<br />
<br />
i RBTV<br />
<br />
L nh xóa b ng<br />
c dùng xóa c u trúc b ng<br />
- T t c d li u c a b ng c ng b xóa<br />
<br />
CREATE TABLE HOADON ( SOHD INT, NGHD SMALLDATETIME, MAKH CHAR(4), MANV CHAR(4), TRIGIA MONEY ) ALTER TABLE HOADON ADD CONSTRAINT HD_SOHD_PK PRIMARY KEY (SOHD), CONSTRAINT HD_MAKH_FK FOREIGN KEY (MAKH) REFERENCES KHACHHANG(MAKH), CONSTRAINT HD_MANV_FK FOREIGN KEY (MANV) REFERENCES NHANVIEN(MANV), CONSTRAINT HD_NGHD_DF DEFAULT (GETDATE()) FOR (NGHD)<br />
C s d li u 19 C s d li u 20<br />
<br />
Cú pháp<br />
DROP TABLE <br />
<br />
Ví d<br />
DROP TABLE KHACHHANG DROP TABLE HOADON DROP TABLE SANPHAM<br />
<br />