PowerPoint Template CƠ SỞ DỮ LIỆU Khoa CNTT CHƯƠNG 2 ĐẠI SỐ QUAN HỆ HƢỚNG DẪN HỌC Để hoàn thành tốt bài học này sinh viên cần thực hiện nhiệm vụ sau + Nắm vững nội dung bài học tuần 2 + Làm đầy đủ bài tập + Nghiên cứu trước tài liệu tham khảo 2 2 SQL a Lệnh tạo bảng create table tên bảng ( tên cột kiểu DL not null, ) trong đó tên bảng bắt đầu bằng 1 chữ cái, không có dấu cách ký tự đặc biệt, không trùng từ khóa tên cột đặt theo quy tắc giống tên bảng và là duy nhất trong một bảng not nul.
Trang 1CƠ SỞ DỮ LIỆU
Khoa CNTT
Trang 2CHƯƠNG 2: ĐẠI SỐ QUAN HỆ
Trang 52.2 SQL
a Lệnh tạo bảng
create table tên_bảng
( tên_cột kiểu_DL [not null],
)
trong đó:
- tên bảng : bắt đầu bằng 1 chữ cái, không có dấu cách &
ký tự đặc biệt, không trùng từ khóa
- tên cột : đặt theo quy tắc giống tên bảng và là duy nhất trong một bảng
- not null : không được phép để trống
Trang 7- Nếu không chỉ định DS cột thì máy tính sẽ lấy DS cột theo thứ
tự được tạo trong lệnh Create Table
- Nếu DS cột được đưa ra không bao gồm toàn bộ các cột của bảng thì giá trị trên những cột còn lại sẽ bị để trống
Trang 82.2 SQL
Ví dụ:
Tạo bảng có tên, lược đồ và các bộ dữ liệu như
hình sau: (các cột B, C, E chứa tối đa 2 ký tự)
r (A B C D E)
1 a c 2 a
2 b d 3 b
3 c f 1 c
Trang 9Dữ liệu ban đầu Lệnh chèn
insert into r (A,B)
Trang 102.2 SQL
c Lệnh xóa bảng
drop tên_bảng
d Lệnh hiển thị dữ liệu
select [* | Distinct] DS các thuộc tính
from tên_các_bảng | tên_các_view
[ where biểu thức điều_kiện ]
[ group by ds_cột [ having ĐK_nhóm ] ] [ order by tên_cột | biểu_thức [ASC|DESC]]
Trang 11 Lệnh hiển thị dữ liệu
Lệnh Select không điều kiện
select [* | Distinct] DS_chiếu
from tên_các_bảng | tên_các_view
Ví dụ: Cho biết kết quả các lệnh sau:
Trang 12 Lệnh hiển thị dữ liệu
Lệnh Select không điều kiện
Ví dụ: Bài tập 1 - SQL
Bảng S
Trang 13 Lệnh hiển thị dữ liệu
Lệnh Select không điều kiện
Ví dụ: Bài tập 1 - SQL
Bảng P
Trang 14 Lệnh hiển thị dữ liệu
Lệnh Select không điều kiện
Ví dụ: Bài tập 1 - SQL
Bảng SP
Trang 15 Lệnh hiển thị dữ liệu
Lệnh Select với điều kiện đơn giản
select * | [Distinct] DS_chiếu
from tên_các_bảng | tên_các_view
where biểu_thức_điều_kiện
Trong đó
- Biểu thức điều kiện có thể là một điều kiện
- hoặc nhiều điều kiện kết hợp với nhau qua phép toán AND,
OR
Trang 16 Lệnh hiển thị dữ liệu
Lệnh Select với điều kiện đơn giản
select * | [Distinct] DS_chiếu
from tên_các_bảng | tên_các_view
where biểu_thức_điều_kiện
Mỗi điều kiện có thể viết dưới các dạng sau:
- biểu_thức {=, < >, >, >=, <, <=} giá trị
- biểu thức IN (tập giá trị)
- biểu thức số BETWEEN giá trị đầu AND giá trị cuối
- biểu thức ký tự LIKE chuỗi mẫu
Trang 17Lệnh Select với điều kiện đơn giản
Trang 18Lệnh Select với điều kiện đơn giản
Trang 19Lệnh Select với điều kiện đơn giản
%: thay thế cho 1 xâu ký tự
Trang 20 Lệnh hiển thị dữ liệu
Lệnh Select với các hàm thống kê
DS chiếu có thể sử dụng biểu thức hoặc các hàm
thống kê
- COUNT(*): đếm số bản ghi thỏa yêu cầu tìm kiếm
- COUNT(biểu_thức|tên_cột): đếm số bản ghi có giá trị trên
biểu thức hoặc trên cột thỏa điều kiện tìm kiếm
- MAX(biểu_thức_số), MIN (biểu_thức_số): hiển thị giá trị
lớn nhất hoặc nhỏ nhất
- AVG(biểu_thức_số): hiển thị giá trị trung bình của btsố
- SUM(bt_số): hiển thị tổng của biểu thức số
Trang 21 Lệnh hiển thị dữ liệu
Tìm kiếm với mệnh đề group by
select * | [Distinct] DS_chiếu
from tên_các_bảng | tên_các_view
[where biểu_thức_điều_kiện ]
group by DS_cột [Having ĐK_nhóm ]
- Mệnh đề Group by DS_cột tạo ra các nhóm có cùng giá trị
trên DS_cột
Trang 22 Lệnh hiển thị dữ liệu
Ví dụ tạo nhóm
Bảng SP
Select * From SP Group by S#
Trang 23 Lệnh hiển thị dữ liệu
Ví dụ tạo nhóm
Bảng SP
Select * From SP Group by P#
Select * From SP Group by 2
Trang 26 Lệnh hiển thị dữ liệu
Tìm kiếm với mệnh đề group by
- VD: Tìm số lượng cung cấp lớn nhất của từng mặt hàng
select max (QTY) from SP group by P#
Bảng SP Câu lệnh
Kết quả:
Trang 27 Lệnh hiển thị dữ liệu
Tìm kiếm với mệnh đề group by
- VD: Tìm số lượng cung cấp lớn nhất của từng mặt hàng
select P# , max (QTY) from SP group by P#
Bảng SP Câu lệnh
Kết quả:
Trang 28 Lệnh hiển thị dữ liệu
Tìm kiếm với mệnh đề group by
select * | [Distinct] DS_chiếu
from tên_các_bảng | tên_các_view
Trang 29 Lệnh hiển thị dữ liệu
Tìm kiếm với mệnh đề group by
- VD: Tìm mã các đại lý cung cấp ít nhất 2 mặt hàng khác nhau:
select S#
from SP
group by S#
having count(Distinct P#)>=2
Trang 30 Lệnh hiển thị dữ liệu
Tìm kiếm với mệnh đề group by
- VD: Tìm mã các đại lý cung cấp ít nhất 2 mặt hàng khác nhau:
select S# from SP
group by S#
having count(Distinct P#)>=2
Trang 31 Lệnh hiển thị dữ liệu
Tìm kiếm có sắp xếp
select * | [Distinct] DS_chiếu
from tên_các_bảng | tên_các_view
Trang 32 Lệnh hiển thị dữ liệu
Kết nối các bảng
select * | [Distinct] DS_chiếu
from tên_các_bảng | tên_các_view
where ĐK_kết_nối [AND biểu_thức_điều_kiện]
[group by DS_cột [Having ĐK_nhóm ]]
[order by tên_cột | biểu_thức [ASC | DESC]]
- Điều kiện kết nối theo qui tắc:
Tên_bảng1 Tên_cột_chung=Tên_bảng2.Tên_cột_chung
-Trong các phép tìm kiếm có từ 2 bảng trở lên, nếu tên
các cột (thuộc tính) là không duy nhất thì phải viết dưới
dạng Tên_bảng Tên_cột
Trang 34where S# in (Select S# from SP)
- Các mệnh đề truy vấn con phải để trong cặp ()
- VD: Tìm tên các đại lý không cung cấp mặt hàng nào?
select SName
from S
Trang 35- VD: Tăng giá mặt hàng P1 lên 10%
update P set price=1.1*Price
where P#='P1'
Trang 362.2 SQL
e2 Lệnh Delete
[where điều_kiện ]
- VD: Xóa thông tin về các lần bán mặt hàng P2
delete from SP where P#='P2'
Trang 372.2 SQL
e3 Lệnh bổ sung dữ liệu
Mệnh đề Select
f Lệnh tạo view
Create view Tên_View [( DS cột )]
AS mệnh_đề Select