Download miễn phí Giáo trình cơ sở dữ liệu - Ngôn ngữ SQL





MỤC LỤC
PHẦN II- NGÔN NGỮSQL 2
1 Chương 1. GIỚI THIỆU. 4
1.1 Lịch sửphát triển. 4
1.2 Chuẩn SQL . 4
1.3 Đặc điểm của SQL . 4
1.4 Các loại lệnh của SQL. 5
2 Chương 2. CÁC LỆNH ĐỊNH NGHĨA DỮLIỆU (DDL) . 6
2.1 Tạo một cơsởdữliệu. 6
2.2 Tạo một bảng. 6
2.2.1 Cú pháp . 6
2.2.2 Tên của bảng . 6
2.2.3 Xác định các thuộc tính . 7
2.3 Các loại dữliệu . 7
2.3.1 Các loại dữliệu được sửdụng trong MS Access. 7
2.3.2 Các loại dữliệu được sửdụng trong Oracle: . 8
2.3.3 Các loại dữliệu sửdụng trong SQL SERVER. 12
2.4 Các loại ràng buộc trong bảng dữliệu . . 12
2.4.1 NOT NULL- Không rỗng . 12
2.4.2 UNIQUE-Duy nhất . 12
2.4.3 PRIMARY KEY- Khoá chính . 13
2.4.4 FOREIGN KEY-Khoá ngoại . 13
2.4.5 CHECK- Ràng buộc kiểm tra giá trị. 14
2.4.6 DEFAULT-Mặc định. 14
2.5 Sửa đổi cấu trúc. 15
2.6 Xoá đối tượng. 17
3 Chương 3. CÁC LỆNH QUẢN TRỊDỮLIỆU . 17
3.1 Thêm hàng (INSERT) . 17
3.2 Xóa hàng (DELETE). 18
3.3 Sửa đổi giá trịcủa một hàng (UPDATE) . 18
4 Chương 4. NGÔN NGỮ ĐIỂU KHIỂN (DCL) . 19
4.1 Lệnh GRANT . 19
4.2 Lệnh REVOKE . 20
5 Chương 5. TRUY VẤN DỮLIỆU (SELECT) . 21
5.1 Cú pháp . 21
5.2 Ví dụ:. 21
5.3 Đưa ra các cột. 22
5.3.1 Đưa tất cảcác cột. 22
5.3.2 Đưa một sốcác cột. 22
5.3.3 Tránh các giá trịtrùng lặp (DISTINCT). 23
5.3.4 Đưa ra các giá trịcủa các biểu thức. 23
5.3.5 Sửdụng bí danh cột . 23
5.3.6 Sắp xếp thứtự(ORDER BY) . 24
5.4 Đưa ra các hàng. 24
PHẦN II- NGÔN NGỮSQL 3
5.4.1 Sửdụng các phép so sánh . 24
5.4.2 Sửdụng các phép logic: AND, OR, NOT . 25
5.4.3 Các toán tửcủa SQL . 25
5.5 Sửdụng các hàm . 27
5.5.1 Hàm sốhọc . 27
5.5.2 Một sốhàm kiểu sốtham khảo khác: . 27
5.5.3 Các hàm ký tự. 29
5.5.4 Các hàm ngày. 33
5.5.5 Các hàm chuyển đổi kiểu. 35
5.5.6 Hàm nhóm. 37
5.5.7 Sửdụng hàm nhóm . 37
5.5.8 Mệnh đềGROUP BY . 37
5.5.9 Mệnh đềHAVING. 38
5.6 Lấy thông tin từnhiều bảng . 39
5.6.1 Nối bằng (Equi-Join) . 39
5.6.2 Bí danh bảng . 40
5.6.3 Nối không bằng (Non Equi-Join) . 40
5.6.4 Nối bảng với chính nó. 41
5.6.5 Thực hiện kết nối thông qua từkhóa Join . 41
5.7 Thực hiện các phép toán trên tập hợp . 43
5.8 Các câu hỏi lồng nhau . 44
5.8.1 Lệnh SELECT bên trong cho kết quảlà 1 hàng . 44
5.8.2 Lệnh SELECT bên trong cho kết quảlà nhiều hàng . 45
5.8.3 Mệnh đềHAVING trong SELECT lồng nhau. . 48
5.8.4 Mệnh đềORDER BY trong SELECT lồng nhau . 49
5.9 Các lệnh lồng nhau liên kết . 49
6 THỰC HÀNH TỔNG HỢP . 51
6.1 Hướng dẫn thực hành . 51
6.2 Bài số1. 52
6.3 Bài số2. 54
6.4 Bài số3. 58



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

