SlideShare a Scribd company logo
Khoa HTTT - Đại học
CNTT 1
Bài 5: Ngôn ngữ SQL
Hành động
Khoa HTTT - Đại học CNTT 2
Nội dung
1. Giới thiệu
2. Các ngôn ngữ giao tiếp
3. Ngôn ngữ định nghĩa dữ liệu
4. Ngôn ngữ thao tác dữ liệu
5. Ngôn ngữ truy vấn dữ liệu có cấu trúc
6. Ngôn ngữ điều khiển dữ liệu
Khoa HTTT - Đại học CNTT 3
 Là ngôn ngữ chuẩn để truy vấn và thao tác trên
CSDL quan hệ
 Là ngôn ngữ phi thủ tục
 Khởi nguồn của SQL là SEQUEL - Structured
English Query Language, năm 1974)
 Các chuẩn SQL
 SQL89
 SQL92 (SQL2)
 SQL99 (SQL3)
1. Giới thiệu
Khoa HTTT - Đại học CNTT 4
2. Các ngôn ngữ giao tiếp
 Ngôn ngữ định nghĩa dữ liệu (Data Definition
Language - DDL): cho phép khai báo cấu trúc bảng,
các mối quan hệ và các ràng buộc.
 Ngôn ngữ thao tác dữ liệu (Data Manipulation
Language - DML): cho phép thêm, xóa, sửa dữ liệu.
 Ngôn ngữ truy vấn dữ liệu (Structured Query
Language – SQL): cho phép truy vấn dữ liệu.
 Ngôn ngữ điều khiển dữ liệu (Data Control
Language – DCL): khai báo bảo mật thông tin, cấp
quyền và thu hồi quyền khai thác trên cơ sở dữ liệu.
Khoa HTTT - Đại học CNTT 5
3.1 Lệnh tạo bảng (CREATE)
3.1.1 Cú pháp
3.1.2 Một số kiểu dữ liệu
3.2 Lệnh sửa cấu trúc bảng (ALTER)
3.2.1 Thêm thuộc tính
3.2.2 Sửa kiểu dữ liệu của thuộc tính
3.2.3 Xoá thuộc tính
3.2.4 Thêm ràng buộc toàn vẹn
3.2.5 Xoá ràng buộc toàn vẹn
3.3 Lệnh xóa bảng (DROP)
3. Ngôn ngữ định nghĩa dữ liệu
Khoa HTTT - Đại học CNTT 6
3.1.1 Cú pháp
CREATE TABLE <tên_bảng>
(
<tên_cột1> <kiểu_dữ_liệu> [not null],
<tên_cột2> <kiểu_dữ_liệu> [not null],
…
<tên_cột1> <kiểu_dữ_liệu> [not null],
khai báo khóa chính, khóa ngoại, ràng buộc
)
3.1 Lệnh tạo bảng
Khoa HTTT - Đại học CNTT 7
Kiểu dữ liệu SQL Server
Chuỗi ký tự varchar(n), char(n),nvarchar(n), nchar(n)
Số tinyint,smallint, int,
numeric(m,n), decimal(m,n),float, real,
smallmoney, money
Ngày tháng smalldatetime, datetime
Luận lý bit
3.1 Lệnh tạo bảng (2)
3.1.2 Một số kiểu dữ liệu
Khoa HTTT - Đại học CNTT 8
3.1 Lệnh tạo bảng (3)
Lược đồ CSDL quản lý bán hàng gồm có các quan hệ sau:
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH,
DOANHSO, NGDK, CMND)
NHANVIEN (MANV,HOTEN, NGVL, SODT)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
Khoa HTTT - Đại học CNTT 9
3.1 Lệnh tạo bảng (4)
Create table KHACHHANG
(
MAKH char(4) primary key,
HOTEN varchar(40),
DCHI varchar(50),
SODT varchar(20),
NGSINH smalldatetime,
DOANHSO money,
NGDK smalldatetime,
CMND varchar(10)
)
Khoa HTTT - Đại học CNTT 10
3.1 Lệnh tạo bảng (5)
Create table CTHD
(
SOHD int foreign key
Hreferences OADON(SOHD),
MASP char(4) foreign key
references SANPHAM(MASP),
SL int,
constraint PK_CTHD primary key (SOHD,MASP)
)
Khoa HTTT - Đại học CNTT 11
3.2.1 Thêm thuộc tính
ALTER TABLE tênbảng ADD têncột kiểudữliệu
 Ví dụ: thêm cột Ghi_chu vào bảng khách hàng
ALTER TABLE KHACHHANG ADD GHI_CHU varchar(20)
3.2.2 Sửa kiểu dữ liệu thuộc tính
ALTER TABLE tênbảng ALTER COLUMN têncột
kiểudữliệu_mới
 Lưu ý:
Không phải sửa bất kỳ kiểu dữ liệu nào cũng được
3.2 Sửa cấu trúc bảng(1)
Khoa HTTT - Đại học CNTT 12
 Ví dụ: Sửa Cột Ghi_chu thành kiểu dữ liệu varchar(50)
ALTER TABLE KHACHHANG ALTER COLUMN GHI_CHU varchar(50)
 Nếu sửa kiểu dữ liệu của cột Ghi_chu thành varchar(5), mà
trước đó đã nhập giá trị cho cột Ghi_chu có độ dài hơn 5 ký
tự thì không được phép.
 Hoặc sửa từ kiểu chuỗi ký tự sang kiểu số, …
3.2.3 Xóa thuộc tính
ALTER TABLE tên_bảng DROP COLUMN tên_cột
 Ví dụ: xóa cột Ghi_chu trong bảng KHACHHANG
ALTER TABLE KHACHHANG DROP COLUMN Ghi_chu
3.2 Sửa cấu trúc bảng(2)
Khoa HTTT - Đại học CNTT 13
3.2.4 Thêm ràng buộc toàn vẹn
ALTER TABLE <tên_bảng>
ADD CONSTRAINT
<tên_ràng_buộc>
UNIQUE tên_cột
PRIMARY KEY (tên_cột)
FOREIGN KEY (tên_cột)
REFERENCES tên_bảng
(cột_là_khóa_chính) [ON
DELETE CASCADE] [ON
UPDATE CASCADE]
CHECK (tên_cột điều_kiện)
3.2 Sửa cấu trúc bảng(3)
Khoa HTTT - Đại học CNTT 14
 Ví dụ
 ALTER TABLE NHANVIEN ADD CONSTRAINT PK_NV
