Neáu caùc bieåu thöùc sau töø khoaù VALUES hoaøn toaøn phuø hôïp veà thöù töï vôùi caùc coät trong baûng danh saùch caùc coät sau töø khoùa INTO coù theå ñöôïc boû qua. INSERT INTO [r]
(1)NGƠN NGỮ SQL
1 Ngơn ngữ mô tả liệu
(2)CƠ SỞ DỮ LIỆU VÍ DỤ
Cho CSDL gồm Baûng sau:
SINHVIEN (MSSV, HOLOT, TEN, PHAI, NGAYSINH,
QUEQUAN, DIACHI, MALOP)
DSLOP (MALOP, TENLOP, SISO, MAKHOA) DSKHOA (MAKHOA, TENKHOA)
(3)CƠ SỞ DỮ LIỆU VÍ DỤ
MSSV HOLOT TEN PHAI NGAY SINH
QUEQUAN DIACHI MAL OP T001 LE VAN TU NAM 13/5/81 TPHCM 12 LELOI-Q1 – TPHCM T1N D002 TRAN THI DIEM NU 3/12/82 HANOI 3/1A BAHAT - Q10 D1N H003 NGUYEN VU LINH NAM 1/6/80 DONGTHAP 25 VOTHISAU - Q3 H1N K004 CAO VAN HUNG NAM 31/7/81 VINHLONG 33/5 HONG HA – TB K1N T005 LE TIEN DUNG NAM 11/3/84 DONGNAI 77/8 LE LOI - Q1 T2N T006 DAO VAN DUNG NAM 6/6/79 HUE 38/4 TAM DAO – Q10 T1N H007 TRAN MINH HANH NU 4/8/81 HANOI BINHGIA – TB H1N D008 DINH THI TUYET NU 23/4/82 TPHCM 22 CC MIEUNOI D2N D009 LY HAI TRIEU NAM 18/2/81 CANTHO F7 NGUYEN OANH D1N K010 HA NGUYEN XUAN NU 16/3/80 ANGIANG 365 CAO THANG K1N
(4)CƠ SỞ DỮ LIỆU VÍ DỤ
MALOP TENLOP SISO MAKHOA T1N TIN HOC 75 TH
T2N TIN HOC 68 TH D1N DIEN TU 57 DD D2N DIEN TU 61 DD H1N HOA HOC 123 HH K1N KINH TE 84 KT
DSLOP
MAKHOA TENKHOA
TH CONG NGHE THONG TIN DD DIEN – DIEN TU
HH CONG NGHE HOA
(5)CƠ SỞ DỮ LIỆU VÍ DỤ
MAMH TENMH SOTC THCB TIN HOC CAN BAN THVP TIN HOC VAN PHONG CSDL CO SO DU LIEU LTCB LAP TRINH CAN BAN CTDL CAU TRUC DU LIEU MANG MANG MAY TINH
MONHOC
MSSV MAMH DIEM T001 THVP T001 CSDL D002 THCB D002 THVP D002 LTCB H003 LTCB H003 CTDL K004 THCB K004 THVP K004 CSDL T005 THCB T005 MANG
(6)1 Ngôn ngữ mô tả liệu
1 Lệnh Tạo Bảng Lệnh Xóa Bảng Lệnh Thêm Cột Lệnh Xóa Cột Lệnh Sửa Cột
6 Lệnh Tạo Khóa Lệnh Tạo Khóa ngoại
8 Lệnh Tạo ràng buộc miền giá trị Lệnh Tạo ràng buộc
(7)1 Ngôn ngữ mô tả liệu
1.Lệnh Tạo Bảng
CREATE TABLE <tên bảng> (
<tên cột 1> <kiểu liệu 1> [NOT NULL], <tên cột 2> <kiểu liệu 2> [NOT NULL], …
<tên cột n> <kiểu liệu n> [NOT NULL]);
(8)1 Ngôn ngữ mô tả liệu
1.Lệnh Tạo Bảng – Ví dụ
CREATE TABLE SINHVIEN ( MSSV char(4) not null,
HOLOT varchar(20) not null, TEN varchar(7) not null,
PHAI bit,
NGAYSINH datetime, QUEQUAN varchar(20), DIACHI varchar(50),
(9)1 Ngơn ngữ mơ tả liệu
2.Lệnh Xóa Bảng
DROP TABLE <tên bảng>;
Ví dụ:
(10)1 Ngôn ngữ mô tả liệu
3.Lệnh Thêm Cột
ALTER TABLE <tên bảng>
ADD <tên cột> <kiểu liệu> [NOT NULL];
Ví dụ:
(11)1 Ngơn ngữ mơ tả liệu
4.Lệnh Xóa Cột
ALTER TABLE <tên bảng> DROP COLUMN <tên cột>;
Ví dụ:
ALTER TABLE SINHVIEN
(12)1 Ngôn ngữ mô tả liệu
5.Lệnh Sửa Cột
ALTER TABLE <tên bảng>
ALTER COLUMN <tên cột> <kiểu liệu>;
Ví dụ:
ALTER TABLE SINHVIEN
(13)1 Ngôn ngữ mô tả liệu
6.Lệnh Tạo Khóa chính
ALTER TABLE <tên bảng>
ADD CONSTRAINT <tên ràng buộc> PRIMARY KEY (DS tên cột);
Lưu ý:
-Tên ràng buộc
(14)1 Ngơn ngữ mơ tả liệu
6.Lệnh Tạo Khóa - Ví dụ:
ALTER TABLE SINHVIEN
ADD CONSTRAINT Kc_Sv PRIMARY KEY (mssv);
ALTER TABLE KETQUA
ADD CONSTRAINT Kc_Kq
(15)1 Ngôn ngữ mô tả liệu
7.Lệnh Tạo Khóa ngoại
ALTER TABLE <tên bảng>
ADD CONSTRAINT <tên ràng buộc> FOREIGN KEY (DS tên cột)
REFERENCES <tên bảng> (DS tên cột);
Lưu ý:
(16)1 Ngơn ngữ mơ tả liệu
7.Lệnh Tạo Khóa ngoại - Ví dụ:
ALTER TABLE SINHVIEN
ADD CONSTRAINT Kn_Sv FOREIGN KEY(malop)
REFERENCES DSLOP (malop); ALTER TABLE KETQUA
ADD CONSTRAINT Kn_Kq1 FOREIGN KEY (mssv)
(17)1 Ngôn ngữ mô tả liệu
8.Lệnh Tạo ràng buộc miền giá trị
ALTER TABLE <tên bảng>
ADD CONSTRAINT <tên ràng buộc> CHECK (Điều kiện);
Lưu ý:
(18)1 Ngơn ngữ mơ tả liệu
8.Lệnh Tạo ràng buộc miền giá trị - Ví dụ:
ALTER TABLE KETQUA
ADD CONSTRAINT Kt_Kq
CHECK (Diem between AND 10); ALTER TABLE DSLOP
(19)1 Ngơn ngữ mơ tả liệu
9.Lệnh Tạo ràng buộc nhất
ALTER TABLE <tên bảng>
ADD CONSTRAINT <tên ràng buộc> UNIQUE (DS Tên cột);
Lưu ý:
(20)1 Ngơn ngữ mơ tả liệu
9.Lệnh Tạo ràng buộc – Ví dụ
Tên mơn học khơng trùng nhau:
ALTER TABLE MONHOC
(21)1 Ngơn ngữ mơ tả liệu
10.Lệnh Tạo mục
CREATE INDEX <tên Index>
ON <tên bảng> (<cột 1>, <cột 2>, ) ;
Ngữ nghĩa: Tạo mục để lưu thứ tự xếp ghi theo giá trị tăng dần cột cho danh sách
Ghi chú: Chỉ nên tạo mục cho bảng có nhiều ghi cập nhật,
(22)1 Ngôn ngữ mô tả liệu
10.Lệnh Tạo mục – Ví dụ:
CREATE INDEX Cm_sv1
ON SINHVIEN (Ten);
CREATE INDEX Cm_mh1
(23)1 Ngôn ngữ mô tả liệu
11.Lệnh Xóa mục
DROP INDEX <tên Index> ;
Ví dụ:
(24)2 Ngơn ngữ thao tác liệu
1 Lệnh Thêm mẫu tin Lệnh Xóa mẫu tin
(25)2 Ngơn ngữ thao tác liệu
1.Lệnh thêm maãu tin (1)
INSERT INTO <tên bảng> (<tên cột 1>, ) VALUES (<biểu thức 1>, <biểu thức 2>, );
Lưu ý:
-Kiểu liệu -Chiều dài
(26)2 Ngôn ngữ thao tác liệu
1.Lệnh thêm mẫu tin (1) – Ví dụ
Thêm Sinh viên mới:
INSERT INTO SINHVIEN (MSSV, HOLOT, TEN, PHAI, NGAYSINH, QUEQUAN, DIACHI, MALOP)
VALUES (‘T005’,’LE TIEN’,’DUNG’,1,’3/18/84’, ’DONGNAI’,’77/8 LE LOI – Q1’,’T2N’);
Thêm Môn học mới:
(27)2 Ngôn ngữ thao tác liệu
1.Lệnh thêm mẫu tin (2)
Nếu biểu thức sau từ khoá VALUES hoàn toàn phù hợp thứ tự với cột bảng danh sách cột sau từ khóa INTO bỏ qua
INSERT INTO <tên bảng>
(28)2 Ngơn ngữ thao tác liệu
1.Lệnh thêm mẫu tin (2) – Ví duï
Thêm Sinh viên mới: INSERT INTO SINHVIEN
VALUES (‘T005’,’LE
TIEN’,’DUNG’,1,’3/18/84’, ’DONGNAI’,’77/8 LE LOI – Q1’,’T2N’);
(29)2 Ngôn ngữ thao tác liệu
1.Lệnh thêm mẫu tin (3)
Ngồi ta thêm (các) mẫu tin vào bảng từ câu lệnh truy vấn (Select)
INSERT INTO <tên bảng> (<tên cột 1>, ) <Câu lệnh Select>
hoặc
(30)2 Ngôn ngữ thao tác liệu
1.Lệnh thêm mẫu tin (3) – Ví dụ
Thêm Sinh viên từ danh sách: INSERT INTO SINHVIEN
SELECT * FROM DSSV_NEW ;
Lưu ý:
(31)2 Ngơn ngữ thao tác liệu
2.Lệnh Xóa maãu tin
Việc loại bỏ mẫu tin khỏi bảng CSDL
trong thao tác cập nhật liệu tiến hành cách thường xun
Cú pháp:
DELETE FROM <tên bảng> [WHERE <điều kiện>];
Ngữ nghĩa: Các mẫu tin thoả mãn điều kiện sau
(32)2 Ngôn ngữ thao tác liệu
2.Lệnh Xóa mẫu tin – Ví dụ:
Xóa Sinh viên có Mã số T005 DELETE FROM SINHVIEN
WHERE MSSV=‘T005’;
Xóa tất môn học có tín DELETE FROM MONHOC
(33)2 Ngơn ngữ thao tác liệu
3.Lệnh cập nhật mẫu tin Cú pháp
UPDATE <tên bảng>
SET <tên cột 1> = <biểu thức 1>, <tên cột 2> = <biểu thức 2>,
(34)
2 Ngôn ngữ thao tác liệu
3.Lệnh cập nhật mẫu tin
Ngữ nghĩa: Giá trị field có tên
danh sách <tên cột 1>, <tên cột 2> mẫu tin thoả mãn điều kiện sau
WHERE sửa đổi thành giá trị <biểu thức 1>, <biểu thức 2> tương ứng
(35)2 Ngơn ngữ thao tác liệu
3.Lệnh cập nhật mẫu tin Ví dụ:
Tăng cho tất sinh viên điểm môn THCB UPDATE KETQUA
SET DIEM = DIEM +1
WHERE MAMH = ‘THCB’;
Cập nhật sĩ số lớp T2N thành 90 UPDATE DSLOP
SET SISO = 90
(36)3 Ngơn ngữ truy vấn liệu
1 Cú pháp tổng quát Dạng đơn giản
3 Dấu *
4 Mệnh đề WHERE
5 Mệnh đề ORDER BY Mệnh đề GROUP BY Mệnh đề HAVING
8 Phát biểu Select với AS
9 Phát biểu Select với TOP N
(37)3 Ngơn ngữ truy vấn liệu
1.Cú pháp tổng quát
SELECT <Danh sách cột> FROM <Danh sách Bảng>
WHERE <Các điều kiện> GROUP BY <Tên cột>
(38)3 Ngôn ngữ truy vấn liệu
2.Dạng đơn giản
SELECT <Danh sách cột> FROM <Tên Bảng>
Trích số cột Bảng
Ví dụ: Lấy MAMH, TENMH từ bảng MONHOC
(39)3 Ngơn ngữ truy vấn liệu
3.Dấu *
Dấu * đại diện cho tất cột SELECT *
FROM <Tên Bảng>
Ví dụ: Lấy danh sách môn học
SELECT *
(40)3 Ngôn ngữ truy vấn liệu
4.Mệnh đề WHERE
Dùng để đặt điều kiện trích liệu
SELECT <Danh sách cột>
FROM <Tên Bảng>
WHERE <Danh sách điều kiện>
Ví dụ: Lấy MSSV, HOTEN Sinh viên quê quaùn
‘HA NOI’
(41)3 Ngôn ngữ truy vấn liệu
4.Mệnh đề WHERE
Các phép toán mệnh đề WHERE -So sánh: >, < >=, <=, =, <>
-Logic: And, Or, Not
Ví dụ: Lấy MSSV, HOTEN Sinh viên lớp T2N quê
quaùn ‘HA NOI’
SELECT MSSV, HOLOT, TEN FROM SINHVIEN
(42)3 Ngôn ngữ truy vấn liệu
4.Mệnh đề WHERE
Toán tử Between: nằm miền
Ví dụ: Trích danh sách Sinh viên sinh năm 1982
SELECT *
FROM SINHVIEN
(43)3 Ngôn ngữ truy vấn liệu
4.Mệnh đề WHERE
Toán tử LIKE: phép toán so sánh gần giống, sử dụng dấu ký tự đại diện _ (1 ký tự), % (1 chuỗi bất kỳ)
Ví dụ: Trích danh sách Sinh viên Hoï ‘Phan’
SELECT *
FROM SINHVIEN
(44)3 Ngôn ngữ truy vấn liệu 4.Mệnh đề WHERE
Toán tử IN: phép toán so sánh tập hợp, danh sách
Ví dụ: Trích danh sách Sinh viên quê quán
ở tỉnh ‘Cần Thơ’, ‘An Giang’, ‘Kiên Giang’
SELECT *
FROM SINHVIEN
(45)3 Ngôn ngữ truy vấn liệu
4.Mệnh đề WHERE
IS NULL ( IS NOT NULL ): kieåm tra giá trị có
rỗng hay không (kết quả: TRUE – FALSE)
Ví dụ: Trích danh sách Sinh viên chưa có
địa SELECT *
FROM SINHVIEN
(46)3 Ngôn ngữ truy vấn liệu
4.Mệnh đề WHERE
Tốn tử Exists: trả TRUE có mẫu tin tồn
Ví dụ: Cho biết có sinh viên Quê quán
‘Nha Trang’ khoâng? If Exists (SELECT *
FROM SINHVIEN
(47)3 Ngôn ngữ truy vấn liệu
5.Mệnh đề ORDER BY
Sắp xếp kết theo thứ tự mong muốn ORDER BY <DS Tên cột> [ASC | DESC]
Ví dụ: Trích danh sách sinh viên nữ,
theo tên tăng daàn?
SELECT MSSV, HOLOT, TEN, MALOP FROM SINHVIEN
(48)3 Ngôn ngữ truy vấn liệu
6.Mệnh đề GROUP BY
Nhóm liệu lại theo nhóm để thực hiện phép tốn thống kê
GROUP BY <DS Tên cột>
Ví dụ: Cho biết số lượng sinh viên lớp
(49)3 Ngôn ngữ truy vấn liệu
6.Mệnh đề GROUP BY
Một số Hàm thông dụng: -AVG: giá trị trung bình -MIN: giá trị nhỏ -MAX: giá trị lớn
(50)3 Ngôn ngữ truy vấn liệu
7.Mệnh đề HAVING
Đặt điều kiện chọn sau nhóm liệu mệnh đề GROUP BY
Ví dụ: Trích Danh sách lớp có 20
sinh vieân
SELECT MALOP, COUNT(*) AS SOSV FROM SINHVIEN
(51)3 Ngôn ngữ truy vấn liệu
8.Phát biểu Select với AS
Đặt lại tên Field hiển thị kết
Ví dụ: Trích Danh sách lớp có 20
sinh vieân
SELECT MALOP AS ML, COUNT(*) AS SOSV FROM SINHVIEN
GROUP BY MALOP
(52)3 Ngôn ngữ truy vấn liệu
9.Phát biểu Select với TOP N
Cho phép lấy số mẫu tin theo tiêu chuẩn
Ví dụ: Trích Danh sách 10 sinh viên đầu tiên.
(53)3 Ngôn ngữ truy vấn liệu
10.Phát biểu Select với DISTINCT
Nếu kết truy vấn có nhiều mẫu tin trùng nhau, để lấy mẫu tin ta dùng DISTINCT
Ví dụ: Trong Danh sách Sinh viên, cho biết có
những lớp
(54)3 Ngôn ngữ truy vấn liệu
11.Truy vấn từ nhiều bảng
Khi thông tin cần lấy có từ nhiều bảng khác nhau, cần thực truy vấn từ nhiều bảng
(55)3 Ngôn ngữ truy vấn liệu
11.Truy vấn từ nhiều bảng Lưu ý:
Cần kết bảng lại với Với n
bảng cần có n-1 điều kiện kết
Các tên cột có nhiều bảng cần
(56)3 Ngôn ngữ truy vấn liệu
11.Truy vấn từ nhiều bảng
Ví dụ: Trích MSSV, HOTEN, MALOP,TENLOP
của sinh viên tên ‘NAM’
SELECT MSSV, HOLOT, TEN, DSLOP.MALOP, TENLOP FROM SINHVIEN, DSLOP
(57)3 Ngôn ngữ truy vấn liệu
11.Truy vấn từ nhiều bảng
-Có thể sử dụng tên tắt Bảng
Ví dụ: Trích MSSV, HOTEN, MALOP, TENLOP
của sinh viên khoa CNTT
SELECT MSSV, HOLOT, TEN, L.MALOP, TENLOP FROM SINHVIEN S, DSLOP L, DSKHOA K
WHERE S.MALOP = L.MALOP
AND L.MAKHOA = K.MAKHOA
(58)3 Ngôn ngữ truy vấn liệu
12.Truy vấn con
-Đơi ta cần sử dụng kết câu truy vấn để làm điều kiện cho câu truy vấn khác, ta gọi truy vấn
(59)3 Ngôn ngữ truy vấn liệu
12.Truy vấn con
Dạng tổng quát:
SELECT <Danh sách cột> FROM <Danh sách Bảng>
WHERE <Các điều kiện>
… < Tên cột > IN ( NOT IN, =, <>, …)
( SELECT <Danh saùch caùc cột> FROM <Danh sách Bảng>
(60)3 Ngơn ngữ truy vấn liệu
12.Truy vấn con
Ví dụ: Trích DS SV có điểm môn THVP cao
SELECT S.MSSV,HOLOT,TEN,MAMH,DIEM FROM SINHVIEN S, KETQUA K
WHERE S.MSSV = K.MSSV AND MAMH=‘THVP’
AND DIEM = ( SELECT MAX(DIEM)
(61) From > Where > Group By > Having >