Chương 4: Ngôn ngữ vấn tin SQL Ngôn ngữ thao tác dữ liệu Data Manipulate Language - DML Ngôn ngữ định nghĩa dữ liệu Data Definition Language - DDL Đặng Thị Kim Anh Email: kimanh0602
Trang 1Chương 4:
Ngôn ngữ vấn tin SQL
Ngôn ngữ thao tác dữ liệu
(Data Manipulate Language - DML)
Ngôn ngữ định nghĩa dữ liệu
(Data Definition Language - DDL)
Đặng Thị Kim Anh Email: kimanh060282@gmail.com
(Structured Query Language)
Trang 3CSDL Quản lý cho thuê đĩa phim
Mô hình DL quan hệ trình bày dưới dạng đồ hoạ
Trang 4Giới thiệu
SQL do IBM đề xuất và đã phát triển
1974: SEQUEL (Structure English Query Language)
1976: SEQUEL2 – Data definition, Manipulation, Control
1983: SQL (DB2)
1986: Database Language ISO 9075-1987 (DB2.1)
1989: Added Embedded SQL
1992: SQL-92, ISO/IEC 9075-1992 (DDL-DML extend)
1999: SQL-99, Object – Oriented feature
Hiện nay là ngôn ngữ vấn tin quan hệ được sử dụng trong nhiều hệ thống CSDL thương mại
Trang 5 Ngôn ngữ định nghĩa dữ liệu – DDL
Ngôn ngữ thao tác dữ liệu - DML
Trang 6Ngôn ngữ định nghĩa dữ liệu
Dùng để định nghĩa các lược đồ trong CSDL
Gồm 3 câu lệnh
Tạo lược đồ: CREATE
Xóa lược đồ: DROP
Thay đổi cấu trúc lược đồ: ALTER
Trang 7 Tên cột: Field name
Kiểu dữ liệu: Data type
Ràng buộc trên cột: Column constraint
Giá trị mặc định: Default value
Ràng buộc trên bảng: Table constraint
Trang 8CREATE TABLE (2)
Cú pháp
CREATE TABLE Tên bảng (
Tên_cột Kiểu/độ_rộng DEFAULT Giá_trị
[ NULL | NOT NULL]
[ PRIMARY KEY | UNIQUE |
[FOREIGN KEY] REFERENCES Tên_bảng(Tên_cột) ]
[, Tên cột n…], [Ràng buộc bảng] )
Chú ý
Giá trị mặc định của cột là NULL
Ràng buộc trên nhiều cột → Ràng buộc bảng
Trang 9CREATE TABLE (3)
Một số loại ràng buộc
NOT NULL: trường không được phép để trống
PRIMARY KEY: khóa chính ≈ NOT NULL và UNIQUE
FOREIGN KEY: khóa ngoại, liên kết
UNIQUE: có giá trị duy nhất
DEFAULT: giá trị sẽ nhận khi người dùng không nhập vàotrường đó
CHECK: biểu thức điều kiện mà giá trị nhập vào trường
đó phải thỏa mãn
…
Trang 10Ví dụ (1)
Trang 11Ví dụ (2)
Trang 12Ví dụ (3)
Trang 13Ví dụ (4)
Trang 14DROP TABLE
Trang 15ALTER TABLE
Trang 16Ngôn ngữ thao tác dữ liệu
Trang 17Câu lệnh truy vấn dữ liệu
Trang 18Mệnh đề SELECT
Trang 19Mệnh đề SELECT (tiếp)
Trang 20Mệnh đề SELECT (tiếp)
Trang 21Mệnh đề SELECT (tiếp)
Trang 22Mệnh đề FROM
Trang 23Nối tự nhiên
Trang 24INNER JOIN
Trang 25OUTER JOIN (1)
Trang 26OUTER JOIN (2)
Trang 27Mệnh đề WHERE
Trang 28Mệnh đề WHERE (tiếp)
Trang 29Mệnh đề WHERE (tiếp)
Trang 30Mệnh đề WHERE với giá trị Null
Trang 31Sắp xếp các bộ dữ liệu kết quả
Trang 32UNION (1)
Trang 33UNION (2)
Trang 34Ví dụ (1)
Trang 35Ví dụ (2)
Trang 36Hàm gộp nhóm
(Aggregate functions)
Trang 37Hàm gộp nhóm… (tiếp)
Trang 38Hàm gộp nhóm… (tiếp)
Trang 39Mệnh đề GROUP BY
Trang 40Mệnh đề GROUP BY… (tiếp)
Trang 41Mệnh đề GROUP BY… (tiếp)
Trang 42Mệnh đề HAVING
Trang 43Mệnh đề HAVING …(tiếp)
Trang 44WHERE hay HAVING ?
Trang 45Câu lệnh SELECT đầy đủ
Trang 46Định lượng một câu SQL
Trang 47Câu lệnh lồng nhau
(lồng trong phần SELECT).1
Trang 48Câu lệnh lồng nhau
(lồng trong phần SELECT).2
Trang 49Câu lệnh lồng nhau
(lồng trong phần FROM).1
Trang 50Câu lệnh lồng nhau
(lồng trong phần FROM).2
Trang 51Câu lệnh lồng nhau
(lồng trong phần WHERE).1
Trang 52Câu lệnh lồng nhau
(lồng trong phần WHERE).2
Trang 53Câu lệnh lồng nhau
(lồng trong phần WHERE).3
Trang 54Câu lệnh lồng nhau
(lồng trong phần WHERE).4
Trang 55Câu lệnh lồng nhau
(lồng trong phần Having).1
Trang 56Thao tác khác trên dữ liệu
Trang 57INSERT
Trang 58INSERT (tiếp)
Trang 59UPDATE
Trang 60UPDATE(tiếp)
Trang 61DELETE
Trang 62DELETE…(tiếp)