PRIMARY KEY (MANV)
 ALTER TABLE CTHD ADD CONSTRAINT FK_CT_SP
FOREIGN KEY (MASP) REFERENCES
SANPHAM(MASP)
 ALTER TABLE SANPHAM ADD CONSTRAINT
CK_GIA CHECK (GIA >=500)
 ALTER TABLE KHACHHANG ADD CONSTRAINT
UQ_KH UNIQUE (CMND)
3.2 Sửa cấu trúc bảng(4)
Khoa HTTT - Đại học CNTT 15
3.2.5 Xóa ràng buộc toàn vẹn
ALTER TABLE tên_bảng DROP CONSTRAINT
tên_ràng_buộc
 Ví dụ:
 Alter table CTHD drop constraint FK_CT_SP
 Alter table SANPHAM drop constraint ck_gia
 Lưu ý: đối với ràng buộc khóa chính, muốn xóa
ràng buộc này phải xóa hết các ràng buộc khóa
ngoại tham chiếu tới nó
3.2 Sửa cấu trúc bảng(5)
Khoa HTTT - Đại học CNTT 16
 Cú pháp
DROP TABLE tên_bảng
 Ví dụ: xóa bảng KHACHHANG.
DROP TABLE KHACHHANG
 Lưu ý: khi muốn xóa một bảng phải xóa tất
cả những khóa ngoại tham chiếu tới bảng đó
trước.
3.3 Lệnh xóa bảng
Khoa HTTT - Đại học CNTT 17
 Gồm các lệnh:
4.1 Lệnh thêm dữ liệu (INSERT)
4.2 Lệnh sửa dữ liệu (UPDATE)
4.3 Lệnh xóa dữ liệu (DELETE)
4. Ngôn ngữ thao tác dữ liệu
Khoa HTTT - Đại học CNTT 18
 Cú pháp
INSERT INTO tên_bảng (cột1,…,cộtn) VALUES
(giá_trị_1,…., giá_trị_n)
INSERT INTO tên_bảng VALUES (giá_trị_1, giá_trị_2,
…, giá_trị_n)
 Ví dụ:
 insert into SANPHAM values('BC01','But chi', 'cay',
'Singapore', 3000)
 insert into SANPHAM(masp,tensp,dvt,nuocsx,gia)
values ('BC01','But chi','cay','Singapore',3000)
4.1 Thêm dữ liệu
Khoa HTTT - Đại học CNTT 19
 Cú pháp
UPDATE tên_bảng
SET cột_1 = giá_trị_1, cột_2 = giá_trị_2 ….
[WHERE điều_kiện]
 Lưu ý: cẩn thận với các lệnh xóa và sửa, nếu không
có điều kiện ở WHERE nghĩa là xóa hoặc sửa tất cả.
 Ví dụ: Tăng giá 10% đối với những sản phẩm do
“Trung Quoc” sản xuất
UPDATE SANPHAM
SET Gia = Gia*1.1
WHERE Nuocsx=‘Trung Quoc’
4.2 Sửa dữ liệu
Khoa HTTT - Đại học CNTT 20
4.3 Xóa dữ liệu
 Cú pháp
DELETE FROM tên_bảng [WHERE điều_kiện]
 Ví dụ:
 Xóa toàn bộ nhân viên
DELETE FROM NHANVIEN
 Xóa những sản phẩm do Trung Quốc sản xuất có giá
thấp hơn 10000
DELETE FROM SANPHAM
WHERE (Gia <10000) and (Nuocsx=‘Trung Quoc’)
Khoa HTTT - Đại học CNTT 21
5. Ngôn ngữ truy vấn dữ liệu có
cấu trúc
5.1 Câu truy vấn tổng quát
5.2 Truy vấn đơn giản
5.3 Phép kết
5.4 Đặt bí danh, sử dụng *, distinct
5.5 Các toán tử
5.6 Câu truy vấn con (subquery)
5.7 Phép chia
5.8 Hàm tính toán, gom nhóm
Khoa HTTT - Đại học CNTT 22
SELECT [DISTINCT] *|tên_cột | hàm
FROM bảng
[WHERE điều_kiện]
[GROUP BY tên_cột]
[HAVING điều_kiện]
[ORDER BY tên_cột ASC | DESC]
5.1Câu truy vấn tổng quát
Khoa HTTT - Đại học CNTT 23
5.2 Truy vấn đơn giản(1)
 SELECT
 Tương đương phép chiếu của ĐSQH
 Liệt kê các thuộc tính cần hiển thị trong kết quả
 WHERE
 Tương ứng với điều kiện chọn trong ĐSQH
 Điều kiện liên quan tới thuộc tính, sử dụng các phép nối
luận lý AND, OR, NOT, các phép toán so sánh,
BETWEEN
 FROM
 Liệt kê các quan hệ cần thiết, các phép kết
Khoa HTTT - Đại học CNTT 24
5.2 Truy vấn đơn giản(2)
 Tìm masp, tensp do “Trung Quoc” sản xuất
có giá từ 20000 đến 30000
Select masp,tensp
From SANPHAM
Where nuocsx=‘Trung Quoc’
and gia between 20000 and 30000
Khoa HTTT - Đại học CNTT 25
5.3 Phép kết(1)
 Inner Join, Left Join, Right Join, Full Join
 Ví dụ:
 In ra danh sách các khách hàng (MAKH,
HOTEN) đã mua hàng trong ngày 1/1/2007.
select KHACHHANG.makh,hoten
from KHACHHANG inner join HOADON on
KHACHHANG.makh=HOADON.makh
where nghd='1/1/2007'
Khoa HTTT - Đại học CNTT 26
5.3 Phép kết (2)
 Ví dụ: In ra danh sách tất cả các hóa đơn và họ tên
của khách hàng mua hóa đơn đó (nếu có)
 Select sohd, hoten
