Cấu trúc của ngôn ngữ SQL2.1 Ngôn ngữ định nghĩa dữ liệu DDL Ngôn ngữ định nghĩa dữ liệu là các lệnh cho phép định nghĩa cơ sở dữ liệu bao gồm: - Lệnh mô tả quan hệ.. 2.2 Ngôn ngữ thao t
Trang 1I Khái quát về ngôn ngữ truy vấn có cấu trúc
1 Giới thiệu
Ngơn ngữ SQL bao gồm các phần:
Ngơn ngữ định nghĩa dữ liệu (Data Description Language).
Ngơn ngữ thực thi dữ liệu tương tác (Data Mapulation
Language).
- DML nhúng.
CHƯƠNG 3: NGÔN NGỮ TRUY
VẤN CÓ CẤU TRÚC
Trang 22 Cấu trúc của ngôn ngữ SQL
2.1 Ngôn ngữ định nghĩa dữ liệu (DDL)
Ngôn ngữ định nghĩa dữ liệu là các lệnh cho phép định nghĩa cơ
sở dữ liệu bao gồm:
- Lệnh mô tả quan hệ.
- Lệnh xóa quan hệ.
- Lệnh tạo chỉ mục cho quan hệ.
- Lệnh xóa chỉ mục.
Trang 32.2 Ngôn ngữ thao tác dữ liệu (DML)
Ngôn ngữ thao tác dữ liệu là các lệnh cho phép thao tác trên cơ sở dữ liệu bao gồm:
- Truy xuất dữ liệu.
- Cập nhật dữ liệu.
- Khai thác dữ liệu.
Trang 4II CÁC LỆNH LIÊN QUAN ĐẾN CẤU TRÚC CỦA CƠ SỞ
DỮ LIỆU
1 Lệnh tạo cấu trúc cho một bảng mới (Create Table)
1.1 Công dụng
Dùng để tạo cấu trúc cho một bảng.
1.2 Cú pháp
( <thuộc tính 1> <kiểu dữ liệu> [not null] [unique] [RBTV thuộc tính],
………,
<thuộc tính n> <kiểu dữ liệu> [not null] [unique] [RBTV thuộc tính], [RBTV bảng])
Trang 5Trong đó kiểu dữ liệu bao gồm:
- Kiểu số (Numeric)
+ Số nguyên : INTEGER, SMALLINT
+ Số thực : FLOAT, REAL, DOUBLE PRECISION.
+ Số thực có định dạng : DECIMAL (i, j) hay NUMERIC (i, j)
- Kiểu chuỗi ký tự (Character - String)
+ Chuỗi ký tự có chiều dài cố định : CHAR (n)
+ Chuỗi ký tự có chiều dài biến động : VARCHAR (n)
- Kiểu ngày/giờ (DateTime) : YEAR, MONTH, DAY
- Kiểu tiền tệ (Currency).
- Kiểu luận lý (Yes/ No).
Trang 62 Thêm bớt các cột của một bảng (Alter table)
2.1 Công dụng
Dùng để thay đổi cấu trúc của bảng.
2.2 Cú pháp
ALTER TABLE <tên quan hệ>
ADD <thuộc tính> <kiểu dữ liệu>/ DROP <thuộc tính>
- ADD <thuộc tính> <kiểu dữ liệu> : thêm thuộc tính có
kiểu dữ liệu tương ứng
- DROP <thuộc tính> : xóa thuộc tính
Trang 73 Hủy bỏ một bảng (Drop table)
3.1Công dụng
Dùng để xóa bỏ một bảng.
3.2Cú pháp
DROP TABLE <tên bảng>
Ví dụ : Xóa bảng TAI_SAN
DROP TABLE TAI_SAN
Trang 8III CÁC LỆNH CẬP NHẬT DỮ LIỆU CHO CƠ SỞ
DỮ LIỆU
1 Thêm các bộ vào một bảng (Insert into)
1.1Công dụng
Dùng để thêm một hay nhiều bộ bằng cách chỉ ra tên quan hệ và
danh sách các giá trị của một bộ.
1.2Cú pháp
- Thêm một bộ vào một quan hệ:
INSERT INTO <BẢNG> {<thuộc tính 1>, <thuộc tính 2>,…}
VALUES (<giá trị 1>, <giá trị 2>,…)
Trang 92 Hủy các bộ trong một bảng (Delete from)
2.1 Công dụng:
Dùng để xóa khỏi một quan hệ một hay nhiều bộ.
2.2 Cú pháp:
DELETE [FROM] < tên bảng>
[WHERE <điều kiện>]
Nếu không chỉ ra điều kiện ở mệnh đề WHERE thì tất cả các
bộ trong quan hệ sẽ bị xóa hết.
Trang 103 Cập nhật nội dung các bộ trong một bảng (Update
table)
3.1Công dụng
Cập nhật các giá trị thuộc tính của một hay nhiều bộ được
chọn để cập nhật.
3.2Cú pháp
UPDATE <tên bảng>
SET <thuộc tính 1> = <giá trị 1>,
<thuộc tính 2> = <giá trị 2>,
…
Trang 11IV CÁC LỆNH TRUY VẤN DỮ LIỆU TRONG
CƠ SỞ DỮ LIỆU (SELECT)
1 Phép chiếu
thuộc tính.
SELECT <Danh sách các thuộc tính>.
FROM <Danh sách quan hệ>
hoặc
SELECT UNIQUE <Danh sách các thuộc tính>.
Trang 122 Phép chọn
- Phép chọn là điều kiện liên quan đến thuộc tính của quan hệ
xuất hiện.
- Cú pháp:
SELECT <Danh sách các thuộc tính>.
FROM <Danh sách quan hệ>.
WHERE <Điều kiện>.
Hoặc
SELECT DISTINC <Danh sách các thuộc tính>.
FROM <Danh sách quan hệ>.
WHERE <Điều kiện>.
Trang 133 Phép tích Descartes
- Liệt kê tất cả các quan hệ cần thiết cho việc đánh giá biểu
thức.
- Cú pháp:
SELECT <Danh sách các thuộc tính>.
FROM <Danh sách quan hệ>.
- Nếu các quan hệ có các thuộc tính với tên giống nhau thì
phải chỉ rõ thuộc tính ở quan
Trang 144 Phép - kết
SELECT <Danh sách các thuộc tính>
FROM <Danh sách quan hệ>
WHERE <Điều kiện kết
Trang 155 Phép tính toán trong câu truy vấn
Các hàm làm việc trên tập hợp bao gồm các hàm sau:
- Count : dùng để đếm các bộ
- Sum: dùng để tính tổng giá trị
- Avg: dùng để tính giá trị trung bình
- Max: dùng để tính giá trị lớn nhất
Trang 166 Truy vấn lồng nhau
- SQL cung cấp các cấu trúc ngôn ngữ cho phép lồng các
câu truy vấn thành các truy vấn con.
- Câu truy vấn con (Sub Query) là một biểu thức SELECT –
FROM – WHERE lồng trong câu truy vấn khác (Outer
Query).
- Câu truy vấn con thường được dùng để kiểm tra các tập
hợp thành viên, so sánh tập hợp và định bản số.
- Câu truy vấn con được sử dụng trong mệnh đề WHERE
của một câu truy vấn khác Mệnh đề SELECT trong
truy vấn con phải phù hợp với số thuộc tính và kiểu dữ
Trang 17- Truy vấn con trả về giá trị tập hợp trong mệnh đề WHERE được sử
dụng như sau:
<Biểu thức> [NOT] IN (<Truy vấn con>).
<Biểu thức> <Phép toán so sánh> ANY (<Truy vấn con>).
<Biểu thức> <Phép toán so sánh> ALL (<Truy vấn con>).
- Truy vấn con để kiểm tra sự tồn tại:
[NOT] EXIST (<Truy vấn con>).
- Các câu truy vấn con trong một mệnh đề WHERE có thể được kết
hợp bằng các sử dụng các phép nối luận lý (logic) như: and, or, not…
Trang 18- Mỗi nhóm bộ được phân nhóm trên cơ sở cùng thuộc tính trong
quan hệ Mỗi nhóm bộ gồm tập hợp các bộ có cùng giá trị trên các thuộc tính gom nhóm Các hàm gom nhóm áp dụng trên mỗi
bộ độc lập nhau
Cú pháp câu lệnh SQL như sau: SELECT <các thuộc tính [với hàm kết
hợp]> FROM R1, R2,… ,Rm
[WHERE]
GROUP BY <các thuộc tính gom nhóm>
[HAVING <điều kiện trên nhóm>]
- Mệnh đề GROUP BY chỉ ra các thuộc tính gom nhóm.
- Mệnh đề HAVING lấy các giá trị của hàm gom nhóm trên những
nhóm thỏa mãn một số điều kiện nhất định Mệnh đề này dùng để chỉ điều kiện lọc trên các nhóm chứ không lọc trên từng bộ Điều kiện trong mệnh đề HAVING được thực hiện sau khi gom nhóm
Trang 198 Truy vấn tổng hợp
Cú pháp:
SELECT DISTINCT *| danh sách thuộc tính <biểu thức>,… FROM <danh sách các quan hệ>
WHERE <biểu thức điều kiện>
GROUP BY <danh sách thuộc tính>
HAVING <điều kiện nhóm>
ORDER BY <danh sách các thuộc tính> [ASC][DEC].
- Mệnh đề ORDER BY dùng để sắp xếp thứ tự (mặc định
là sắp xếp tăng dần):