đó thỏa mãn điều kiện. Muốn xóa mọi
dòng của một bảng thì không cần đưa vào mệnh đề WHERE.
Ví dụ:
Xóa một bản ghi (dòng) có MaDG=’DHTL01’ trong bảng DOCGIA.
DELETE FROM DOCGIA WHERE MaDG=’DHTL01’
Xóa những độc giả có địa chỉ là: 41NC có trong bảng DOCGIA.
DELETE FROM DOCGIA WHERE Diachi=’41NC’
3.3 Sửa đổi giá trị của một hàng (UPDATE)
Cú pháp:
UPDATE
SET (Colunm_name= )
WHERE
Ví dụ:
UPDATE DOCGIA
SET (Diachi= ‘Khoa Cong trinh’)
WHERE MaDG= ‘TD001’
Chương 4. NGÔN NGỮ ĐIỂU KHIỂN (DCL)
PHẦN II- NGÔN NGỮ SQL 19
4 Chương 4. NGÔN NGỮ ĐIỂU KHIỂN (DCL)
Ngôn ngữ điều khiển được sử dụng trong việc cấp phát hay huỷ bỏ quyền
của người sử dụng.
4.1 Lệnh GRANT
Câu lệnh này dùng để cấp phát quyền cho người sử dụng trên đối tượng Cơ
sở dữ liệu hay quyền thực thi các câu lệnh SQL SERVER. Cú pháp có 2 dạng
như sau:
Dạng 1: Cấp quyền đối với câu lệnh SQL
GRANT ALL | statement [,...,statementN ]
TO account [,...,accountN]
Dạng 2: Cấp quyền đối với các đối tượng trong cơ sở dữ liệu
GRANT ALL | permission [,...,permissionN]
ON table_name |view_name [(column1 [,...,columnN])]
|ON stored_procedure
TO account [,...,accountN]
Trong đó:
- ALL: là từ khoá được sử dụng khi muốn cấp phát tất cả các quyền cho
người sử dụng.
- Account: là tên tài khoản đăng nhận hệ thống
- Permission: là quyền cấp phát cho người sử dụng trên đối tượng cơ sở dữ
liệu:
o Các quyền có thể cấp phát trên một bảng hay một View: Select,
Insert, Delete, Update.
o Các quyền có thể cấp phát trên cột của bảng hay của View: Select,
Update
o Quyền có thể cấp phát với các thủ tục: EXCUTE(thực thi)
- Statement: Là câu lệnh được cấp phát cho người sử dụng Các câu lệnh có
thể cấp phát là:
o CREATE DATABASE
o CREATE TABLE
o CREATE VIEW
o CREATE PROCEDURE
Chương 4. NGÔN NGỮ ĐIỂU KHIỂN (DCL)
PHẦN II- NGÔN NGỮ SQL 20
o CREATE RULE
o CREATE DEFAULT
o BACKUP DATABASE
o BACKUP LOG
Ví dụ 1: Câu lệnh sau sẽ 3 cấp quyền SELECT, UPDATE, INSERT trên
các thuộc tính (TenNV,DiaChi, Tuoi) của bảng NHANVIEN cho 2 người sử dụng
phnhung, htvan.
GRANT SELECT, UPDATE, INSERT
ON NHANVIEN(TenNV,DiaChi, Tuoi)
TO phnhung, htvan
Ví dụ 2:
Câu lệnh sau sẽ cấp quyền tạo bảng, tạo View và tạo thủ tục cho người
dùng phnhung.
GRANT CREATE TABLE, CREATE VIEW, CREATE PROCEDURE
TO phnhung
4.2 Lệnh REVOKE
Lệnh REVOKE được dùng để huỷ bỏ quyền đã được cấp phát cho người sử
dụng. Câu lệnh này cũng có 2 dạng tương tự như câu lệnh GRANT.
Dạng 1: Huỷ quyền thực hiện câu lệnh:
REVOKE ALL | statement [,...,statementN]
FROM account [,...,accountN]
Dạng 2: Huỷ quyền thực hiện các đối tượng:
REVOKE ALL | permission [,...,permissionN]}
ON table_name | view_name [(column [,...,columnN])]
| stored_procedure
FROM account [,...,accountN ]
Chương 5. TRUY VẤN DỮ LIỆU (SELECT)
PHẦN II- NGÔN NGỮ SQL 21
5 Chương 5. TRUY VẤN DỮ LIỆU (SELECT)
- Mệnh đề SELECT cho phép chỉ ra các thuộc tính mà ta muốn tìm. Thứ tự
các thuộc tính trong kết quả là thứ tự mà nó xuất hiện trong lệnh SELECT.
Bằng cách đó cho phép ta thực hiện được phép chiếu của quan hệ.
- Như vậy, kết quả của câu lệnh SELECT là một bảng, bảng đó là kết quả
của phép chiếu qua bảng xuất phát.
- SELECT có thể thực hiện trên 1 bảng hay trên nhiều bảng.
- SELECT có nhiều mệnh đề, mỗi mệnh đề đảm bảo một chức năng.
5.1 Cú pháp
SELECT [DISTINCT]|Columns_list|Expression_list|*
FROM
WHERE
GROUP BY
HAVING
ORDER BY [ACS| DESC]
Trong đó:
- Sau SELECT: Các thông tin cần đưa ra, đó chính là danh sách các
thuộc tính
- Sau FROM: Danh sách các tên bảng, từ đó thông tin được lấy ra.
- Sau WHERE: Các biểu thức logic, chỉ ra thông tin được lấy ra từ
hàm nào hay điều kiện nối giữa các bảng.
- Sau GROUP BY: Các cột mà trong đó được tính theo từng nhóm.
- Sau HAVING: Biểu thức logic chỉ ra thông tin được lấy ra từ nhóm
nào.
- Sau ORDER BY: Chỉ ra các cột mà trong đó thông tin được sắp xếp
theo thứ tự.
o ASC: thông tin được sắp xếp theo chiều tăng dần
(ASCendent)
o DESC: thông tin được sắp xếp theo chiều giảm
dần(DESCendent)
5.2 Ví dụ:
Xét bảng: NHANVIEN
Chương 5. TRUY VẤN DỮ LIỆU (SELECT)
PHẦN II- NGÔN NGỮ SQL 22
NHANVIEN
MaNV HoTen CongViec Luong MaDV
NV001 Phạm Thị Nhàn Thư ký 500 0001
NV002 Hoàng Thanh Vân Giáo viên 600 0001
NV003 Hoàng Thị Lan Giáo viên 200 0002
NV004 Đỗ Trung Dũng Thư ký 700 0003
... ... .... ... ...
5.3 Đưa ra các cột
5.3.1 Đưa tất cả các cột
Ví dụ: Đưa tất cả các thông tin về nhân viên
SELECT *
FROM NHANVIEN
Kết quả: Toàn bộ bảng trên.
5.3.2 Đưa một số các cột
Ví dụ: Đưa ra Hoten, Luong của các nhân viên
SELECT Hoten, Luong
FROM NHANVIEN
Kết quả:
sl_NV_some_col
Hoten Luong
Phạm Thị Nhàn 500
Hoàng Thanh Vân 600
Hoàng Thị Lan 200
Đỗ Trung Dũng 700
Chương 5. TRUY VẤN DỮ LIỆU (SELECT)
PHẦN II- NGÔN NGỮ SQL 23
5.3.3 Tránh các giá trị trùng lặp (DISTINCT)
Ví dụ: Đưa ra các công việc khác nhau trong bảng NHANVIEN
SELECT DISTINCT Congviec
FROM NHANVIEN
Kết quả: - Nếu không có lệnh DISTINCT và có DISTINCT:
Congviec CongViec
Thư ký Giáo viên
Giáo viên Thư ký
Giáo viên
Thư ký
5.3.4 Đưa ra các giá trị của các biểu thức
Ví dụ: Đưa ra Hoten, Luongnam (Lương *12) của tất cả các nhân viên
SELECT Hoten, Luong*12
FROM NHANVIEN
Kết quả:
sl_bieuthuc
Hoten Expr1001
Phạm Thị Nhàn 6000
Hoàng Thanh Vân 7200
Hoàng Thị Lan 2400
Đỗ Trung Dũng 8400
5.3.5 Sử dụng bí danh cột
SELECT Hoten, Luong*12 AS Luongnam
FROM NHANVIEN
Kết quả:
Hoten LuongNam
Phạm Thị Nhàn 6000
Hoàng Thanh Vân 7200
Hoàng Thị Lan 2400
Đỗ Trung Dũng 8400
Chương 5. TRUY VẤN DỮ LIỆU (SELECT)
PHẦN II- NGÔN NGỮ SQL 24
5.3.6 Sắp xếp thứ tự (ORDER BY)
Ví dụ: Đưa ra Hoten, Luong sắp xếp theo thứ tự tăng dần/ giảm dần của
Luong.
SELECT Hoten, Luong
FROM NHANVIEN
ORDER BY Luong [ASC/ DESC]
Kết quả:
Hoten Luong
Hoàng Thị Lan 200
Phạm Thị Nhàn 500
Hoàng Thanh Vân 600
Đỗ Trung Dũng 700
- Trong đó ASC(ascendent) là tăng dần, DESC(descendent) là giảm
dần.
- Nếu để giá trị mặc định thì sẽ sắp xếp theo chiều tăng dần.
5.4 Đưa ra các hàng
Lệnh có dạng:
SELECT [DISTINCT]|Columns_list|Expression_list|*
FROM
WHERE
Điều kiện sau mệnh để Where là một biểu thức lôgic, sử dụng các phép
toán sau:
5.4.1 Sử dụng các phép so sánh
= : Toán tử bằng hay tương đương
!= : Toán tử khác hay không tương đương
> : Toán tử lớn hơn
< : Toán tử nhỏ hơn
>= : Toán tử lớn hơn hay bằng
<= : Toán tử nhỏ hơn hay bằng
Ví dụ: Đưa ra Hoten, Luong của các nhân viên có Luong>300
Chương 5. TRUY VẤN DỮ LIỆU (SELECT)
PHẦN II- NGÔN NGỮ SQL 25
Hoten Luong
Phạm Thị Nhàn 500
Hoàng Thanh Vân 600
Đỗ Trung Dũng 700
5.4.2 Sử dụng các phép logic: AND, OR, NOT
Ví dụ: Đưa ra Hoten, Luong của những nhân viên có công việc là Giáo
viên và mức lương >300.
SELECT HoTen, Luong
FROM NHANVIEN
WHERE (Luong>300) AND (Congviec='Giáo viên')
Kết quả:
HoTen Luong
Hoàng Thanh Vân 600
- Phân tích ví dụ sau:
SELECT HoTen, Luong
FROM NHANVIEN
WHERE (((Luong)>400) AND (Not(CongViec)=('Thư ký') )
OR (Congviec=('Thư ký' ) ))
Kết quả:
HoTen Luong
Phạm Thị Nhàn 500
Hoàng Thanh Vân 600
Đỗ Trung Dũng 700
5.4.3 Các toán tử của SQL
- [NOT] BETWEEN x AND y: [Không] nằm giữa giá trị X và Y
- IN (danh sách): thuộc bất kỳ giá trị nào trong danh sách
- x [NOT] LIKE...
 
Top