From HOADON left join KHACHHANG on
HOADON.makh=KHACHHANG.makh
 Select sohd, hoten
From HOADON ,KHACHHANG
where HOADON.makh*=KHACHHANG.makh
Khoa HTTT - Đại học CNTT 27
5.4 Đặt bí danh, sử dụng *, distinct
 Đặt bí danh – Alias: cho thuộc tính và quan hệ:
tên_cũ AS tên_mới
 Select manv,hoten as [ho va ten] From NHANVIEN
 Liệt kê tất cả các thuộc tính của quan hệ:
 Select * from Nhanvien
 Select NHANVIEN.* from NHANVIEN
 Distinct: trùng chỉ lấy một lần
 Select distinct nuocsx from SANPHAM
 Sắp xếp kết quả hiển thị: Order by
 Select * from SANPHAM order by nuocsx, gia DESC
Khoa HTTT - Đại học CNTT 28
5.5 Toán tử truy vấn(1)
 Toán tử so sánh: =, >,<,>=,<=,<>
 Toán tử logic: AND, OR, NOT
 Phép toán: +, - ,* , /
 BETWEEN …. AND
 IS NULL, IS NOT NULL
 LIKE (_ %)
 IN, NOT IN
 EXISTS , NOT EXISTS
 SOME, ALL
Khoa HTTT - Đại học CNTT 29
5.5 Toán tử truy vấn(2)
 IS NULL, IS NOT NULL
 Select sohd from HOADON where makh is Null
 Select * from HOADON where makh is Not Null
 Toán tử so sánh, phép toán
 Select gia*1.1 as [gia ban] from SANPHAM where
nuocsx<>’Viet Nam’
 Select * from SANPHAM where (gia between 20000 and
30000) OR (nuocsx=‘Viet Nam’)
 Toán tử IN, NOT IN
 Select * from SANPHAM where masp NOT IN
(‘BB01’,’BB02’,’BB03’)
Khoa HTTT - Đại học CNTT 30
Toán tử LIKE
 So sánh chuỗi tương đối
 Cú pháp: s LIKE p, p có thể chứa % hoặc _
 % : thay thế một chuỗi ký tự bất kỳ
 _ : thay thế một ký tự bất kỳ
 Ví dụ: Select masp,tensp from SANPHAM
where masp like 'B%01‘
5.5 Toán tử so sánh(3)
Khoa HTTT - Đại học CNTT 31
5.6 Câu truy vấn con (1)
In hoặc Exists
 Ví dụ: Tìm các số hóa đơn mua cùng lúc 2 sản phẩm
có mã số “BB01” và “BB02”.
 select distinct sohd
from CTHD where masp='BB01' and sohd IN
(select distinct sohd from CTHD where masp='BB02')
 select distinct A.sohd
from CTHD A where A.masp='BB01' and
EXISTS (select * from CTHD B
where B.masp='BB02‘ and A.sohd=B.sohd)
Khoa HTTT - Đại học CNTT 32
5.6 Câu truy vấn con (2)
Not In hoặc Not Exists
 Ví dụ: Tìm các số hóa đơn có mua sản phẩm mã số
‘BB01’ nhưng không mua sản phẩm mã số ‘BB02’.
 select distinct sohd
from CTHD where masp='BB01' and sohd NOT IN
(select distinct sohd from CTHD where masp='BB02')
 select distinct A.sohd
from CTHD A where A.masp='BB01' and
NOT EXists (select * from CTHD B
where B.masp='BB02‘ and A.sohd=B.sohd)
Khoa HTTT - Đại học CNTT 33
5.7 Phép chia
Sử dụng NOT EXISTS
 Ví dụ: Tìm số hóa đơn đã mua tất cả những sản
phẩm do “Trung Quoc” sản xuất.
 Select sohd from HOADON where not exists
(select * from SANPHAM
where nuocsx=‘Trung Quoc’ and not exists
(select * from CTHD where
HOADON.sohd=CTHD.sohd and
CTHD.masp=SANPHAM.masp))
Khoa HTTT - Đại học CNTT 34
5.8.1 Các hàm tính toán cơ bản
 COUNT: Đếm số bộ dữ liệu của thuộc tính
 MIN: Tính giá trị nhỏ nhất
 MAX: Tính giá trị lớn nhất
 AVG: Tính giá trị trung bình
 SUM: Tính tổng giá trị các bộ dữ liệu
5.8 Các hàm tính toán và gom
nhóm (1)
Khoa HTTT - Đại học CNTT 35
NHANVIEN
MANV HOTEN PHAI MANQL PHONG LUONG
NV001 Nguyễn Ngọc Linh Nữ Null NC 2.800.000
NV002 Đinh Bá Tiến Nam NV002 DH 2.000.000
NV003 Nguyễn Văn Mạnh Nam NV001 NC 2.300.000
NV004 Trần Thanh Long Nam NV002 DH 1.800.000
NV005 Nguyễn Thị Hồng Vân Nữ NV001 NC 2.500.000
NV006 Nguyễn Minh Nam NV002 DH 2.000.000
NV007 Hà Duy Lập Nam NV003 NC 1.800.000
NV008 Trần Kim Duyên Nữ NV003 NC 1.800.000
NV009 Nguyễn Kim Anh Nữ NV003 NC 2.000.000
Khoa HTTT - Đại học CNTT 36
Ví dụ
1. Tính lương thấp nhất, cao nhất, trung bình và tổng
lương của tất cả các nhân viên.
2. Có tất cả bao nhiêu nhân viên
3. Bao nhiêu nhân viên có người quản lý
4. Bao nhiêu phòng ban có nhân viên trực thuộc
5. Tính lương trung bình của các nhân viên
6. Tính lương trung bình của các nhân viên theo
từng phòng ban
Khoa HTTT - Đại học CNTT 37
1. Tính lương thấp nhất, cao nhất, trung bình
và tổng lương của tất cả các nhân viên.
SELECT min(luong) as thapnhat,
max(luong) as caonhat,
avg(luong) as trungbinh,
sum(luong) as tongluong
FROM NhanVien
Khoa HTTT - Đại học CNTT 38
2. Có tất cả bao nhiêu nhân viên
SELECT count(*) FROM NhanVien
3. Bao nhiêu nhân viên có người quản lý
 Select count(*) FROM NhanVien WHERE manql is not null
 SELECT count(Manql) FROM NhanVien
4. Bao nhiêu phòng ban có nhân viên trực thuộc
SELECT count(distinct phong) FROM NhanVien
Khoa HTTT - Đại học CNTT 39
5.8 Các hàm tính toán và gom
nhóm (2)
5.8.2 Gom nhóm: mệnh đề GROUP BY
 Sử dụng hàm gom nhóm trên các bộ trong quan hệ.
 Mỗi nhóm bộ bao 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
 Hàm gom nhóm áp dụng trên mỗi bộ độc lập nhau.
 SQL có mệnh đề GROUP BY để chỉ ra các thuộc tính
gom nhóm, các thuộc tính này phải xuất hiện trong mệnh
đề SELECT
Khoa HTTT - Đại học CNTT 40
5. Tính lương trung bình của các nhân viên
SELECT avg(LUONG) as LUONGTB
FROM NhanVien
6. Tính lương trung bình của các nhân viên theo từng
phòng ban.
SELECT phong, avg(LUONG) as LUONGTB
FROM NhanVien
GROUP BY phong
Khoa HTTT - Đại học CNTT 41
5.8 Các hàm tính toán và gom
nhóm (3)
5.8.3 Điều kiện sau gom nhóm: mệnh đề HAVING
 Lọc kết quả theo điều kiện, sau khi đã gom nhóm
 Điều kiện ở HAVING được thực hiện sau khi gom nhóm,
các điều kiện có liên quan đến thuộc tính Group By
 Ví dụ: tìm phòng có số lượng nhân viên “Nữ” trên 5 người
SELECT phong
FROM NhanVien
WHERE phai = ‘Nữ’
GROUP BY phong
HAVING count(manv) > 5

More Related Content

PPT
csdl - buoi5-6
PPT
csdl - buoi13-14
PPT
csdl - buoi2-3-4
PPT
PDF
Lý thuyết thiết kế CSDL
PPT
Phụ thuộc hàm và dạng chuẩn 1
PPT
Nguyen dangkhoa.a.115
PPT
C3 2 (tuan6,7)
csdl - buoi5-6
csdl - buoi13-14
csdl - buoi2-3-4
Lý thuyết thiết kế CSDL
Phụ thuộc hàm và dạng chuẩn 1
Nguyen dangkhoa.a.115
C3 2 (tuan6,7)

What's hot (20)

PPT
Thiet Ke Co So Du Lieu1
PPT
PDF
Excel 2007 bai 2-1
PDF
Cơ sở dữ liệu PTIT đại số quan hệ
DOCX
Thiet kecsdl
PDF
Database csdl
PPT
Bai giang cong thuc excel
PDF
[123doc] mo-hinh-thuc-the-moi-ket-hop
PDF
Luận án: Phát hiện phụ thuộc hàm suy rộng trong cơ sở dữ liệu
PDF
Luận án tiến sĩ toán học các phụ thuộc logic trong mô hình dữ liệu dạng khối
PPTX
Giao an tin hoc 11
PDF
Đề tài: Phương pháp giải toán trắc nghiệm phần sự biến thiên của hàm số
PPT
New microsoft power point presentation
PPT
Dien Tu So BHIU
PDF
Chuong4 hambool
PDF
đạI số boole
PPTX
CLB Internet - iShare: Ky nang Excel cho moi nguoi - 240615
PDF
Bao cao-excel-2010
PDF
Luận văn: Ứng dụng của phương trình sai phân, HAY, 9đ
PPTX
Dự đoán liên kết trong đồ thị tri thức
Thiet Ke Co So Du Lieu1
Excel 2007 bai 2-1
Cơ sở dữ liệu PTIT đại số quan hệ
Thiet kecsdl
Database csdl
Bai giang cong thuc excel
[123doc] mo-hinh-thuc-the-moi-ket-hop
Luận án: Phát hiện phụ thuộc hàm suy rộng trong cơ sở dữ liệu
Luận án tiến sĩ toán học các phụ thuộc logic trong mô hình dữ liệu dạng khối
Giao an tin hoc 11
Đề tài: Phương pháp giải toán trắc nghiệm phần sự biến thiên của hàm số
New microsoft power point presentation
Dien Tu So BHIU
Chuong4 hambool
đạI số boole
CLB Internet - iShare: Ky nang Excel cho moi nguoi - 240615
Bao cao-excel-2010
Luận văn: Ứng dụng của phương trình sai phân, HAY, 9đ
Dự đoán liên kết trong đồ thị tri thức
Ad

Similar to csdl - buoi7-8-9 (20)

PPT
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3
PDF
b34-dml-sql-190213084703.pdf
PPT
Thiet Ke Co So Du Lieu2
PDF
UEB Chuong 3.SV hoc di hoc di hoc di di di
PDF
Co So du lieu chuong 4 truong Dai Hoc hcm
PPTX
Cơ sở dữ liệu SQL qua các vi du cu the.pptx
PDF
Sql understanding
PDF
csdl bai-thuchanh_02
PDF
PDF
Chuong 4 - SQL - University of Information Technology.pdf
PDF
Com201 slide 4
PDF
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
PPTX
ORACLE_ch2_SQL.pptx
PPTX
Cơ sở dữ liệu postgres
PPT
02 access
PDF
Cau lenh truy_van_sql
PDF
Cau lenh truy_van_sql
 
PDF
Cau lenh truy_van_sql
PDF
B2 - DDL - HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU - DVG
PPSX
OVERVIEW ABOUT MS SQL SERVER FOR BEGINNING
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3
b34-dml-sql-190213084703.pdf
Thiet Ke Co So Du Lieu2
UEB Chuong 3.SV hoc di hoc di hoc di di di
Co So du lieu chuong 4 truong Dai Hoc hcm
Cơ sở dữ liệu SQL qua các vi du cu the.pptx
Sql understanding
csdl bai-thuchanh_02
Chuong 4 - SQL - University of Information Technology.pdf
Com201 slide 4
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
ORACLE_ch2_SQL.pptx
Cơ sở dữ liệu postgres
02 access
Cau lenh truy_van_sql
Cau lenh truy_van_sql
 
Cau lenh truy_van_sql
B2 - DDL - HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU - DVG
OVERVIEW ABOUT MS SQL SERVER FOR BEGINNING
Ad

More from kikihoho (20)

PDF
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
PPT
chuong 5. do thi (phan 1)
PPTX
chuong 4. dai so boole
PPT
chuong 3. quan he
PPTX
chuong 2. phep dem
PPTX
chuong 1. co so logic
PDF
Đề thi 03
PDF
Đề thi 02
DOC
14 đề thi thực hành
PPT
Cây nhị phân tìm kiếm
PDF
Cây và cây nhị phân
PDF
ctdl&amp;gt 05-list_kep
PDF
ctdl&amp;gt 04-list_don
PPT
Cấu trúc dữ liệu động
PDF
Tìm kiếm và sắp nội
PDF
CTDL&GT_01
PDF
csdl-trigger
PDF
csdl bai-thuchanh_01
PPT
csdl - buoi10-11-12
PPT
csdl - buoi1
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
chuong 5. do thi (phan 1)
chuong 4. dai so boole
chuong 3. quan he
chuong 2. phep dem
chuong 1. co so logic
Đề thi 03
Đề thi 02
14 đề thi thực hành
Cây nhị phân tìm kiếm
Cây và cây nhị phân
ctdl&amp;gt 05-list_kep
ctdl&amp;gt 04-list_don
Cấu trúc dữ liệu động
Tìm kiếm và sắp nội
CTDL&GT_01
csdl-trigger
csdl bai-thuchanh_01
csdl - buoi10-11-12
csdl - buoi1

Recently uploaded (20)

PPTX
Flashcard giải pháp đơn giản – trực quan – hiệu quả, giúp học từ vựng theo t...
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PPTX
TIẾT 11. BÀI 32 DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
PDF
BÀI HỌC ÔN TẬP CHO THI NỘI DUNG MÔN HOẠCH ĐỊNH
PDF
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
PPTX
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
PPTX
White and Purple Modern Artificial Intelligence Presentation.pptx
PDF
Bản phân loại thực vật môn thực vật dược
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PPTX
17. ĐẠI CƯƠNG GÃY XƯƠNG bệnh học ngoại.pptx
PDF
BÁO CÁO THỰC TẬP KỸ SƯ 2 ĐỀ TÀI TÌM HIỂU QUY TRÌNH CÔNG NGHỆ SẢN XUẤT BÁNH SN...
DOCX
6.CQ_KT_Ke toan tai chinh 2_Pham Thi Phuong Thao.docx
PPTX
14. thoát vị bẹn nghẹt bệnh học ngoại khoa.pptx
PDF
bai thao luan triet hoc mac lennin hayyy
PDF
GIẢI PHÁP NÂNG CAO CÔNG TÁC CHỦ NHIỆM QUA CÁC TIẾT SINH HOẠT THEO CHỦ ĐỀ NHẰ...
PDF
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
PPTX
b44_nhiem_zf_tinhjjjjjjjjjjjjjjjjjj.pptx
PPTX
Bai 44 Thuyet dong hoc phan tu chat khi Cau tao chat .pptx
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 12 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PPTX
2. tràn khí màng phổi bệnh học nộii.pptx
Flashcard giải pháp đơn giản – trực quan – hiệu quả, giúp học từ vựng theo t...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
TIẾT 11. BÀI 32 DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
BÀI HỌC ÔN TẬP CHO THI NỘI DUNG MÔN HOẠCH ĐỊNH
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
White and Purple Modern Artificial Intelligence Presentation.pptx
Bản phân loại thực vật môn thực vật dược
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
17. ĐẠI CƯƠNG GÃY XƯƠNG bệnh học ngoại.pptx
BÁO CÁO THỰC TẬP KỸ SƯ 2 ĐỀ TÀI TÌM HIỂU QUY TRÌNH CÔNG NGHỆ SẢN XUẤT BÁNH SN...
6.CQ_KT_Ke toan tai chinh 2_Pham Thi Phuong Thao.docx
14. thoát vị bẹn nghẹt bệnh học ngoại khoa.pptx
bai thao luan triet hoc mac lennin hayyy
GIẢI PHÁP NÂNG CAO CÔNG TÁC CHỦ NHIỆM QUA CÁC TIẾT SINH HOẠT THEO CHỦ ĐỀ NHẰ...
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
b44_nhiem_zf_tinhjjjjjjjjjjjjjjjjjj.pptx
Bai 44 Thuyet dong hoc phan tu chat khi Cau tao chat .pptx
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 12 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
2. tràn khí màng phổi bệnh học nộii.pptx

csdl - buoi7-8-9

  • 1. Khoa HTTT - Đại học CNTT 1 Bài 5: Ngôn ngữ SQL Hành động
  • 2. Khoa HTTT - Đại học CNTT 2 Nội dung 1. Giới thiệu 2. Các ngôn ngữ giao tiếp 3. Ngôn ngữ định nghĩa dữ liệu 4. Ngôn ngữ thao tác dữ liệu 5. Ngôn ngữ truy vấn dữ liệu có cấu trúc 6. Ngôn ngữ điều khiển dữ liệu
  • 3. Khoa HTTT - Đại học CNTT 3  Là ngôn ngữ chuẩn để truy vấn và thao tác trên CSDL quan hệ  Là ngôn ngữ phi thủ tục  Khởi nguồn của SQL là SEQUEL - Structured English Query Language, năm 1974)  Các chuẩn SQL  SQL89  SQL92 (SQL2)  SQL99 (SQL3) 1. Giới thiệu
  • 4. Khoa HTTT - Đại học CNTT 4 2. Các ngôn ngữ giao tiếp  Ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL): cho phép khai báo cấu trúc bảng, các mối quan hệ và các ràng buộc.  Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML): cho phép thêm, xóa, sửa dữ liệu.  Ngôn ngữ truy vấn dữ liệu (Structured Query Language – SQL): cho phép truy vấn dữ liệu.  Ngôn ngữ điều khiển dữ liệu (Data Control Language – DCL): khai báo bảo mật thông tin, cấp quyền và thu hồi quyền khai thác trên cơ sở dữ liệu.
  • 5. Khoa HTTT - Đại học CNTT 5 3.1 Lệnh tạo bảng (CREATE) 3.1.1 Cú pháp 3.1.2 Một số kiểu dữ liệu 3.2 Lệnh sửa cấu trúc bảng (ALTER) 3.2.1 Thêm thuộc tính 3.2.2 Sửa kiểu dữ liệu của thuộc tính 3.2.3 Xoá thuộc tính 3.2.4 Thêm ràng buộc toàn vẹn 3.2.5 Xoá ràng buộc toàn vẹn 3.3 Lệnh xóa bảng (DROP) 3. Ngôn ngữ định nghĩa dữ liệu
  • 6. Khoa HTTT - Đại học CNTT 6 3.1.1 Cú pháp CREATE TABLE <tên_bảng> ( <tên_cột1> <kiểu_dữ_liệu> [not null], <tên_cột2> <kiểu_dữ_liệu> [not null], … <tên_cột1> <kiểu_dữ_liệu> [not null], khai báo khóa chính, khóa ngoại, ràng buộc ) 3.1 Lệnh tạo bảng
  • 7. Khoa HTTT - Đại học CNTT 7 Kiểu dữ liệu SQL Server Chuỗi ký tự varchar(n), char(n),nvarchar(n), nchar(n) Số tinyint,smallint, int, numeric(m,n), decimal(m,n),float, real, smallmoney, money Ngày tháng smalldatetime, datetime Luận lý bit 3.1 Lệnh tạo bảng (2) 3.1.2 Một số kiểu dữ liệu
  • 8. Khoa HTTT - Đại học CNTT 8 3.1 Lệnh tạo bảng (3) Lược đồ CSDL quản lý bán hàng gồm có các quan hệ sau: KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK, CMND) NHANVIEN (MANV,HOTEN, NGVL, SODT) SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA) HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) CTHD (SOHD,MASP,SL)
  • 9. Khoa HTTT - Đại học CNTT 9 3.1 Lệnh tạo bảng (4) Create table KHACHHANG ( MAKH char(4) primary key, HOTEN varchar(40), DCHI varchar(50), SODT varchar(20), NGSINH smalldatetime, DOANHSO money, NGDK smalldatetime, CMND varchar(10) )
  • 10. Khoa HTTT - Đại học CNTT 10 3.1 Lệnh tạo bảng (5) Create table CTHD ( SOHD int foreign key Hreferences OADON(SOHD), MASP char(4) foreign key references SANPHAM(MASP), SL int, constraint PK_CTHD primary key (SOHD,MASP) )
  • 11. Khoa HTTT - Đại học CNTT 11 3.2.1 Thêm thuộc tính ALTER TABLE tênbảng ADD têncột kiểudữliệu  Ví dụ: thêm cột Ghi_chu vào bảng khách hàng ALTER TABLE KHACHHANG ADD GHI_CHU varchar(20) 3.2.2 Sửa kiểu dữ liệu thuộc tính ALTER TABLE tênbảng ALTER COLUMN têncột kiểudữliệu_mới  Lưu ý: Không phải sửa bất kỳ kiểu dữ liệu nào cũng được 3.2 Sửa cấu trúc bảng(1)
  • 12. Khoa HTTT - Đại học CNTT 12  Ví dụ: Sửa Cột Ghi_chu thành kiểu dữ liệu varchar(50) ALTER TABLE KHACHHANG ALTER COLUMN GHI_CHU varchar(50)  Nếu sửa kiểu dữ liệu của cột Ghi_chu thành varchar(5), mà trước đó đã nhập giá trị cho cột Ghi_chu có độ dài hơn 5 ký tự thì không được phép.  Hoặc sửa từ kiểu chuỗi ký tự sang kiểu số, … 3.2.3 Xóa thuộc tính ALTER TABLE tên_bảng DROP COLUMN tên_cột  Ví dụ: xóa cột Ghi_chu trong bảng KHACHHANG ALTER TABLE KHACHHANG DROP COLUMN Ghi_chu 3.2 Sửa cấu trúc bảng(2)
  • 13. Khoa HTTT - Đại học CNTT 13 3.2.4 Thêm ràng buộc toàn vẹn ALTER TABLE <tên_bảng> ADD CONSTRAINT <tên_ràng_buộc> UNIQUE tên_cột PRIMARY KEY (tên_cột) FOREIGN KEY (tên_cột) REFERENCES tên_bảng (cột_là_khóa_chính) [ON DELETE CASCADE] [ON UPDATE CASCADE] CHECK (tên_cột điều_kiện) 3.2 Sửa cấu trúc bảng(3)
  • 14. Khoa HTTT - Đại học CNTT 14  Ví dụ  ALTER TABLE NHANVIEN ADD CONSTRAINT PK_NV PRIMARY KEY (MANV)  ALTER TABLE CTHD ADD CONSTRAINT FK_CT_SP FOREIGN KEY (MASP) REFERENCES SANPHAM(MASP)  ALTER TABLE SANPHAM ADD CONSTRAINT CK_GIA CHECK (GIA >=500)  ALTER TABLE KHACHHANG ADD CONSTRAINT UQ_KH UNIQUE (CMND) 3.2 Sửa cấu trúc bảng(4)
  • 15. Khoa HTTT - Đại học CNTT 15 3.2.5 Xóa ràng buộc toàn vẹn ALTER TABLE tên_bảng DROP CONSTRAINT tên_ràng_buộc  Ví dụ:  Alter table CTHD drop constraint FK_CT_SP  Alter table SANPHAM drop constraint ck_gia  Lưu ý: đối với ràng buộc khóa chính, muốn xóa ràng buộc này phải xóa hết các ràng buộc khóa ngoại tham chiếu tới nó 3.2 Sửa cấu trúc bảng(5)
  • 16. Khoa HTTT - Đại học CNTT 16  Cú pháp DROP TABLE tên_bảng  Ví dụ: xóa bảng KHACHHANG. DROP TABLE KHACHHANG  Lưu ý: khi muốn xóa một bảng phải xóa tất cả những khóa ngoại tham chiếu tới bảng đó trước. 3.3 Lệnh xóa bảng
  • 17. Khoa HTTT - Đại học CNTT 17  Gồm các lệnh: 4.1 Lệnh thêm dữ liệu (INSERT) 4.2 Lệnh sửa dữ liệu (UPDATE) 4.3 Lệnh xóa dữ liệu (DELETE) 4. Ngôn ngữ thao tác dữ liệu
  • 18. Khoa HTTT - Đại học CNTT 18  Cú pháp INSERT INTO tên_bảng (cột1,…,cộtn) VALUES (giá_trị_1,…., giá_trị_n) INSERT INTO tên_bảng VALUES (giá_trị_1, giá_trị_2, …, giá_trị_n)  Ví dụ:  insert into SANPHAM values('BC01','But chi', 'cay', 'Singapore', 3000)  insert into SANPHAM(masp,tensp,dvt,nuocsx,gia) values ('BC01','But chi','cay','Singapore',3000) 4.1 Thêm dữ liệu
  • 19. Khoa HTTT - Đại học CNTT 19  Cú pháp UPDATE tên_bảng SET cột_1 = giá_trị_1, cột_2 = giá_trị_2 …. [WHERE điều_kiện]  Lưu ý: cẩn thận với các lệnh xóa và sửa, nếu không có điều kiện ở WHERE nghĩa là xóa hoặc sửa tất cả.  Ví dụ: Tăng giá 10% đối với những sản phẩm do “Trung Quoc” sản xuất UPDATE SANPHAM SET Gia = Gia*1.1 WHERE Nuocsx=‘Trung Quoc’ 4.2 Sửa dữ liệu
  • 20. Khoa HTTT - Đại học CNTT 20 4.3 Xóa dữ liệu  Cú pháp DELETE FROM tên_bảng [WHERE điều_kiện]  Ví dụ:  Xóa toàn bộ nhân viên DELETE FROM NHANVIEN  Xóa những sản phẩm do Trung Quốc sản xuất có giá thấp hơn 10000 DELETE FROM SANPHAM WHERE (Gia <10000) and (Nuocsx=‘Trung Quoc’)
  • 21. Khoa HTTT - Đại học CNTT 21 5. Ngôn ngữ truy vấn dữ liệu có cấu trúc 5.1 Câu truy vấn tổng quát 5.2 Truy vấn đơn giản 5.3 Phép kết 5.4 Đặt bí danh, sử dụng *, distinct 5.5 Các toán tử 5.6 Câu truy vấn con (subquery) 5.7 Phép chia 5.8 Hàm tính toán, gom nhóm
  • 22. Khoa HTTT - Đại học CNTT 22 SELECT [DISTINCT] *|tên_cột | hàm FROM bảng [WHERE điều_kiện] [GROUP BY tên_cột] [HAVING điều_kiện] [ORDER BY tên_cột ASC | DESC] 5.1Câu truy vấn tổng quát
  • 23. Khoa HTTT - Đại học CNTT 23 5.2 Truy vấn đơn giản(1)  SELECT  Tương đương phép chiếu của ĐSQH  Liệt kê các thuộc tính cần hiển thị trong kết quả  WHERE  Tương ứng với điều kiện chọn trong ĐSQH  Điều kiện liên quan tới thuộc tính, sử dụng các phép nối luận lý AND, OR, NOT, các phép toán so sánh, BETWEEN  FROM  Liệt kê các quan hệ cần thiết, các phép kết
  • 24. Khoa HTTT - Đại học CNTT 24 5.2 Truy vấn đơn giản(2)  Tìm masp, tensp do “Trung Quoc” sản xuất có giá từ 20000 đến 30000 Select masp,tensp From SANPHAM Where nuocsx=‘Trung Quoc’ and gia between 20000 and 30000
  • 25. Khoa HTTT - Đại học CNTT 25 5.3 Phép kết(1)  Inner Join, Left Join, Right Join, Full Join  Ví dụ:  In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007. select KHACHHANG.makh,hoten from KHACHHANG inner join HOADON on KHACHHANG.makh=HOADON.makh where nghd='1/1/2007'
  • 26. Khoa HTTT - Đại học CNTT 26 5.3 Phép kết (2)  Ví dụ: In ra danh sách tất cả các hóa đơn và họ tên của khách hàng mua hóa đơn đó (nếu có)  Select sohd, hoten From HOADON left join KHACHHANG on HOADON.makh=KHACHHANG.makh  Select sohd, hoten From HOADON ,KHACHHANG where HOADON.makh*=KHACHHANG.makh
  • 27. Khoa HTTT - Đại học CNTT 27 5.4 Đặt bí danh, sử dụng *, distinct  Đặt bí danh – Alias: cho thuộc tính và quan hệ: tên_cũ AS tên_mới  Select manv,hoten as [ho va ten] From NHANVIEN  Liệt kê tất cả các thuộc tính của quan hệ:  Select * from Nhanvien  Select NHANVIEN.* from NHANVIEN  Distinct: trùng chỉ lấy một lần  Select distinct nuocsx from SANPHAM  Sắp xếp kết quả hiển thị: Order by  Select * from SANPHAM order by nuocsx, gia DESC
  • 28. Khoa HTTT - Đại học CNTT 28 5.5 Toán tử truy vấn(1)  Toán tử so sánh: =, >,<,>=,<=,<>  Toán tử logic: AND, OR, NOT  Phép toán: +, - ,* , /  BETWEEN …. AND  IS NULL, IS NOT NULL  LIKE (_ %)  IN, NOT IN  EXISTS , NOT EXISTS  SOME, ALL
  • 29. Khoa HTTT - Đại học CNTT 29 5.5 Toán tử truy vấn(2)  IS NULL, IS NOT NULL  Select sohd from HOADON where makh is Null  Select * from HOADON where makh is Not Null  Toán tử so sánh, phép toán  Select gia*1.1 as [gia ban] from SANPHAM where nuocsx<>’Viet Nam’  Select * from SANPHAM where (gia between 20000 and 30000) OR (nuocsx=‘Viet Nam’)  Toán tử IN, NOT IN  Select * from SANPHAM where masp NOT IN (‘BB01’,’BB02’,’BB03’)
  • 30. Khoa HTTT - Đại học CNTT 30 Toán tử LIKE  So sánh chuỗi tương đối  Cú pháp: s LIKE p, p có thể chứa % hoặc _  % : thay thế một chuỗi ký tự bất kỳ  _ : thay thế một ký tự bất kỳ  Ví dụ: Select masp,tensp from SANPHAM where masp like 'B%01‘ 5.5 Toán tử so sánh(3)
  • 31. Khoa HTTT - Đại học CNTT 31 5.6 Câu truy vấn con (1) In hoặc Exists  Ví dụ: Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số “BB01” và “BB02”.  select distinct sohd from CTHD where masp='BB01' and sohd IN (select distinct sohd from CTHD where masp='BB02')  select distinct A.sohd from CTHD A where A.masp='BB01' and EXISTS (select * from CTHD B where B.masp='BB02‘ and A.sohd=B.sohd)
  • 32. Khoa HTTT - Đại học CNTT 32 5.6 Câu truy vấn con (2) Not In hoặc Not Exists  Ví dụ: Tìm các số hóa đơn có mua sản phẩm mã số ‘BB01’ nhưng không mua sản phẩm mã số ‘BB02’.  select distinct sohd from CTHD where masp='BB01' and sohd NOT IN (select distinct sohd from CTHD where masp='BB02')  select distinct A.sohd from CTHD A where A.masp='BB01' and NOT EXists (select * from CTHD B where B.masp='BB02‘ and A.sohd=B.sohd)
  • 33. Khoa HTTT - Đại học CNTT 33 5.7 Phép chia Sử dụng NOT EXISTS  Ví dụ: Tìm số hóa đơn đã mua tất cả những sản phẩm do “Trung Quoc” sản xuất.  Select sohd from HOADON where not exists (select * from SANPHAM where nuocsx=‘Trung Quoc’ and not exists (select * from CTHD where HOADON.sohd=CTHD.sohd and CTHD.masp=SANPHAM.masp))
  • 34. Khoa HTTT - Đại học CNTT 34 5.8.1 Các hàm tính toán cơ bản  COUNT: Đếm số bộ dữ liệu của thuộc tính  MIN: Tính giá trị nhỏ nhất  MAX: Tính giá trị lớn nhất  AVG: Tính giá trị trung bình  SUM: Tính tổng giá trị các bộ dữ liệu 5.8 Các hàm tính toán và gom nhóm (1)
  • 35. Khoa HTTT - Đại học CNTT 35 NHANVIEN MANV HOTEN PHAI MANQL PHONG LUONG NV001 Nguyễn Ngọc Linh Nữ Null NC 2.800.000 NV002 Đinh Bá Tiến Nam NV002 DH 2.000.000 NV003 Nguyễn Văn Mạnh Nam NV001 NC 2.300.000 NV004 Trần Thanh Long Nam NV002 DH 1.800.000 NV005 Nguyễn Thị Hồng Vân Nữ NV001 NC 2.500.000 NV006 Nguyễn Minh Nam NV002 DH 2.000.000 NV007 Hà Duy Lập Nam NV003 NC 1.800.000 NV008 Trần Kim Duyên Nữ NV003 NC 1.800.000 NV009 Nguyễn Kim Anh Nữ NV003 NC 2.000.000
  • 36. Khoa HTTT - Đại học CNTT 36 Ví dụ 1. Tính lương thấp nhất, cao nhất, trung bình và tổng lương của tất cả các nhân viên. 2. Có tất cả bao nhiêu nhân viên 3. Bao nhiêu nhân viên có người quản lý 4. Bao nhiêu phòng ban có nhân viên trực thuộc 5. Tính lương trung bình của các nhân viên 6. Tính lương trung bình của các nhân viên theo từng phòng ban
  • 37. Khoa HTTT - Đại học CNTT 37 1. Tính lương thấp nhất, cao nhất, trung bình và tổng lương của tất cả các nhân viên. SELECT min(luong) as thapnhat, max(luong) as caonhat, avg(luong) as trungbinh, sum(luong) as tongluong FROM NhanVien
  • 38. Khoa HTTT - Đại học CNTT 38 2. Có tất cả bao nhiêu nhân viên SELECT count(*) FROM NhanVien 3. Bao nhiêu nhân viên có người quản lý  Select count(*) FROM NhanVien WHERE manql is not null  SELECT count(Manql) FROM NhanVien 4. Bao nhiêu phòng ban có nhân viên trực thuộc SELECT count(distinct phong) FROM NhanVien
  • 39. Khoa HTTT - Đại học CNTT 39 5.8 Các hàm tính toán và gom nhóm (2) 5.8.2 Gom nhóm: mệnh đề GROUP BY  Sử dụng hàm gom nhóm trên các bộ trong quan hệ.  Mỗi nhóm bộ bao 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  Hàm gom nhóm áp dụng trên mỗi bộ độc lập nhau.  SQL có mệnh đề GROUP BY để chỉ ra các thuộc tính gom nhóm, các thuộc tính này phải xuất hiện trong mệnh đề SELECT
  • 40. Khoa HTTT - Đại học CNTT 40 5. Tính lương trung bình của các nhân viên SELECT avg(LUONG) as LUONGTB FROM NhanVien 6. Tính lương trung bình của các nhân viên theo từng phòng ban. SELECT phong, avg(LUONG) as LUONGTB FROM NhanVien GROUP BY phong
  • 41. Khoa HTTT - Đại học CNTT 41 5.8 Các hàm tính toán và gom nhóm (3) 5.8.3 Điều kiện sau gom nhóm: mệnh đề HAVING  Lọc kết quả theo điều kiện, sau khi đã gom nhóm  Điều kiện ở HAVING được thực hiện sau khi gom nhóm, các điều kiện có liên quan đến thuộc tính Group By  Ví dụ: tìm phòng có số lượng nhân viên “Nữ” trên 5 người SELECT phong FROM NhanVien WHERE phai = ‘Nữ’ GROUP BY phong HAVING count(manv) > 5