ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
CHƯƠNG VI:Chương 3
DML
-THAO TÃC Dá»® LIỆU-
I. Tạo lập dữ liệu cho bảng
 Chèn dữ liệu
 Xem dữ liệu
 Cập nhật dữ liệu
ï‚¡ Xóa các dòng thá»a mãn Ä‘iá»u kiện
 Xóa các dòng nhưng giữ nguyên cấu trúc bảng
2
1. Chèn dữ liệu
 Cú pháp:
INSERT INTO <tên bảng>(ds cột) VALUES (giá trị cần chèn
của hàng 1), (giá trị cần chèn của hàng 2), …
INSERT INTO <tên bảng> VALUES (Giá trị cần chèn của
một hàng)
INSERT <tên bảng> VALUES (Giá trị cần chèn của một
hàng)
 Chú ý:
- Nếu dữ liệu kiểu text và kiểu Date, khi chèn phải có ‘ ‘, nếu là kiểu
Nvachar thì phải có tiếp đầu ngữ N’ ’.
- Dữ liệu kiểu Date yêu cầu nhập tháng/ngày/năm hoặc
năm/tháng/ngày
- Dữ liệu dạng tự tăng thì không cần nhập.
- Với dữ liệu mặc định, nếu không thay đổi giá trị mặc định khi chèn dữ
liệu cần liệt kê danh sách các cột mà không có cột có ràng buộc mặc
3
Vd: Chèn thông tin vào bảng SINHVIEN
4Ngôn ngữ truy ±¹áº¥n
ï‚¡ insert into sinhvien (TenSV,GT,Ngaysinh, Que, Lop)
values (N'Trần Bảo Trá»ng‘ , 'Nam‘ , '1995/12/14', N'Hà Giang‘ ,
'L02‘), (N'Lê Thùy Dung', N'Nữ‘, '05/12/1997', N'Hà Nội','L03')
ï‚¡ insert into Sinhvien values (N'Lê TrÆ°á»ng An‘ , N'Nam‘ ,
'11/20/1995‘ , N'Ninh Bình', 'L04').
ï‚¡ insert sinhvien values ( N'Äoàn Duy Thức ‘ , N'Nam‘ ,
'4/12/1994', N'Hà Nội', 'L01')
2. Xem d li u trên b ngữ ệ ả
SELECT * FROM <tên b ng>ả
3. C p nh t d li u:ậ ậ ữ ệ
UPDATE <Tên b ng> SET <tên c t>= <giá trả ộ ị
m i>[ WHERE < i u ki n>]á»› Ä á» á»‡
4. Xóa các dòng th a mãn i u ki n:Ỡđ Ỡệ
DELETE FROM table_name
WHERE <tên c t>=<giá tr >;ộ ị
5. Xóa t t c các dòng nh ng v n gi nguyên c u trúc b ng:ấ ả ư ẫ ữ ấ ả
DELETE FROM table_name;
5
6Ngôn ngữ truy ±¹áº¥n
7
Äược sá»­ dụng để truy xuất dữ liệu từ các dòng, các cá»™t của má»™t hay nhiá»u bảng
Thá»±c hiện phép toán: Chá»n - Chiếu- Kết nối - Tính toán cÆ¡ bản
Ngôn ngữ truy ±¹áº¥n
II. Mệnh đỠSelect..from..where
8
*Câu lệnh SELECT đầy đủ
SELECT [DISTINCT |Top n |* ] <biểu thức/ cột [AS <tên mới>],..>
[INTO <tên bảng mới>]
FROM <tên bảng> as [<bí danh>],...
[WHERE <Ä‘iá»u kiện chá»n>]
[GROUP BY < ds tên cột gom nhóm>]
[HAVING <Ä‘iá»u kiện lá»c nhóm>]
[ORDER BY <tên cột>[ASC|DESC],…];
Ngôn ngữ truy ±¹áº¥n
9
ï‚¡ Truy ±¹áº¥n có ba loại:
- Truy ±¹áº¥n trên má»™t bảng
- Truy ±¹áº¥n trên nhiá»u bảng
- Truy ±¹áº¥n lồng
Ngôn ngữ truy ±¹áº¥n
10
1. Truy ±¹áº¥n trên má»™t bảng
 a. Truy v n n gi n:ấ đơ ả
 <danh sách các c t>ộ
- Tên các thu c tính (c t) s c hi n th trong k t qu truy v n.ộ ộ ẽđượ ể ị ế ả ấ
 <danh sách các b ng>ả
- Tên các b ng liên quan l y k t quả để ấ ế ả
 <bi u th c i u ki n>ể ứ đ Ỡệ
- là i u ki n a vào ch n l c d li u, th ng g m:đ Ỡệ đư để ỠỠữ ệ ưỠồ
 Các phép toán so sánh: < , > , ≤ , ≥ , ≠ , =
 Các phép toán logic: AND, OR, và NOT
 Các t khóa: BETWEEN … AND, IN, EXISTS, LIKE…ừ
SELECT <danh sách các cột>
FROM <danh sách các bảng>
[WHERE <biểu thức Ä‘iá»u kiện>]
Ngôn ngữ truy ±¹áº¥n
11
SELECT <danh sách các
cá»™t>
FROM <danh sách các bảng>
WHERE <Ä‘iá»u kiện>
σ
Ï€
×
SELECT L
FROM R
WHERE C
πL (σC (R))
ï‚¡ SQL và ÄSQH
Ngôn ngữ truy ±¹áº¥n
12
Ví dụ
 Ví dụ 1: Cho danh sách sinh viên gồm Mã SV, HỠtên, Ngày sinh của
tất cả các sinh viên
Select MaSV, TenSV, Ngaysinh
from Sinhvien
 Ví dụ 2: Cho danh sách sinh viên nữ thuộc lớp L02
Select *
From Sinhvien
Where (GT=N'Nữ') and (Lop='L02‘)
 Ví dụ 3: Thêm định danh cho bảng và cho cột (sử dụng từ khóa as)
select sv.MaSV, TenSV as 'Tên Sinh Viên'
from Sinhvien as sv
/* sau khi định danh cho bảng thì từ đó sử dụng tên định danh*/
Ngôn ngữ truy ±¹áº¥n
 Ví dụ 4: Xử lý dữ liệu kiểu chuỗi dùng Like hoặc not like để
tìm chuỗi gần đúng
%: Thay thế 1 chuỗi
-: thay thế 1 ký tự
 VD 4.1: Cho danh sách các sinh viên có tên là ‘Nga’
select *
from sinhvien
where TenSV like N'% Nga'
 VD 4.2: Cho danh sách những sinh viên hỠTrần
select *
from sinhvien
where TenSV like N'Trần %'
13Ngôn ngữ truy ±¹áº¥n
 Ví dụ 5: Sử dụng BETWEEN <GT1> AND <GT2> để lấy
những bản ghi thá»a mãn nằm giữa GT1 và GT2.
Cho danh sách gồm mã sinh viên, ma môn há»c của sinh viên có
điểm từ 5 đến 7
select MaSv, MaMH
from ketqua
where diem between 5 and 7
 Note: Not Between .. and … có ý nghĩa ngược lại.
14Ngôn ngữ truy ±¹áº¥n
ï‚¡ Ví dụ 6: Sá»­ dụng NULL/NOT NULL cho các trÆ°á»ng hợp sau:
- Không biết - không xác định (value unknown)
- Không thể áp dụng (value inapplicable)
- Không tồn tại (value withheld)
ï‚¡ VD: Cho danh sách gồm Mã Sinh viên và mã môn há»c của
sinh viên không có điểm thi
select MaSV, MaMH
from ketqua
where Diem is Null
15Ngôn ngữ truy ±¹áº¥n
 Ví dụ 7: Sử dụng in: Cho danh sách các sinh viên có quê ở
Hà Ná»™i hoặc Phú Thá»
Select *
From Sinhvien
where que in (N'Hà ná»™i', N'Phú Thá»')
 Ví dụ 8: Sử dụng các toán tử
- Distinct : loại bỠcác dòng dữ liệu trùng
- Top n : lấy n dòng đầu tiên
ï‚¡ VD 8.1: Liệt kê danh sách các tỉnh có sinh viên theo há»c tại
trÆ°á»ng
select distinct Que
from Sinhvien
16Ngôn ngữ truy ±¹áº¥n
 VD 8.2: Cho thông tin của hai sinh viên đầu tiên trong danh
sách sinh viên
select top (2) MaSV, TenSV,Que
from Sinhvien
17Ngôn ngữ truy ±¹áº¥n
Bài tập 1
 Bảng KHACHHANG( MK, TenK, DChi, SoDT )
 Bảng BAOCHI( MB, TenBao, Gia)
 Bảng DATBAO( MK, MB, NgayDat, SoLuong)
Viết câu lệnh SQL các truy ±¹áº¥n thá»±c hiện các yêu cầu sau:
1. Cho biết tên và thành tiá»n đặt mua báo của khách hàng
tương ứng với từng ngày đặt
2. Cho biết hỠtên – địa chỉ của khách hàng đặt mua báo có tên
Nhân Dân trong năm 2014
3. Thông tin vỠcác loại báo khách hàng đã đặt mua trong năm
2000.
4. Cho thông tin của báo chí có giá đắt nhất
19
b. Hàm kết hợp
ï‚¡ Äược sá»­ dụng để tính giá trị thống kê trên toàn bảng hoặc trên
mỗi nhóm dữ liệu
 Các hàm cơ bản:
- Sum( [All | Distinct] biểu-thức), Avg( [All | Distinct] biểu-thức)
- Count( [All | Distinct] biểu-thức) : đếm số dòng khác Null
trong cột, biểu thức.
- Count(*) : đếm số dòng được chá»n trong bảng, kể cả Null
- Max( biểu-thức ), Min( biểu-thức )
 Các hàm thực hiện tính toán trên toàn bộ dữ liệu, bỠbớt giá trị
trùng nhau thêm từ distinct
Ngôn ngữ truy ±¹áº¥n 20
21
Ví dụ 9:
 Tìm tổng lương, lương cao nhất, lương thấp nhất và lương
trung bình của các nhân viên
ï‚¡ NHANVIEN(MaNV, TenNV, GT, NS, DChi, Luong, MaPB)
SELECT sum(Luong) AS [Tổng lương] ,
max(Luong) AS [Lương cao nhất] ,
min(Luong) AS [Lương thấp nhất] ,
avg(Luong) AS [Lương trung bình]
FROM NhanVien
LUONG
3.000.000
2.500.000
2.500.000
4.000.000
Tổng lương Lương cao nhất Lương thấp nhất Lương trung bình
12.000.00
0
3.000.0002.500.0004.000.000
Ngôn ngữ truy ±¹áº¥n
22
Ví dụ 10:
SELECT sum(distinct Luong) AS [Tổng lương]
FROM NhanVien
LUONG
3.000.000
2.500.000
2.500.000
4.000.000
Ngôn ngữ truy ±¹áº¥n
23
 Ví dụ 11: Cho biết số lượng nhân viên của phòng 5
ï‚¡ NHANVIEN(MaNV, TenNV, GT, NS, DChi, Luong, MaPB)
SELECT count(MNV) AS [Số nhân viên]
FROM NhanVien
WHERE MaPB = 5
Ngôn ngữ truy ±¹áº¥n
24
c. Mệnh đỠGROUP BY
ï‚¡ Äể thá»±c hiện gom nhóm các bá»™ theo má»™t tiêu chí xác định
để thực hiện tính toán
 Cú pháp
 Sau khi gom nhóm
- Mỗi nhóm các bộ sẽ có cùng giá trị tại các thuộc tính gom nhóm
 CSDL gồm:
- NHANVIEN(MaNV, TenNV, GT, NS, DChi, Luong, MaPB)
- PHONG(MaP, TenP, DIADIEM)
- DU_An(MaDA, TenDA, DiaDiem, MAPB)
SELECT <DS cột gom nhóm>, <Hàm tính toán>
FROM <danh sách các bảng>
[WHERE <biểu thức Ä‘iá»u kiện>]
GROUP BY <DS cột gom nhóm>
HAVING <Ä‘iá»u kiện tính toán nhóm>
Ngôn ngữ truy ±¹áº¥n
25
Ví dụ 12:
ï‚¡ Vá»›i má»—i phòng, cho biết số dá»± án mà phòng đó Ä‘iá»u phối
MaPB So du an
5
4
1
3
2
1
SELECT MaPB, count (Ma_DuAn) AS [So du an]
FROM DUAN
GROUP BY MaPB
Kết quả:
Cột gom nhóm [Group By (MaPB)]Cột tính toán [count (Ma_DuAn)]
X
Y
Z
1
2
3
Da Nang
Chu Lai
Hue
5
5
5
Tin há»c hóa
Phúc lợi
10
20
Quang Nam
Quang Tri
4
4
Tái tổ chức 15 Da Nang 1
DUAN Ten_DuAn Ma_DuAn DiaDiem
MaPB
Ngôn ngữ truy ±¹áº¥n
26
Ví dụ 13:
 Cho biết số lượng nhân viên của từng phòng ban
Số NV
5
4
3
3
PHG
1 1
TENNV NGSINH DCHI PHAI LUONG MaPB
TungNguyen 12/08/1955 638 NVC
Q5
Nam 40000 5
HungNguyen 09/15/1962 Ba Ria VT Nam 38000 5
33344555
5
98798798
7
MANV MA_NQL
88866555
5
33344555
5
Thanh
Manh
TamTran 07/31/1972 543 MTL
Q1
Nu 25000 5
HangBui 07/19/1968 33 NTH Q1 Nu 38000 4
45345345
3
99988777
7
33344555
5
98765432
1
Thanh
Ngoc
NhuLe 07620/1951 219 TD Q3 Nu 43000 498765432
1
88866555
5
Quynh
QuangTran 04/08/1969 980 LHP
Q5
Nam 25000 4
VinhPham 11/10/1945 450 TV HN Nam 55000 1
98798798
7
88866555
5
98765432
1
NULL
Hong
Van
SELECT PHG, count (MaNV) AS [Số NV]
FROM NHANVIEN
GROUP BY MaPB
Ngôn ngữ truy ±¹áº¥n
27
Ví dụ 14:
 Cho biết những phòng ban tham gia từ 2 đỠán trở lên
SELECT MaPB, count (Ma_DuAn) AS [So du an]
FROM DUAN
GROUP BY MaPB
HAVING Count (Ma_DuAn) >= 2
X
Y
Z
1
2
3
Da Nang
Chu Lai
Hue
5
5
5
Tin há»c hóa
Phúc lợi
10
20
Quang Nam
Quang Tri
4
4
Tái tổ chức 15 Da Nang 1
DUAN Ten_DuAn Ma_DuAn DiaDiem MaPB
MaPB So du an
Kết quả:
5
4
3
2
bị loại ra
Ngôn ngữ truy ±¹áº¥n
Nhận xét
ï‚¡ Thứ tá»± thá»±c hiện câu truy ±¹áº¥n có mệnh Ä‘á» GROUP
BY và HAVING
- (1) Chá»n ra những dòng thá»a Ä‘iá»u kiện trong
mệnh đỠWHERE
- (2) Những dòng này sẽ được gom thành nhiá»u
nhóm tương ứng với mệnh đỠGROUP BY
- (3) Ãp dụng các hàm kết hợp cho má»—i nhóm
- (4) Bá» qua những nhóm không thá»a Ä‘iá»u kiện
trong mệnh đỠHAVING
- (5) Rút trích các giá trị của các cột và hàm kết hợp
trong mệnh đỠSELECT
29Ngôn ngữ truy ±¹áº¥n
30
4. Mệnh đỠORDER BY
ï‚¡ Hiển thị kết quả câu truy ±¹áº¥n theo má»™t thứ tá»± nào đó trên
các cột
 Cú pháp
- ASC (ASCending): tăng (mặc định)
- DESC (DESCending): giảm
SELECT <danh sách các thuộc tính>
FROM <danh sáchcác bảng>
WHERE <biểu thức Ä‘iá»u kiện>
ORDER BY <thuộc tính sắp xếp> [ASC | DESC]
Ngôn ngữ truy ±¹áº¥n
31
Ví dụ 12:
 Với mỗi phòng ban, cho biết mã phòng và mã nhân viên
trong phòng đó. Sắp xếp theo thứ tự giảm dần của mã phòng
và tăng dần của mã nhân viên.
02
03
05
04
06
Nguyen
Tung
Le Loi -DN Nam 5
Le Thi Buoi Tran Phu -DN Nu 5
01
TENNV DCHI GT MaPBMANV
Le Nam Yen Bay -DN Nam 4
Tran Thi B Le Duan -DN Nu 4
Thai Thi Hoa Hoa Khanh -DNNu 1
Tran A Dien Ban -QN Nam 5
SELECT MaPB, MaNV
FROM NHANVIEN
ORDER BY MaPB DESC,
MaNV
Ngôn ngữ truy ±¹áº¥n
2. Truy ±¹áº¥n dữ liệu trên nhiá»u bảng
 Có hai cách kết nối bảng:
- Sử dụng mệnh đỠwhere
- Sử dụng Join/inner Join/Left Join/Right Join/Full Join
 Trong đó: Join, inner Join và where là tương đương
nhau
 Cú pháp:
SELECT <ds cá»™t>
FROM <Tên bảng>
WHERE <Ä‘iá»u kiện nối hai bảng>
 Ví dụ:
SELECT TENNV, TENPB
FROM NHANVIEN, PHONGBAN
WHERE NHANVIEN.MAPB = PHONGBAN.MAPB 32Ngôn ngữ truy ±¹áº¥n
Nối bảng với INNER|LEFT|RIGHT|FULL JOIN
 Cú pháp:
SELECT <danh sách cột>
FROM table1 INNER|LEFT|RIGHT|FULL JOIN table2
ON <Ä‘iá»u kiện nối>
33Ngôn ngữ truy ±¹áº¥n
Nối bảng với INNER|LEFT|RIGHT|FULL JOIN
ï‚¡ INNER JOIN/JOIN: trả vá» các dòng của hai bảng thá»a
mãn Ä‘iá»u kiện nối
 LEFT JOIN: trả vỠcác dòng của bảng thứ nhất dù ở
bảng 2 không thá»a mãn Ä‘iá»u kiện nối. Nếu dữ liệu có ở
bảng 1 không có ở bảng 2 vẫn hiển thị
 RIGHT JOIN: trả vỠcác dòng của bảng2 dù ở bảng 1
không thá»a mãn Ä‘iá»u kiện nối. Nếu dữ liệu có ở bảng 2
không có ở bảng 1 vẫn hiển thị.
 FULL JOIN: trả vỠcác dòng của hai bảng, nếu không có
dữ liệu thá»a mãn Ä‘iá»u kiện thì gán bằng NULL.
34Ngôn ngữ truy ±¹áº¥n
Ví dụ:
 Cho bảng dữ liệu: Khachhang và Hoadon
35
MaKH TenKH
01 Trần Nhật Lệ
02 Lê Thị Nhàn
03 Hoàng Lê Minh
04 Bùi Ngá»c Quang
MaKH MaSP TenSP
01 A100 Quạt máy
01 A102 Tủ lạnh
03 A120 Máy giặt
05 A230 Ti vi
Ngôn ngữ truy ±¹áº¥n
INNER JOIN
SELECT TenKH, TenSP
FROM Khachhang INNER JOIN hoadon
ON Khachhang.MaKH = Hoadon.MaKH
36
TenKH TenSP
Trần Nhật Lệ Quạt máy
Trần Nhật Lệ Tủ lạnh
Hoàng Lê Minh Máy giặt
Ngôn ngữ truy ±¹áº¥n
SELECT TenKH, TenSP
FROM Khachhang LEFT JOIN hoadon
ON Khachhang.MaKH = Hoadon.MaKH
37
TenKH TenSP
Trần Nhật Lệ Quạt máy
Trần Nhật Lệ Tủ lạnh
Lê Thị Nhàn NULL
Hoàng Lê Minh Máy giặt
Bùi Ngá»c Quang NULL
Ngôn ngữ truy ±¹áº¥n
SELECT TenKH, TenSP
FROM Khachhang RIGHT JOIN hoadon
ON Khachhang.MaKH = Hoadon.MaKH
38
TenKH TenSP
Trần Nhật Lệ Quạt máy
Trần Nhật Lệ Tủ lạnh
Hoàng Lê Minh Máy giặt
NULL Tivi
Ngôn ngữ truy ±¹áº¥n
SELECT TenKH, TenSP
FROM Khachhang FULL JOIN hoadon
ON Khachhang.MaKH = Hoadon.MaKH
39
TenKH TenSP
Trần Nhật Lệ Quạt máy
Trần Nhật Lệ Tủ lạnh
Lê Thị Nhàn NULL
Hoàng Lê Minh Máy giặt
Bùi Ngá»c Quang NULL
NULL Tivi
Ngôn ngữ truy ±¹áº¥n
Thứ tự xử lý của lệnh SELECT
40Ngôn ngữ truy ±¹áº¥n
3. Truy ±¹áº¥n lồng
ï‚¡ Là thá»±c hiện lồng ghép nhiá»u câu lệnh SELECT vá»›i
nhau
ï‚¡ Câu truy ±¹áº¥n con thÆ°á»ng trả vá» má»™t tập các giá trị
ï‚¡ Các câu truy ±¹áº¥n con trong cùng má»™t mệnh Ä‘á» WHERE
được kết hợp bằng phép nối logic với Mệnh đỠWHERE
của câu truy ±¹áº¥n cha:
- <biểu thức> <so sánh tập hợp> <truy ±¹áº¥n con>
- So sánh tập hợp thÆ°á»ng Ä‘i cùng vá»›i má»™t số toán tá»­
ï‚Ÿ IN, NOT IN
ï‚Ÿ ALL
 ANY hoặc SOME
- Kiểm tra sự tồn tại
ï‚Ÿ EXISTS
ï‚Ÿ NOT EXISTS
41Ngôn ngữ truy ±¹áº¥n
ï‚¡ Cú pháp truy ±¹áº¥n lồng:
42
SELECT <danh sách các cột>
FROM <danh sách các bảng>
WHERE <biểu thức> <so sánh tập hợp> (
SELECT <danh sách các cột>
FROM <danh sách các bảng>
WHERE <Ä‘iá»u kiện>)
Câu truy
±¹áº¥n cha
(Outer
query)
Câu truy
±¹áº¥n con
(Subquery)
Ngôn ngữ truy ±¹áº¥n
ï‚¡ Có 2 loại truy ±¹áº¥n lồng
- Lồng phân cấp
ï‚Ÿ Mệnh Ä‘á» WHERE của truy ±¹áº¥n con không tham chiếu đến
thuộc tính của các quan hệ trong mệnh đỠFROM ở truy
±¹áº¥n cha
ï‚Ÿ Khi thá»±c hiện, câu truy ±¹áº¥n con sẽ được thá»±c hiện trÆ°á»›c
- Lồng tương quan
ï‚Ÿ Mệnh Ä‘á» WHERE của truy ±¹áº¥n con tham chiếu ít nhất má»™t
thuộc tính của các quan hệ trong mệnh đỠFROM ở truy
±¹áº¥n cha
ï‚Ÿ Khi thá»±c hiện, câu truy ±¹áº¥n con sẽ được thá»±c hiện nhiá»u
lần, má»—i lần tÆ°Æ¡ng ứng vá»›i má»™t bá»™ của truy ±¹áº¥n cha
43Ngôn ngữ truy ±¹áº¥n
44
Ví dụ 1: cho danh sách mã sinh viên, tên sv có điểm thi >8
 Cách 1: sá»­ dụng truy ±¹áº¥n thông thÆ°á»ng
select a.masv, tensv
from sinhvien as a, ketqua as b
where (a.masv=b.masv) and (diem>8)
 Cách 2: sá»­ dụng truy ±¹áº¥n lồng phân cấp
select Masv, tensv
from sinhvien
where Masv in ( select Masv
from ketqua
where (diem>8))
Ngôn ngữ truy ±¹áº¥n
45
 Cách 3:
select Masv, tensv
from sinhvien as a
where exists (select *
from ketqua as b
where (a.MaSV=b.MaSV) and (diem>8))
Ngôn ngữ truy ±¹áº¥n
 Giả sử có các bảng CSDL như sau:
- Nhanvien(MaNV, HT, NS, GT, Luong, MaP)
- Phong(MaP, TenP, MNQL, NgayQL)
- DuAn(MaDa,TenDA, DiaDiem,MaP)
- NV_DA(MaNV, MaDA, Sogio)
46Ngôn ngữ truy ±¹áº¥n
 Ví dụ 2: Tìm những nhân viên thực hiện ít nhất một dự án
nào đó
SELECT * FROM NHANVIEN
WHERE EXISTS (SELECT * FROM NV_DA
WHERE NHANVIEN.manv= NV_DA.manv);
47Ngôn ngữ truy ±¹áº¥n
 Ví dụ 3: Tìm tên nhân viên có lương cao hơn tất cả các
nhân viên khác?
SELECT Hoten FROM NHANVIEN
WHERE luong >= ALL (SELECT luong
FROM
NHANVIEN);
Mệnh đỠtrên tương đương với
SELECT Hoten FROM NHANVIEN
WHERE luong = (SELECT MAX (luong)
FROM NHANVIEN);
48Ngôn ngữ truy ±¹áº¥n
 Ví dụ 4: Tìm tên những dự án mà nhân viên có mã số 7 đã
thực hiện?
SELECT tenda FROM DUAN
WHERE mada= ANY(SELECT mada FROM NV_DA
WHERE manv = 7);
Select tenda from Duan, NV_DA
Where Duan.MaDA=NV_DA.MaDA and MaNV=7
49Ngôn ngữ truy ±¹áº¥n
4. Phép toán tập hợp
 Gồm:
- UNION Hợp
- INTERSECT Giao
- EXCEPT Trừ
ï‚¡ Chú ý: Các trÆ°á»ng trong select phải giống nhau má»›i
thực hiện được
50Ngôn ngữ truy ±¹áº¥n
Ví dụ
 + Ví dụ 1: Cho danh sách mã sinh viên của những
sinh viên không có bất kỳ một điểm thi của một môn
há»c nào.
select MasV
from Sinhvien
Except
select Masv
from ketqua
where diem not null
51Ngôn ngữ truy ±¹áº¥n
Ví dụ 2: Cho danh sách tên của các sinh viên có đủ
Ä‘iểm hai môn vá»›i mã môn há»c là 1 và 3
select distinct tensv
from Sinhvien as a, Ketqua as b
where a.MaSV = b.MaSV and MaMH=1
Intersect
select distinct tensv
from Sinhvien as a, Ketqua as b
where a.MaSV = b.MaSV and MaMH=3
52Ngôn ngữ truy ±¹áº¥n
III. Hàm trong SQL
 SQL có các loại hàm sau:
- Các hàm tập hợp
- Hàm chuyển đổi kiểu dữ liệu
- Hàm ngày tháng
- Hàm toán há»c
- …
53Ngôn ngữ truy ±¹áº¥n
*Hàm tính gộp
ï‚¡SUM( col_name )
ï‚¡AVG( col_name )
ï‚¡COUNT ( col_name ) | COUNT( * )
ï‚¡MAX( col_name )
ï‚¡MIN( col_name )
Ngôn ngữ truy ±¹áº¥n 54
*Hàm toán há»c
ï‚¡ABS( num_expr )
ï‚¡POWER( num_expr, y )
ï‚¡ROUND( num_expr, length )
ï‚¡SQRT( float_expr)
Ngôn ngữ truy ±¹áº¥n 55
ï‚¡ Äược dùng để thao tác giá trị ngày tháng
 Gồm:
- GETDATE( )
- DAY( date ), MONTH( date ), YEAR( date )
- DATEDIFF( datepart, date1, date2 )
- DATEADD( datepart, number, date )
- DATENAME( datepart, date )
- DATEPART( datepart, date )
*Hàm ngày tháng
58Ngôn ngữ truy ±¹áº¥n
59Ngôn ngữ truy ±¹áº¥n
ÄÆ¡n vị thá»i gian Ký hiệu Values
Hour hh 0-23
Minute Mi, n 0-59
Second Ss, s 0-59
Day of Year Dy, y 1-366
Day Dd, d 1-31
Week Wk, www 1-53
Month Mm, m 1-12
Quarter Qq, q 1-4
Year Yy, yyyy 1753-9999
*Hàm xử lý chuỗi
 Dùng để tách, thay thế và tương tác với chuỗi ký tự
 Gồm:
- LEFT( string, number), RIGHT( string, number )
- LOWER( string ), UPPER( string )
- LTRIM( string ), RTRIM( string )
- LEN( string )
Ngôn ngữ truy ±¹áº¥n 60
ï‚¡ Cho má»™t cÆ¡ sở dữ liệu gồm các bảng và các trÆ°á»ng tÆ°Æ¡ng ứng nhÆ° sau:
ï‚¡ SACH ( Masach, Tensach, Tentacgia, Nhaxuatban, Soluong)
ï‚¡ DOCGIA( Sothe, Tendocgia, Khoa, Khoahoc, Thoihanthe)
ï‚¡ PHIEUMUON( Masach, Sothe, ngaymuon, ngaytra, datra, ghichu)
- Thiết lập các ràng buộc dữ liệu trên các bảng: PK, FK, CHECK, DEFAULT,..
- Nhập 1 bản ghi vào mỗi bảng
- Thá»±c hiện xóa, cập nhật dữ liệu trên má»™t bảng bất kì vá»›i Ä‘iá»u kiện phù hợp.
- Hiển thị tên, khoa của các độc giả và sắp xếp theo khoa?
- Tìm những độc giả mượn sách Toán cao cấp vào ngày 20/5/2003?
- Hiển thị tên, số thẻ, tên sách của tất cả độc giả mượn sách trong tháng 5/2003
- Danh sách các sách không ai mượn
- Cho biết độc giả tên A mượn sách bao nhiêu lần
Ngôn ngữ truy ±¹áº¥n 61
Bài tập áp dụng
ï‚¡ NHANVIEN(MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL)
ï‚¡ HANG(MaHang, TenHang, NhaSX, TGianBaoHanh)
ï‚¡ KHACHHANG(MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email)
ï‚¡ HOADONXUAT(MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT)
ï‚¡ CT_HOADON(MaHD, MaHang, SoLuongMua, DonGia)
ï‚¡ Viết câu lệnh truy ±¹áº¥n đầy đủ thá»±c hiện yêu cầu sau:
- Cho danh sách hỠtên của nhân viên sinh vào tháng 3 hoặc tháng 10
- Cho danh sách hỠtên và địa chỉ của các khách hàng có sử dụng gmail
- Cho biết tuổi cao nhất hiện nay của các nhân viên
- Cho danh sách khách hàng có địa chỉ không thuá»™c quận Äống Äa hoặc quận
Hoàng Mai
- Cho danh sách các tên hàng không bán được mặt hàng nào
- Tính tổng số tiá»n của từng hóa Ä‘Æ¡n xuất
- Liệt kê danh sách các khách hàng đã mua trên 10 triệu
- Cho danh sách các mặt hàng đã được mua trong năm 2014 và tổng tiá»n trên 10
triệu
Ngôn ngữ truy ±¹áº¥n 62
Bài tập áp dụng (tiếp)
ï‚¡ NHANVIEN(MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL)
ï‚¡ HANG(MaHang, TenHang, NhaSX, TGianBaoHanh)
ï‚¡ KHACHHANG(MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email)
ï‚¡ HOADONXUAT(MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT)
ï‚¡ CT_HOADON(MaHD, MaHang, SoLuongMua, DonGia)
ï‚¡ Viết câu lệnh truy ±¹áº¥n đầy đủ thá»±c hiện yêu cầu sau:
- Tính tổng số tiá»n đã bán được của từng hóa Ä‘Æ¡n
- Tính tổng số lượng và tổng số tiá»n đã bán được của từng
mặt hàng
- Tính tổng số lượng và tổng số tiá»n đã bán được của từng
mặt hàng trong năm 2013
- Tính tổng số tiá»n đã mua hàng của từng khách hàng, thống
kê dựa vào tên khách hàng
- Cho biết tên mặt hàng đã bán vá»›i số lượng nhiá»u nhất
Ngôn ngữ truy ±¹áº¥n 63
Ví dụ
ï‚¡ NHANVIEN ( MANV, HOTen, NS, GT, HSL, DC, MAPB, NgayVL)
ï‚¡ PHONGBAN ( MAPB, TENDV , MaTP, NgayBD, SoNV)
ï‚¡ DIADIEM_PB ( MaPB, DiaDiem)
ï‚¡ DUAN ( MADA, TENDA, DIADIEM, NgBD, MAPB)
ï‚¡ THANNHAN ( HOTEN, NS, GT, QuanHe, MANV)
ï‚¡ PHANCONG ( MADA, MANV, SoGio, NgLamDA)
ï‚¡ Xây dá»±ng câu lệnh truy ±¹áº¥n thá»±c hiện yêu cầu sau:
1. Cho biết tổng lương của từng phòng ban
2. Cho tên phòng ban có tổng lương trên 10 triệu
3. Cho tên phòng ban có tổng số nhân viên dưới 5
4. Cho biết tên nhân viên và tổng số giỠđã tham gia dự án của nhân viên đó
5. Cho biết tổng số nhân viên đã tham gia làm cho từng dự án theo tên dự án
6. Cho biết số dự án đã thực hiện của từng phòng ban
7. Cho biết tên dự án và tổng số giỠlàm của các nhân viên cho dự án đó
8. Cho biết tên của nhân viên có số giá» làm cho dá»± án là nhiá»u nhất
9. Cho biết tên của phòng ban có tổng lương thấp nhất
Ngôn ngữ truy ±¹áº¥n 64
Bài tập vỠnhà
Thiết kế CSDL của Bài tập lớn
Sử dụng câu lệnh Create để tạo các bảng
tương ứng
In (vẽ) sơ đồ liên kết giữa các bảng nộp đầu
giỠcho GV kiểm tra
- Ghi rõ tên đỠbài
- Tên sinh viên và tên lớp tương ứng
Chuẩn bị bộ dữ liệu có nghĩa để chèn vào
các bảng
Ngôn ngữ truy ±¹áº¥n 65
Bài tập áp dụng
ï‚¡ NHANVIEN( MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL)
ï‚¡ HANG( MaHang, TenHang, NhaSX, TGianBaoHanh, DonGia)
ï‚¡ KHACHHANG( MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email)
ï‚¡ HOADONXUAT( MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT)
ï‚¡ CT_HOADON( MaHD, MaHang, SoLuongMua, GiamGia)
ï‚¡ Viết câu lệnh truy ±¹áº¥n đầy đủ thá»±c hiện yêu cầu sau:
- Cho danh sách các nhân viên nữ đã bán được hàng vào tháng 3
- Cho danh sách khách hàng sá»­ dụng thuê bao Viettel đã thanh toán tiá»n
trực tiếp khi mua hàng
- Cho danh sách tên các mặt hàng chưa bán được hàng nào
- Cho danh sách nhân viên có lương cao nhất
- Cho danh sách khách hàng ở Äống Äa đã đến mua hàng
- Thống kê tổng số tiá»n của từng hóa Ä‘Æ¡n đã bán trong tháng 3
- In ra danh sách các hóa đơn trong tháng 3 đã tổng trị giá > 10 triệu
- Cho biết tổng số loại hàng đã được bán của từng hóa dơn
Ngôn ngữ truy ±¹áº¥n 66
Bài tập thực hành (tiếp)
ï‚¡ NHANVIEN( MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL)
ï‚¡ HANG( MaHang, TenHang, NhaSX, TGianBaoHanh, DonGia)
ï‚¡ KHACHHANG( MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email)
ï‚¡ HOADONXUAT( MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT)
ï‚¡ CT_HOADON( MaHD, MaHang, SoLuongMua, GiamGia)
ï‚¡ Viết câu lệnh truy ±¹áº¥n đầy đủ thá»±c hiện yêu cầu sau (tiếp)
- Cho biết tổng số hóa đơn đã được lập của mỗi nhân viên
- Cho biết tổng số tiá»n đã bán hàng của má»—i nhân viên trong tháng 3
- Cho biết tổng số tiá»n đã mua hàng của từng khách hàng theo tên
khách hàng
- Cho biết tổng số lượng đã bán của từng mặt hàng, theo tên trong
tháng 3
- Cho biết đã lập bao nhiêu hóa đơn trong năm 2012
Ngôn ngữ truy ±¹áº¥n 67

More Related Content

What's hot (20)

Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN Là NHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Báo cáo tốt nghiệp - XÂY Dá»°NG CHƯƠNG TRÃŒNH QUẢN LÃNHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...Báo cáo tốt nghiệp - XÂY Dá»°NG CHƯƠNG TRÃŒNH QUẢN LÃNHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN Là NHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Duc Tran
Ìý
Xây dựng biểu đồ use case
Xây dựng biểu đồ use caseXây dựng biểu đồ use case
Xây dựng biểu đồ use case
Trung Chinh Hà
Ìý
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winform
MasterCode.vn
Ìý
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm
nataliej4
Ìý
Cau hoi thi ktmt&h h
Cau hoi thi ktmt&h hCau hoi thi ktmt&h h
Cau hoi thi ktmt&h h
Äức Sky
Ìý
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
The Boss
Ìý
Äá» CÆ°Æ¡ng ôn tập kiến trúc máy tính và thiết bị ngoại vi
Äá» CÆ°Æ¡ng ôn tập kiến trúc máy tính và thiết bị ngoại viÄá» CÆ°Æ¡ng ôn tập kiến trúc máy tính và thiết bị ngoại vi
Äá» CÆ°Æ¡ng ôn tập kiến trúc máy tính và thiết bị ngoại vi
Äá»— Äức Hùng
Ìý
Baitap uml mau_thầy trung
Baitap uml mau_thầy trungBaitap uml mau_thầy trung
Baitap uml mau_thầy trung
leedavid123
Ìý
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
iwanttoit
Ìý
Äè tài: Phân tích thiết kế hệ thống quản lí phòng trá», HAY
Äè tài: Phân tích thiết kế hệ thống quản lí phòng trá», HAYÄè tài: Phân tích thiết kế hệ thống quản lí phòng trá», HAY
Äè tài: Phân tích thiết kế hệ thống quản lí phòng trá», HAY
Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
Ìý
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
thuhuynhphonegap
Ìý
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Nguyễn Công Hoàng
Ìý
Äá» tài: Tìm hiểu hệ thống phát hiện xâm nhập IDS-SNORT, 9Ä‘
Äá» tài: Tìm hiểu hệ thống phát hiện xâm nhập IDS-SNORT, 9Ä‘Äá» tài: Tìm hiểu hệ thống phát hiện xâm nhập IDS-SNORT, 9Ä‘
Äá» tài: Tìm hiểu hệ thống phát hiện xâm nhập IDS-SNORT, 9Ä‘
Dịch vụ viết bài trá»n gói ZALO: 0909232620
Ìý
Linux và mã nguồn mở
Linux và mã nguồn mởLinux và mã nguồn mở
Linux và mã nguồn mở
Nguyá»…n Anh
Ìý
Báo cáo bài tập lá»›n môn CÆ¡ sở dữ liệu - Há»c viện công nghệ bÆ°u chính viá»…n thông
Báo cáo bài tập lá»›n môn CÆ¡ sở dữ liệu - Há»c viện công nghệ bÆ°u chính viá»…n thôngBáo cáo bài tập lá»›n môn CÆ¡ sở dữ liệu - Há»c viện công nghệ bÆ°u chính viá»…n thông
Báo cáo bài tập lá»›n môn CÆ¡ sở dữ liệu - Há»c viện công nghệ bÆ°u chính viá»…n thông
Huyen Pham
Ìý
Xây dựng cơ sở dữ liệu quản lý khách sạn
Xây dựng cơ sở dữ liệu quản lý khách sạnXây dựng cơ sở dữ liệu quản lý khách sạn
Xây dựng cơ sở dữ liệu quản lý khách sạn
nataliej4
Ìý
Äá» thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Äá» thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtÄá» thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Äá» thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Hưởng Nguyễn
Ìý
đồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire base
đồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire baseđồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire base
đồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire base
jackjohn45
Ìý
Báo cáo đồ án đỠtài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đỠtài xây dựng trợ lý ảo bằng pythonBáo cáo đồ án đỠtài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đỠtài xây dựng trợ lý ảo bằng python
jackjohn45
Ìý
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN Là NHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Báo cáo tốt nghiệp - XÂY Dá»°NG CHƯƠNG TRÃŒNH QUẢN LÃNHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...Báo cáo tốt nghiệp - XÂY Dá»°NG CHƯƠNG TRÃŒNH QUẢN LÃNHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN Là NHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Duc Tran
Ìý
Xây dựng biểu đồ use case
Xây dựng biểu đồ use caseXây dựng biểu đồ use case
Xây dựng biểu đồ use case
Trung Chinh Hà
Ìý
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winform
MasterCode.vn
Ìý
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm
nataliej4
Ìý
Cau hoi thi ktmt&h h
Cau hoi thi ktmt&h hCau hoi thi ktmt&h h
Cau hoi thi ktmt&h h
Äức Sky
Ìý
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
The Boss
Ìý
Äá» CÆ°Æ¡ng ôn tập kiến trúc máy tính và thiết bị ngoại vi
Äá» CÆ°Æ¡ng ôn tập kiến trúc máy tính và thiết bị ngoại viÄá» CÆ°Æ¡ng ôn tập kiến trúc máy tính và thiết bị ngoại vi
Äá» CÆ°Æ¡ng ôn tập kiến trúc máy tính và thiết bị ngoại vi
Äá»— Äức Hùng
Ìý
Baitap uml mau_thầy trung
Baitap uml mau_thầy trungBaitap uml mau_thầy trung
Baitap uml mau_thầy trung
leedavid123
Ìý
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
iwanttoit
Ìý
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
thuhuynhphonegap
Ìý
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Nguyễn Công Hoàng
Ìý
Linux và mã nguồn mở
Linux và mã nguồn mởLinux và mã nguồn mở
Linux và mã nguồn mở
Nguyá»…n Anh
Ìý
Báo cáo bài tập lá»›n môn CÆ¡ sở dữ liệu - Há»c viện công nghệ bÆ°u chính viá»…n thông
Báo cáo bài tập lá»›n môn CÆ¡ sở dữ liệu - Há»c viện công nghệ bÆ°u chính viá»…n thôngBáo cáo bài tập lá»›n môn CÆ¡ sở dữ liệu - Há»c viện công nghệ bÆ°u chính viá»…n thông
Báo cáo bài tập lá»›n môn CÆ¡ sở dữ liệu - Há»c viện công nghệ bÆ°u chính viá»…n thông
Huyen Pham
Ìý
Xây dựng cơ sở dữ liệu quản lý khách sạn
Xây dựng cơ sở dữ liệu quản lý khách sạnXây dựng cơ sở dữ liệu quản lý khách sạn
Xây dựng cơ sở dữ liệu quản lý khách sạn
nataliej4
Ìý
Äá» thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Äá» thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtÄá» thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Äá» thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Hưởng Nguyễn
Ìý
đồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire base
đồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire baseđồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire base
đồ áN cơ sở 3 xây dựng ứng dụng trò chuyện trực tuyến android sử dụng fire base
jackjohn45
Ìý
Báo cáo đồ án đỠtài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đỠtài xây dựng trợ lý ảo bằng pythonBáo cáo đồ án đỠtài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đỠtài xây dựng trợ lý ảo bằng python
jackjohn45
Ìý

Similar to ºÝºÝߣ Hệ Quản Trị CÆ¡ sở dữ liệu - CHƯƠNG 3 (20)

b34-dml-sql-190213084703.pdf
b34-dml-sql-190213084703.pdfb34-dml-sql-190213084703.pdf
b34-dml-sql-190213084703.pdf
QuyVo27
Ìý
csdl - buoi7-8-9
csdl - buoi7-8-9csdl - buoi7-8-9
csdl - buoi7-8-9
kikihoho
Ìý
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
PhamThiThuThuy1
Ìý
Cơ sở dữ liệu SQL qua các vi du cu the.pptx
Cơ sở dữ liệu SQL qua các vi du cu the.pptxCơ sở dữ liệu SQL qua các vi du cu the.pptx
Cơ sở dữ liệu SQL qua các vi du cu the.pptx
NguynNgcTn10
Ìý
Note4_ThucHanh.pdf
Note4_ThucHanh.pdfNote4_ThucHanh.pdf
Note4_ThucHanh.pdf
imquang
Ìý
Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2
Vo Oanh
Ìý
csdl bai-thuchanh_02
csdl bai-thuchanh_02csdl bai-thuchanh_02
csdl bai-thuchanh_02
kikihoho
Ìý
Co so du lieu t sql
Co so du lieu t sqlCo so du lieu t sql
Co so du lieu t sql
ANHMATTROI
Ìý
Chuong 4 - SQL - University of Information Technology.pdf
Chuong 4 - SQL - University of Information Technology.pdfChuong 4 - SQL - University of Information Technology.pdf
Chuong 4 - SQL - University of Information Technology.pdf
NguyncHin521584
Ìý
ORACLE_ch2_SQL.pptx
ORACLE_ch2_SQL.pptxORACLE_ch2_SQL.pptx
ORACLE_ch2_SQL.pptx
QuangTrnMinh18
Ìý
Com201 slide 4
Com201   slide 4Com201   slide 4
Com201 slide 4
tuanduongcntt
Ìý
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
MasterCode.vn
Ìý
Bai 5 - 7: Bai giang chuong 5 - 7 Excel can ban
Bai 5 - 7: Bai giang chuong 5 - 7 Excel can banBai 5 - 7: Bai giang chuong 5 - 7 Excel can ban
Bai 5 - 7: Bai giang chuong 5 - 7 Excel can ban
NamDoMinh2
Ìý
02. baigiangquery
02. baigiangquery02. baigiangquery
02. baigiangquery
Hoang Minh
Ìý
Cau lenh truy_van_sql
Cau lenh truy_van_sqlCau lenh truy_van_sql
Cau lenh truy_van_sql
Liễu Hồng
Ìý
b34-dml-sql-190213084703.pdf
b34-dml-sql-190213084703.pdfb34-dml-sql-190213084703.pdf
b34-dml-sql-190213084703.pdf
QuyVo27
Ìý
csdl - buoi7-8-9
csdl - buoi7-8-9csdl - buoi7-8-9
csdl - buoi7-8-9
kikihoho
Ìý
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
PhamThiThuThuy1
Ìý
Cơ sở dữ liệu SQL qua các vi du cu the.pptx
Cơ sở dữ liệu SQL qua các vi du cu the.pptxCơ sở dữ liệu SQL qua các vi du cu the.pptx
Cơ sở dữ liệu SQL qua các vi du cu the.pptx
NguynNgcTn10
Ìý
Note4_ThucHanh.pdf
Note4_ThucHanh.pdfNote4_ThucHanh.pdf
Note4_ThucHanh.pdf
imquang
Ìý
Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2
Vo Oanh
Ìý
csdl bai-thuchanh_02
csdl bai-thuchanh_02csdl bai-thuchanh_02
csdl bai-thuchanh_02
kikihoho
Ìý
Co so du lieu t sql
Co so du lieu t sqlCo so du lieu t sql
Co so du lieu t sql
ANHMATTROI
Ìý
Chuong 4 - SQL - University of Information Technology.pdf
Chuong 4 - SQL - University of Information Technology.pdfChuong 4 - SQL - University of Information Technology.pdf
Chuong 4 - SQL - University of Information Technology.pdf
NguyncHin521584
Ìý
ORACLE_ch2_SQL.pptx
ORACLE_ch2_SQL.pptxORACLE_ch2_SQL.pptx
ORACLE_ch2_SQL.pptx
QuangTrnMinh18
Ìý
Com201 slide 4
Com201   slide 4Com201   slide 4
Com201 slide 4
tuanduongcntt
Ìý
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
MasterCode.vn
Ìý
Bai 5 - 7: Bai giang chuong 5 - 7 Excel can ban
Bai 5 - 7: Bai giang chuong 5 - 7 Excel can banBai 5 - 7: Bai giang chuong 5 - 7 Excel can ban
Bai 5 - 7: Bai giang chuong 5 - 7 Excel can ban
NamDoMinh2
Ìý
02. baigiangquery
02. baigiangquery02. baigiangquery
02. baigiangquery
Hoang Minh
Ìý

ºÝºÝߣ Hệ Quản Trị CÆ¡ sở dữ liệu - CHƯƠNG 3

  • 1. CHƯƠNG VI:ChÆ°Æ¡ng 3 DML -THAO TÃC Dá»® LIỆU-
  • 2. I. Tạo lập dữ liệu cho bảng ï‚¡ Chèn dữ liệu ï‚¡ Xem dữ liệu ï‚¡ Cập nhật dữ liệu ï‚¡ Xóa các dòng thá»a mãn Ä‘iá»u kiện ï‚¡ Xóa các dòng nhÆ°ng giữ nguyên cấu trúc bảng 2
  • 3. 1. Chèn dữ liệu ï‚¡ Cú pháp: INSERT INTO <tên bảng>(ds cá»™t) VALUES (giá trị cần chèn của hàng 1), (giá trị cần chèn của hàng 2), … INSERT INTO <tên bảng> VALUES (Giá trị cần chèn của má»™t hàng) INSERT <tên bảng> VALUES (Giá trị cần chèn của má»™t hàng) ï‚¡ Chú ý: - Nếu dữ liệu kiểu text và kiểu Date, khi chèn phải có ‘ ‘, nếu là kiểu Nvachar thì phải có tiếp đầu ngữ N’ ’. - Dữ liệu kiểu Date yêu cầu nhập tháng/ngày/năm hoặc năm/tháng/ngày - Dữ liệu dạng tá»± tăng thì không cần nhập. - Vá»›i dữ liệu mặc định, nếu không thay đổi giá trị mặc định khi chèn dữ liệu cần liệt kê danh sách các cá»™t mà không có cá»™t có ràng buá»™c mặc 3
  • 4. Vd: Chèn thông tin vào bảng SINHVIEN 4Ngôn ngữ truy ±¹áº¥n ï‚¡ insert into sinhvien (TenSV,GT,Ngaysinh, Que, Lop) values (N'Trần Bảo Trá»ng‘ , 'Nam‘ , '1995/12/14', N'Hà Giang‘ , 'L02‘), (N'Lê Thùy Dung', N'Nữ‘, '05/12/1997', N'Hà Ná»™i','L03') ï‚¡ insert into Sinhvien values (N'Lê TrÆ°á»ng An‘ , N'Nam‘ , '11/20/1995‘ , N'Ninh Bình', 'L04'). ï‚¡ insert sinhvien values ( N'Äoàn Duy Thức ‘ , N'Nam‘ , '4/12/1994', N'Hà Ná»™i', 'L01')
  • 5. 2. Xem d li u trên b ngữ ệ ả SELECT * FROM <tên b ng>ả 3. C p nh t d li u:ậ ậ ữ ệ UPDATE <Tên b ng> SET <tên c t>= <giá trả á»™ ị m i>[ WHERE < i u ki n>]á»› Ä á» á»‡ 4. Xóa các dòng th a mãn i u ki n:á» Ä‘ Ỡệ DELETE FROM table_name WHERE <tên c t>=<giá tr >;á»™ ị 5. Xóa t t c các dòng nh ng v n gi nguyên c u trúc b ng:ấ ả Æ° ẫ ữ ấ ả DELETE FROM table_name; 5
  • 7. 7 Äược sá»­ dụng để truy xuất dữ liệu từ các dòng, các cá»™t của má»™t hay nhiá»u bảng Thá»±c hiện phép toán: Chá»n - Chiếu- Kết nối - Tính toán cÆ¡ bản Ngôn ngữ truy ±¹áº¥n II. Mệnh Ä‘á» Select..from..where
  • 8. 8 *Câu lệnh SELECT đầy đủ SELECT [DISTINCT |Top n |* ] <biểu thức/ cá»™t [AS <tên má»›i>],..> [INTO <tên bảng má»›i>] FROM <tên bảng> as [<bí danh>],... [WHERE <Ä‘iá»u kiện chá»n>] [GROUP BY < ds tên cá»™t gom nhóm>] [HAVING <Ä‘iá»u kiện lá»c nhóm>] [ORDER BY <tên cá»™t>[ASC|DESC],…]; Ngôn ngữ truy ±¹áº¥n
  • 9. 9 ï‚¡ Truy ±¹áº¥n có ba loại: - Truy ±¹áº¥n trên má»™t bảng - Truy ±¹áº¥n trên nhiá»u bảng - Truy ±¹áº¥n lồng Ngôn ngữ truy ±¹áº¥n
  • 10. 10 1. Truy ±¹áº¥n trên má»™t bảng ï‚¡ a. Truy v n n gi n:ấ Ä‘Æ¡ ả ï‚¡ <danh sách các c t>á»™ - Tên các thu c tính (c t) s c hi n th trong k t qu truy v n.á»™ á»™ ẽđượ ể ị ế ả ấ ï‚¡ <danh sách các b ng>ả - Tên các b ng liên quan l y k t quả để ấ ế ả ï‚¡ <bi u th c i u ki n>ể ứ Ä‘ Ỡệ - là i u ki n a vào ch n l c d li u, th ng g m:Ä‘ Ỡệ Ä‘Æ° để ỠỠữ ệ ưỠồ ï‚Ÿ Các phép toán so sánh: < , > , ≤ , ≥ , ≠ , = ï‚Ÿ Các phép toán logic: AND, OR, và NOT ï‚Ÿ Các t khóa: BETWEEN … AND, IN, EXISTS, LIKE…ừ SELECT <danh sách các cá»™t> FROM <danh sách các bảng> [WHERE <biểu thức Ä‘iá»u kiện>] Ngôn ngữ truy ±¹áº¥n
  • 11. 11 SELECT <danh sách các cá»™t> FROM <danh sách các bảng> WHERE <Ä‘iá»u kiện> σ Ï€ × SELECT L FROM R WHERE C Ï€L (σC (R)) ï‚¡ SQL và ÄSQH Ngôn ngữ truy ±¹áº¥n
  • 12. 12 Ví dụ ï‚¡ Ví dụ 1: Cho danh sách sinh viên gồm Mã SV, Há» tên, Ngày sinh của tất cả các sinh viên Select MaSV, TenSV, Ngaysinh from Sinhvien ï‚¡ Ví dụ 2: Cho danh sách sinh viên nữ thuá»™c lá»›p L02 Select * From Sinhvien Where (GT=N'Nữ') and (Lop='L02‘) ï‚¡ Ví dụ 3: Thêm định danh cho bảng và cho cá»™t (sá»­ dụng từ khóa as) select sv.MaSV, TenSV as 'Tên Sinh Viên' from Sinhvien as sv /* sau khi định danh cho bảng thì từ đó sá»­ dụng tên định danh*/ Ngôn ngữ truy ±¹áº¥n
  • 13. ï‚¡ Ví dụ 4: Xá»­ lý dữ liệu kiểu chuá»—i dùng Like hoặc not like để tìm chuá»—i gần đúng %: Thay thế 1 chuá»—i -: thay thế 1 ký tá»± ï‚¡ VD 4.1: Cho danh sách các sinh viên có tên là ‘Nga’ select * from sinhvien where TenSV like N'% Nga' ï‚¡ VD 4.2: Cho danh sách những sinh viên há» Trần select * from sinhvien where TenSV like N'Trần %' 13Ngôn ngữ truy ±¹áº¥n
  • 14. ï‚¡ Ví dụ 5: Sá»­ dụng BETWEEN <GT1> AND <GT2> để lấy những bản ghi thá»a mãn nằm giữa GT1 và GT2. Cho danh sách gồm mã sinh viên, ma môn há»c của sinh viên có Ä‘iểm từ 5 đến 7 select MaSv, MaMH from ketqua where diem between 5 and 7 ï‚¡ Note: Not Between .. and … có ý nghÄ©a ngược lại. 14Ngôn ngữ truy ±¹áº¥n
  • 15. ï‚¡ Ví dụ 6: Sá»­ dụng NULL/NOT NULL cho các trÆ°á»ng hợp sau: - Không biết - không xác định (value unknown) - Không thể áp dụng (value inapplicable) - Không tồn tại (value withheld) ï‚¡ VD: Cho danh sách gồm Mã Sinh viên và mã môn há»c của sinh viên không có Ä‘iểm thi select MaSV, MaMH from ketqua where Diem is Null 15Ngôn ngữ truy ±¹áº¥n
  • 16. ï‚¡ Ví dụ 7: Sá»­ dụng in: Cho danh sách các sinh viên có quê ở Hà Ná»™i hoặc Phú Thá» Select * From Sinhvien where que in (N'Hà ná»™i', N'Phú Thá»') ï‚¡ Ví dụ 8: Sá»­ dụng các toán tá»­ - Distinct : loại bá» các dòng dữ liệu trùng - Top n : lấy n dòng đầu tiên ï‚¡ VD 8.1: Liệt kê danh sách các tỉnh có sinh viên theo há»c tại trÆ°á»ng select distinct Que from Sinhvien 16Ngôn ngữ truy ±¹áº¥n
  • 17. ï‚¡ VD 8.2: Cho thông tin của hai sinh viên đầu tiên trong danh sách sinh viên select top (2) MaSV, TenSV,Que from Sinhvien 17Ngôn ngữ truy ±¹áº¥n
  • 18. Bài tập 1 ï‚¡ Bảng KHACHHANG( MK, TenK, DChi, SoDT ) ï‚¡ Bảng BAOCHI( MB, TenBao, Gia) ï‚¡ Bảng DATBAO( MK, MB, NgayDat, SoLuong) Viết câu lệnh SQL các truy ±¹áº¥n thá»±c hiện các yêu cầu sau: 1. Cho biết tên và thành tiá»n đặt mua báo của khách hàng tÆ°Æ¡ng ứng vá»›i từng ngày đặt 2. Cho biết há» tên – địa chỉ của khách hàng đặt mua báo có tên Nhân Dân trong năm 2014 3. Thông tin vá» các loại báo khách hàng đã đặt mua trong năm 2000. 4. Cho thông tin của báo chí có giá đắt nhất 19
  • 19. b. Hàm kết hợp ï‚¡ Äược sá»­ dụng để tính giá trị thống kê trên toàn bảng hoặc trên má»—i nhóm dữ liệu ï‚¡ Các hàm cÆ¡ bản: - Sum( [All | Distinct] biểu-thức), Avg( [All | Distinct] biểu-thức) - Count( [All | Distinct] biểu-thức) : đếm số dòng khác Null trong cá»™t, biểu thức. - Count(*) : đếm số dòng được chá»n trong bảng, kể cả Null - Max( biểu-thức ), Min( biểu-thức ) ï‚¡ Các hàm thá»±c hiện tính toán trên toàn bá»™ dữ liệu, bá» bá»›t giá trị trùng nhau thêm từ distinct Ngôn ngữ truy ±¹áº¥n 20
  • 20. 21 Ví dụ 9: ï‚¡ Tìm tổng lÆ°Æ¡ng, lÆ°Æ¡ng cao nhất, lÆ°Æ¡ng thấp nhất và lÆ°Æ¡ng trung bình của các nhân viên ï‚¡ NHANVIEN(MaNV, TenNV, GT, NS, DChi, Luong, MaPB) SELECT sum(Luong) AS [Tổng lÆ°Æ¡ng] , max(Luong) AS [LÆ°Æ¡ng cao nhất] , min(Luong) AS [LÆ°Æ¡ng thấp nhất] , avg(Luong) AS [LÆ°Æ¡ng trung bình] FROM NhanVien LUONG 3.000.000 2.500.000 2.500.000 4.000.000 Tổng lÆ°Æ¡ng LÆ°Æ¡ng cao nhất LÆ°Æ¡ng thấp nhất LÆ°Æ¡ng trung bình 12.000.00 0 3.000.0002.500.0004.000.000 Ngôn ngữ truy ±¹áº¥n
  • 21. 22 Ví dụ 10: SELECT sum(distinct Luong) AS [Tổng lÆ°Æ¡ng] FROM NhanVien LUONG 3.000.000 2.500.000 2.500.000 4.000.000 Ngôn ngữ truy ±¹áº¥n
  • 22. 23 ï‚¡ Ví dụ 11: Cho biết số lượng nhân viên của phòng 5 ï‚¡ NHANVIEN(MaNV, TenNV, GT, NS, DChi, Luong, MaPB) SELECT count(MNV) AS [Số nhân viên] FROM NhanVien WHERE MaPB = 5 Ngôn ngữ truy ±¹áº¥n
  • 23. 24 c. Mệnh Ä‘á» GROUP BY ï‚¡ Äể thá»±c hiện gom nhóm các bá»™ theo má»™t tiêu chí xác định để thá»±c hiện tính toán ï‚¡ Cú pháp ï‚¡ Sau khi gom nhóm - Má»—i nhóm các bá»™ sẽ có cùng giá trị tại các thuá»™c tính gom nhóm ï‚¡ CSDL gồm: - NHANVIEN(MaNV, TenNV, GT, NS, DChi, Luong, MaPB) - PHONG(MaP, TenP, DIADIEM) - DU_An(MaDA, TenDA, DiaDiem, MAPB) SELECT <DS cá»™t gom nhóm>, <Hàm tính toán> FROM <danh sách các bảng> [WHERE <biểu thức Ä‘iá»u kiện>] GROUP BY <DS cá»™t gom nhóm> HAVING <Ä‘iá»u kiện tính toán nhóm> Ngôn ngữ truy ±¹áº¥n
  • 24. 25 Ví dụ 12: ï‚¡ Vá»›i má»—i phòng, cho biết số dá»± án mà phòng đó Ä‘iá»u phối MaPB So du an 5 4 1 3 2 1 SELECT MaPB, count (Ma_DuAn) AS [So du an] FROM DUAN GROUP BY MaPB Kết quả: Cá»™t gom nhóm [Group By (MaPB)]Cá»™t tính toán [count (Ma_DuAn)] X Y Z 1 2 3 Da Nang Chu Lai Hue 5 5 5 Tin há»c hóa Phúc lợi 10 20 Quang Nam Quang Tri 4 4 Tái tổ chức 15 Da Nang 1 DUAN Ten_DuAn Ma_DuAn DiaDiem MaPB Ngôn ngữ truy ±¹áº¥n
  • 25. 26 Ví dụ 13: ï‚¡ Cho biết số lượng nhân viên của từng phòng ban Số NV 5 4 3 3 PHG 1 1 TENNV NGSINH DCHI PHAI LUONG MaPB TungNguyen 12/08/1955 638 NVC Q5 Nam 40000 5 HungNguyen 09/15/1962 Ba Ria VT Nam 38000 5 33344555 5 98798798 7 MANV MA_NQL 88866555 5 33344555 5 Thanh Manh TamTran 07/31/1972 543 MTL Q1 Nu 25000 5 HangBui 07/19/1968 33 NTH Q1 Nu 38000 4 45345345 3 99988777 7 33344555 5 98765432 1 Thanh Ngoc NhuLe 07620/1951 219 TD Q3 Nu 43000 498765432 1 88866555 5 Quynh QuangTran 04/08/1969 980 LHP Q5 Nam 25000 4 VinhPham 11/10/1945 450 TV HN Nam 55000 1 98798798 7 88866555 5 98765432 1 NULL Hong Van SELECT PHG, count (MaNV) AS [Số NV] FROM NHANVIEN GROUP BY MaPB Ngôn ngữ truy ±¹áº¥n
  • 26. 27 Ví dụ 14: ï‚¡ Cho biết những phòng ban tham gia từ 2 đỠán trở lên SELECT MaPB, count (Ma_DuAn) AS [So du an] FROM DUAN GROUP BY MaPB HAVING Count (Ma_DuAn) >= 2 X Y Z 1 2 3 Da Nang Chu Lai Hue 5 5 5 Tin há»c hóa Phúc lợi 10 20 Quang Nam Quang Tri 4 4 Tái tổ chức 15 Da Nang 1 DUAN Ten_DuAn Ma_DuAn DiaDiem MaPB MaPB So du an Kết quả: 5 4 3 2 bị loại ra Ngôn ngữ truy ±¹áº¥n
  • 27. Nhận xét ï‚¡ Thứ tá»± thá»±c hiện câu truy ±¹áº¥n có mệnh Ä‘á» GROUP BY và HAVING - (1) Chá»n ra những dòng thá»a Ä‘iá»u kiện trong mệnh Ä‘á» WHERE - (2) Những dòng này sẽ được gom thành nhiá»u nhóm tÆ°Æ¡ng ứng vá»›i mệnh Ä‘á» GROUP BY - (3) Ãp dụng các hàm kết hợp cho má»—i nhóm - (4) Bá» qua những nhóm không thá»a Ä‘iá»u kiện trong mệnh Ä‘á» HAVING - (5) Rút trích các giá trị của các cá»™t và hàm kết hợp trong mệnh Ä‘á» SELECT 29Ngôn ngữ truy ±¹áº¥n
  • 28. 30 4. Mệnh Ä‘á» ORDER BY ï‚¡ Hiển thị kết quả câu truy ±¹áº¥n theo má»™t thứ tá»± nào đó trên các cá»™t ï‚¡ Cú pháp - ASC (ASCending): tăng (mặc định) - DESC (DESCending): giảm SELECT <danh sách các thuá»™c tính> FROM <danh sáchcác bảng> WHERE <biểu thức Ä‘iá»u kiện> ORDER BY <thuá»™c tính sắp xếp> [ASC | DESC] Ngôn ngữ truy ±¹áº¥n
  • 29. 31 Ví dụ 12: ï‚¡ Vá»›i má»—i phòng ban, cho biết mã phòng và mã nhân viên trong phòng đó. Sắp xếp theo thứ tá»± giảm dần của mã phòng và tăng dần của mã nhân viên. 02 03 05 04 06 Nguyen Tung Le Loi -DN Nam 5 Le Thi Buoi Tran Phu -DN Nu 5 01 TENNV DCHI GT MaPBMANV Le Nam Yen Bay -DN Nam 4 Tran Thi B Le Duan -DN Nu 4 Thai Thi Hoa Hoa Khanh -DNNu 1 Tran A Dien Ban -QN Nam 5 SELECT MaPB, MaNV FROM NHANVIEN ORDER BY MaPB DESC, MaNV Ngôn ngữ truy ±¹áº¥n
  • 30. 2. Truy ±¹áº¥n dữ liệu trên nhiá»u bảng ï‚¡ Có hai cách kết nối bảng: - Sá»­ dụng mệnh Ä‘á» where - Sá»­ dụng Join/inner Join/Left Join/Right Join/Full Join ï‚¡ Trong đó: Join, inner Join và where là tÆ°Æ¡ng Ä‘Æ°Æ¡ng nhau ï‚¡ Cú pháp: SELECT <ds cá»™t> FROM <Tên bảng> WHERE <Ä‘iá»u kiện nối hai bảng> ï‚¡ Ví dụ: SELECT TENNV, TENPB FROM NHANVIEN, PHONGBAN WHERE NHANVIEN.MAPB = PHONGBAN.MAPB 32Ngôn ngữ truy ±¹áº¥n
  • 31. Nối bảng vá»›i INNER|LEFT|RIGHT|FULL JOIN  Cú pháp: SELECT <danh sách cá»™t> FROM table1 INNER|LEFT|RIGHT|FULL JOIN table2 ON <Ä‘iá»u kiện nối> 33Ngôn ngữ truy ±¹áº¥n
  • 32. Nối bảng vá»›i INNER|LEFT|RIGHT|FULL JOIN ï‚¡ INNER JOIN/JOIN: trả vá» các dòng của hai bảng thá»a mãn Ä‘iá»u kiện nối ï‚¡ LEFT JOIN: trả vá» các dòng của bảng thứ nhất dù ở bảng 2 không thá»a mãn Ä‘iá»u kiện nối. Nếu dữ liệu có ở bảng 1 không có ở bảng 2 vẫn hiển thị ï‚¡ RIGHT JOIN: trả vá» các dòng của bảng2 dù ở bảng 1 không thá»a mãn Ä‘iá»u kiện nối. Nếu dữ liệu có ở bảng 2 không có ở bảng 1 vẫn hiển thị. ï‚¡ FULL JOIN: trả vá» các dòng của hai bảng, nếu không có dữ liệu thá»a mãn Ä‘iá»u kiện thì gán bằng NULL. 34Ngôn ngữ truy ±¹áº¥n
  • 33. Ví dụ: ï‚¡ Cho bảng dữ liệu: Khachhang và Hoadon 35 MaKH TenKH 01 Trần Nhật Lệ 02 Lê Thị Nhàn 03 Hoàng Lê Minh 04 Bùi Ngá»c Quang MaKH MaSP TenSP 01 A100 Quạt máy 01 A102 Tủ lạnh 03 A120 Máy giặt 05 A230 Ti vi Ngôn ngữ truy ±¹áº¥n
  • 34. INNER JOIN SELECT TenKH, TenSP FROM Khachhang INNER JOIN hoadon ON Khachhang.MaKH = Hoadon.MaKH 36 TenKH TenSP Trần Nhật Lệ Quạt máy Trần Nhật Lệ Tủ lạnh Hoàng Lê Minh Máy giặt Ngôn ngữ truy ±¹áº¥n
  • 35. SELECT TenKH, TenSP FROM Khachhang LEFT JOIN hoadon ON Khachhang.MaKH = Hoadon.MaKH 37 TenKH TenSP Trần Nhật Lệ Quạt máy Trần Nhật Lệ Tủ lạnh Lê Thị Nhàn NULL Hoàng Lê Minh Máy giặt Bùi Ngá»c Quang NULL Ngôn ngữ truy ±¹áº¥n
  • 36. SELECT TenKH, TenSP FROM Khachhang RIGHT JOIN hoadon ON Khachhang.MaKH = Hoadon.MaKH 38 TenKH TenSP Trần Nhật Lệ Quạt máy Trần Nhật Lệ Tủ lạnh Hoàng Lê Minh Máy giặt NULL Tivi Ngôn ngữ truy ±¹áº¥n
  • 37. SELECT TenKH, TenSP FROM Khachhang FULL JOIN hoadon ON Khachhang.MaKH = Hoadon.MaKH 39 TenKH TenSP Trần Nhật Lệ Quạt máy Trần Nhật Lệ Tủ lạnh Lê Thị Nhàn NULL Hoàng Lê Minh Máy giặt Bùi Ngá»c Quang NULL NULL Tivi Ngôn ngữ truy ±¹áº¥n
  • 38. Thứ tá»± xá»­ lý của lệnh SELECT 40Ngôn ngữ truy ±¹áº¥n
  • 39. 3. Truy ±¹áº¥n lồng ï‚¡ Là thá»±c hiện lồng ghép nhiá»u câu lệnh SELECT vá»›i nhau ï‚¡ Câu truy ±¹áº¥n con thÆ°á»ng trả vá» má»™t tập các giá trị ï‚¡ Các câu truy ±¹áº¥n con trong cùng má»™t mệnh Ä‘á» WHERE được kết hợp bằng phép nối logic vá»›i Mệnh Ä‘á» WHERE của câu truy ±¹áº¥n cha: - <biểu thức> <so sánh tập hợp> <truy ±¹áº¥n con> - So sánh tập hợp thÆ°á»ng Ä‘i cùng vá»›i má»™t số toán tá»­ ï‚Ÿ IN, NOT IN ï‚Ÿ ALL ï‚Ÿ ANY hoặc SOME - Kiểm tra sá»± tồn tại ï‚Ÿ EXISTS ï‚Ÿ NOT EXISTS 41Ngôn ngữ truy ±¹áº¥n
  • 40. ï‚¡ Cú pháp truy ±¹áº¥n lồng: 42 SELECT <danh sách các cá»™t> FROM <danh sách các bảng> WHERE <biểu thức> <so sánh tập hợp> ( SELECT <danh sách các cá»™t> FROM <danh sách các bảng> WHERE <Ä‘iá»u kiện>) Câu truy ±¹áº¥n cha (Outer query) Câu truy ±¹áº¥n con (Subquery) Ngôn ngữ truy ±¹áº¥n
  • 41. ï‚¡ Có 2 loại truy ±¹áº¥n lồng - Lồng phân cấp ï‚Ÿ Mệnh Ä‘á» WHERE của truy ±¹áº¥n con không tham chiếu đến thuá»™c tính của các quan hệ trong mệnh Ä‘á» FROM ở truy ±¹áº¥n cha ï‚Ÿ Khi thá»±c hiện, câu truy ±¹áº¥n con sẽ được thá»±c hiện trÆ°á»›c - Lồng tÆ°Æ¡ng quan ï‚Ÿ Mệnh Ä‘á» WHERE của truy ±¹áº¥n con tham chiếu ít nhất má»™t thuá»™c tính của các quan hệ trong mệnh Ä‘á» FROM ở truy ±¹áº¥n cha ï‚Ÿ Khi thá»±c hiện, câu truy ±¹áº¥n con sẽ được thá»±c hiện nhiá»u lần, má»—i lần tÆ°Æ¡ng ứng vá»›i má»™t bá»™ của truy ±¹áº¥n cha 43Ngôn ngữ truy ±¹áº¥n
  • 42. 44 Ví dụ 1: cho danh sách mã sinh viên, tên sv có Ä‘iểm thi >8  Cách 1: sá»­ dụng truy ±¹áº¥n thông thÆ°á»ng select a.masv, tensv from sinhvien as a, ketqua as b where (a.masv=b.masv) and (diem>8)  Cách 2: sá»­ dụng truy ±¹áº¥n lồng phân cấp select Masv, tensv from sinhvien where Masv in ( select Masv from ketqua where (diem>8)) Ngôn ngữ truy ±¹áº¥n
  • 43. 45  Cách 3: select Masv, tensv from sinhvien as a where exists (select * from ketqua as b where (a.MaSV=b.MaSV) and (diem>8)) Ngôn ngữ truy ±¹áº¥n
  • 44. ï‚¡ Giả sá»­ có các bảng CSDL nhÆ° sau: - Nhanvien(MaNV, HT, NS, GT, Luong, MaP) - Phong(MaP, TenP, MNQL, NgayQL) - DuAn(MaDa,TenDA, DiaDiem,MaP) - NV_DA(MaNV, MaDA, Sogio) 46Ngôn ngữ truy ±¹áº¥n
  • 45. ï‚¡ Ví dụ 2: Tìm những nhân viên thá»±c hiện ít nhất má»™t dá»± án nào đó SELECT * FROM NHANVIEN WHERE EXISTS (SELECT * FROM NV_DA WHERE NHANVIEN.manv= NV_DA.manv); 47Ngôn ngữ truy ±¹áº¥n
  • 46. ï‚¡ Ví dụ 3: Tìm tên nhân viên có lÆ°Æ¡ng cao hÆ¡n tất cả các nhân viên khác? SELECT Hoten FROM NHANVIEN WHERE luong >= ALL (SELECT luong FROM NHANVIEN); Mệnh Ä‘á» trên tÆ°Æ¡ng Ä‘Æ°Æ¡ng vá»›i SELECT Hoten FROM NHANVIEN WHERE luong = (SELECT MAX (luong) FROM NHANVIEN); 48Ngôn ngữ truy ±¹áº¥n
  • 47. ï‚¡ Ví dụ 4: Tìm tên những dá»± án mà nhân viên có mã số 7 đã thá»±c hiện? SELECT tenda FROM DUAN WHERE mada= ANY(SELECT mada FROM NV_DA WHERE manv = 7); Select tenda from Duan, NV_DA Where Duan.MaDA=NV_DA.MaDA and MaNV=7 49Ngôn ngữ truy ±¹áº¥n
  • 48. 4. Phép toán tập hợp ï‚¡ Gồm: - UNION Hợp - INTERSECT Giao - EXCEPT Trừ ï‚¡ Chú ý: Các trÆ°á»ng trong select phải giống nhau má»›i thá»±c hiện được 50Ngôn ngữ truy ±¹áº¥n
  • 49. Ví dụ ï‚¡ + Ví dụ 1: Cho danh sách mã sinh viên của những sinh viên không có bất kỳ má»™t Ä‘iểm thi của má»™t môn há»c nào. select MasV from Sinhvien Except select Masv from ketqua where diem not null 51Ngôn ngữ truy ±¹áº¥n
  • 50. Ví dụ 2: Cho danh sách tên của các sinh viên có đủ Ä‘iểm hai môn vá»›i mã môn há»c là 1 và 3 select distinct tensv from Sinhvien as a, Ketqua as b where a.MaSV = b.MaSV and MaMH=1 Intersect select distinct tensv from Sinhvien as a, Ketqua as b where a.MaSV = b.MaSV and MaMH=3 52Ngôn ngữ truy ±¹áº¥n
  • 51. III. Hàm trong SQL ï‚¡ SQL có các loại hàm sau: - Các hàm tập hợp - Hàm chuyển đổi kiểu dữ liệu - Hàm ngày tháng - Hàm toán há»c - … 53Ngôn ngữ truy ±¹áº¥n
  • 52. *Hàm tính gá»™p ï‚¡SUM( col_name ) ï‚¡AVG( col_name ) ï‚¡COUNT ( col_name ) | COUNT( * ) ï‚¡MAX( col_name ) ï‚¡MIN( col_name ) Ngôn ngữ truy ±¹áº¥n 54
  • 53. *Hàm toán há»c ï‚¡ABS( num_expr ) ï‚¡POWER( num_expr, y ) ï‚¡ROUND( num_expr, length ) ï‚¡SQRT( float_expr) Ngôn ngữ truy ±¹áº¥n 55
  • 54. ï‚¡ Äược dùng để thao tác giá trị ngày tháng ï‚¡ Gồm: - GETDATE( ) - DAY( date ), MONTH( date ), YEAR( date ) - DATEDIFF( datepart, date1, date2 ) - DATEADD( datepart, number, date ) - DATENAME( datepart, date ) - DATEPART( datepart, date ) *Hàm ngày tháng 58Ngôn ngữ truy ±¹áº¥n
  • 55. 59Ngôn ngữ truy ±¹áº¥n ÄÆ¡n vị thá»i gian Ký hiệu Values Hour hh 0-23 Minute Mi, n 0-59 Second Ss, s 0-59 Day of Year Dy, y 1-366 Day Dd, d 1-31 Week Wk, www 1-53 Month Mm, m 1-12 Quarter Qq, q 1-4 Year Yy, yyyy 1753-9999
  • 56. *Hàm xá»­ lý chuá»—i ï‚¡ Dùng để tách, thay thế và tÆ°Æ¡ng tác vá»›i chuá»—i ký tá»± ï‚¡ Gồm: - LEFT( string, number), RIGHT( string, number ) - LOWER( string ), UPPER( string ) - LTRIM( string ), RTRIM( string ) - LEN( string ) Ngôn ngữ truy ±¹áº¥n 60
  • 57. ï‚¡ Cho má»™t cÆ¡ sở dữ liệu gồm các bảng và các trÆ°á»ng tÆ°Æ¡ng ứng nhÆ° sau: ï‚¡ SACH ( Masach, Tensach, Tentacgia, Nhaxuatban, Soluong) ï‚¡ DOCGIA( Sothe, Tendocgia, Khoa, Khoahoc, Thoihanthe) ï‚¡ PHIEUMUON( Masach, Sothe, ngaymuon, ngaytra, datra, ghichu) - Thiết lập các ràng buá»™c dữ liệu trên các bảng: PK, FK, CHECK, DEFAULT,.. - Nhập 1 bản ghi vào má»—i bảng - Thá»±c hiện xóa, cập nhật dữ liệu trên má»™t bảng bất kì vá»›i Ä‘iá»u kiện phù hợp. - Hiển thị tên, khoa của các Ä‘á»™c giả và sắp xếp theo khoa? - Tìm những Ä‘á»™c giả mượn sách Toán cao cấp vào ngày 20/5/2003? - Hiển thị tên, số thẻ, tên sách của tất cả Ä‘á»™c giả mượn sách trong tháng 5/2003 - Danh sách các sách không ai mượn - Cho biết Ä‘á»™c giả tên A mượn sách bao nhiêu lần Ngôn ngữ truy ±¹áº¥n 61
  • 58. Bài tập áp dụng ï‚¡ NHANVIEN(MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL) ï‚¡ HANG(MaHang, TenHang, NhaSX, TGianBaoHanh) ï‚¡ KHACHHANG(MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email) ï‚¡ HOADONXUAT(MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT) ï‚¡ CT_HOADON(MaHD, MaHang, SoLuongMua, DonGia) ï‚¡ Viết câu lệnh truy ±¹áº¥n đầy đủ thá»±c hiện yêu cầu sau: - Cho danh sách há» tên của nhân viên sinh vào tháng 3 hoặc tháng 10 - Cho danh sách há» tên và địa chỉ của các khách hàng có sá»­ dụng gmail - Cho biết tuổi cao nhất hiện nay của các nhân viên - Cho danh sách khách hàng có địa chỉ không thuá»™c quận Äống Äa hoặc quận Hoàng Mai - Cho danh sách các tên hàng không bán được mặt hàng nào - Tính tổng số tiá»n của từng hóa Ä‘Æ¡n xuất - Liệt kê danh sách các khách hàng đã mua trên 10 triệu - Cho danh sách các mặt hàng đã được mua trong năm 2014 và tổng tiá»n trên 10 triệu Ngôn ngữ truy ±¹áº¥n 62
  • 59. Bài tập áp dụng (tiếp) ï‚¡ NHANVIEN(MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL) ï‚¡ HANG(MaHang, TenHang, NhaSX, TGianBaoHanh) ï‚¡ KHACHHANG(MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email) ï‚¡ HOADONXUAT(MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT) ï‚¡ CT_HOADON(MaHD, MaHang, SoLuongMua, DonGia) ï‚¡ Viết câu lệnh truy ±¹áº¥n đầy đủ thá»±c hiện yêu cầu sau: - Tính tổng số tiá»n đã bán được của từng hóa Ä‘Æ¡n - Tính tổng số lượng và tổng số tiá»n đã bán được của từng mặt hàng - Tính tổng số lượng và tổng số tiá»n đã bán được của từng mặt hàng trong năm 2013 - Tính tổng số tiá»n đã mua hàng của từng khách hàng, thống kê dá»±a vào tên khách hàng - Cho biết tên mặt hàng đã bán vá»›i số lượng nhiá»u nhất Ngôn ngữ truy ±¹áº¥n 63
  • 60. Ví dụ ï‚¡ NHANVIEN ( MANV, HOTen, NS, GT, HSL, DC, MAPB, NgayVL) ï‚¡ PHONGBAN ( MAPB, TENDV , MaTP, NgayBD, SoNV) ï‚¡ DIADIEM_PB ( MaPB, DiaDiem) ï‚¡ DUAN ( MADA, TENDA, DIADIEM, NgBD, MAPB) ï‚¡ THANNHAN ( HOTEN, NS, GT, QuanHe, MANV) ï‚¡ PHANCONG ( MADA, MANV, SoGio, NgLamDA) ï‚¡ Xây dá»±ng câu lệnh truy ±¹áº¥n thá»±c hiện yêu cầu sau: 1. Cho biết tổng lÆ°Æ¡ng của từng phòng ban 2. Cho tên phòng ban có tổng lÆ°Æ¡ng trên 10 triệu 3. Cho tên phòng ban có tổng số nhân viên dÆ°á»›i 5 4. Cho biết tên nhân viên và tổng số giỠđã tham gia dá»± án của nhân viên đó 5. Cho biết tổng số nhân viên đã tham gia làm cho từng dá»± án theo tên dá»± án 6. Cho biết số dá»± án đã thá»±c hiện của từng phòng ban 7. Cho biết tên dá»± án và tổng số giá» làm của các nhân viên cho dá»± án đó 8. Cho biết tên của nhân viên có số giá» làm cho dá»± án là nhiá»u nhất 9. Cho biết tên của phòng ban có tổng lÆ°Æ¡ng thấp nhất Ngôn ngữ truy ±¹áº¥n 64
  • 61. Bài tập vá» nhà ï‚¡Thiết kế CSDL của Bài tập lá»›n ï‚¡Sá»­ dụng câu lệnh Create để tạo các bảng tÆ°Æ¡ng ứng ï‚¡In (vẽ) sÆ¡ đồ liên kết giữa các bảng ná»™p đầu giá» cho GV kiểm tra - Ghi rõ tên Ä‘á» bài - Tên sinh viên và tên lá»›p tÆ°Æ¡ng ứng ï‚¡Chuẩn bị bá»™ dữ liệu có nghÄ©a để chèn vào các bảng Ngôn ngữ truy ±¹áº¥n 65
  • 62. Bài tập áp dụng ï‚¡ NHANVIEN( MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL) ï‚¡ HANG( MaHang, TenHang, NhaSX, TGianBaoHanh, DonGia) ï‚¡ KHACHHANG( MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email) ï‚¡ HOADONXUAT( MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT) ï‚¡ CT_HOADON( MaHD, MaHang, SoLuongMua, GiamGia) ï‚¡ Viết câu lệnh truy ±¹áº¥n đầy đủ thá»±c hiện yêu cầu sau: - Cho danh sách các nhân viên nữ đã bán được hàng vào tháng 3 - Cho danh sách khách hàng sá»­ dụng thuê bao Viettel đã thanh toán tiá»n trá»±c tiếp khi mua hàng - Cho danh sách tên các mặt hàng chÆ°a bán được hàng nào - Cho danh sách nhân viên có lÆ°Æ¡ng cao nhất - Cho danh sách khách hàng ở Äống Äa đã đến mua hàng - Thống kê tổng số tiá»n của từng hóa Ä‘Æ¡n đã bán trong tháng 3 - In ra danh sách các hóa Ä‘Æ¡n trong tháng 3 đã tổng trị giá > 10 triệu - Cho biết tổng số loại hàng đã được bán của từng hóa dÆ¡n Ngôn ngữ truy ±¹áº¥n 66
  • 63. Bài tập thá»±c hành (tiếp) ï‚¡ NHANVIEN( MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL) ï‚¡ HANG( MaHang, TenHang, NhaSX, TGianBaoHanh, DonGia) ï‚¡ KHACHHANG( MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email) ï‚¡ HOADONXUAT( MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT) ï‚¡ CT_HOADON( MaHD, MaHang, SoLuongMua, GiamGia) ï‚¡ Viết câu lệnh truy ±¹áº¥n đầy đủ thá»±c hiện yêu cầu sau (tiếp) - Cho biết tổng số hóa Ä‘Æ¡n đã được lập của má»—i nhân viên - Cho biết tổng số tiá»n đã bán hàng của má»—i nhân viên trong tháng 3 - Cho biết tổng số tiá»n đã mua hàng của từng khách hàng theo tên khách hàng - Cho biết tổng số lượng đã bán của từng mặt hàng, theo tên trong tháng 3 - Cho biết đã lập bao nhiêu hóa Ä‘Æ¡n trong năm 2012 Ngôn ngữ truy ±¹áº¥n 67

Editor's Notes

  • #3: BTVN: Tạo CSDL “Quản lý dá»± ánâ€
  • #4: BTVN: Tạo CSDL “Quản lý dá»± ánâ€
  • #5: NHANVIEN (MANV, TENNV, NS, DCHI, GT, LUONG, PHG)
  • #6: BTVN: Tạo CSDL “Quản lý dá»± ánâ€
  • #11: Danh sach cac thuoc tinh can duoc cach nhau boi dau ,
  • #21: Sum, Avg, Count, Min, Max: bá» qua giá trị NULL khi tính toán Count(*): không bá» quá giá trị NULL
  • #43: Mệnh Ä‘á» WHERE của cấu truy ±¹áº¥n cÆ¡ bản gồm các thuá»™c tính Ä‘Æ¡n, phép so sánh vá»›i hằng số
  • #54: Hàm là tập lệnh SQL để thá»±c hiện công việc nào đó Hàm trong SQL làm việc vá»›i dữ liệu, nhóm dữ liệu để trả vá» má»™t kết quả mong đợi
  • #55: SUM( col_name ) Hàm tính tổng, trả vá» tổng giá trị của col_name SELECT SUM(OrderQty) AS Total FROM Purchasing.PurchaseOrderDetail AVG( col_name ) Trả tính giá trị trung bình SELECT AVG(UnitPrice * OrderQty) AS AveragePrice FROM Purchasing.PurchaseOrderDetail COUNT Äếm số bản ghi trong bảng SELECT COUNT(*) AS ‘Number of Large Orders’ FROM Purchasing.PurchaseOrderDetail WHERE OrderQty &amp;gt; 100 MAX( col_name ) Trả vá» giá trị lá»›n nhất SELECT MAX(OrderQty * UnitPrice) AS ‘Largest Order’ FROM Purchasing.PurchaseOrderDetail MIN( col_name ) Trả vá» giá trị nhá» nhất SELECT MIN(OrderQty * UnitPrice) AS ‘Smallest Order’ FROM Purchasing.PurchaseOrderDetail
  • #56: CEILING(num_expr) Trả vá» giá trị nhá» nhất lá»›n hÆ¡n hoặc bằng num_expr SELECT CEILING(43.5) returns 44 FLOOR(num_expr) Trả vá» giá trị lá»›n nhất nhá» hÆ¡n hoặc bằng num_expr SELECT FLOOR(43.5) returns 43 ABS(num_expr): Trả vá» giá trị tuyệt đối SELECT ABS(-43) return 43 POWER(num_expr,y):Hàm lÅ©y thừa SELECT POWER(5,2) returns 25 ROUND(num_expr,length):Hàm làm tròn SELECT ROUND(43.543,1) returns 43.500 SQRT(float_expr):Hàm căn bậc hai SELECT SQRT(9) returns 3
  • #57: Vá»›i cú pháp hàm CAST bên dÆ°á»›i cho phép bạn có thể chuyển đổi má»™t biểu thức nào đó sang má»™t kiểu dữ liệu bất kỳ mong muốn. Thông thÆ°á»ng đối vá»›i các kiểu dữ liệu image, text, ntext rất hạn chế trong việc chuyển đổi qua lại các kiểu dữ liệu khác. CAST ( expression AS data_type [ ( length ) ] ) expressionIs any validÌýexpression. data_typeIs the target data type. This includesÌýxml,Ìýbigint, andÌýsql_variant. Alias data types cannot be used. lengthIs an optional integer that specifies the length of the target data type. The default value is 30. styleIs an integer expression that specifies how the CONVERT function is to translateÌýexpression. If style is NULL, NULL is returned. The range is determined byÌýdata_type. For more information, see the Remarks section. Vá»›i cú pháp hàm CONVERT bên dÆ°á»›i cho phép bạn có thể chuyển đổi má»™t biểu thức nào đó sang má»™t kiểu dữ liệu bất kỳ mong muốn nhÆ°ng có thể theo má»™t định dạng nào đó (đặc biệt đối vá»›i kiểu dữ liệu ngày). CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) DECLARE @myval decimal (5, 2); SET @myval = 193.57; SELECT CAST(CAST(@myval AS varbinary(20)) AS decimal(10,5)); -- Or, using CONVERT SELECT CONVERT(decimal(10,5), CONVERT(varbinary(20), @myval)); Vá»›i cú pháp hàm STR bên dÆ°á»›i cho phép bạn có thể chuyển đổi kiểu dữ liệu số sang kiểu dữ liệu chuá»—i. Phải đảm bảo đủ vùng trắng để chứa các ký số khi chuyển đổi sang kiểu dữ liệu chuá»—i. STR ( float_expression [ , length [ , decimal ] ] ) float_expressionIs an expression of approximate numeric (float) data type with a decimal point. Length Is the total length. This includes decimal point, sign, digits, and spaces. The default is 10. decimalIs the number of places to the right of the decimal point.ÌýdecimalÌýmust be less than or equal to 16. IfÌýdecimalÌýis more than 16 then the result is truncated to sixteen places to the right of the decimal point. VD: SELECT STR(123.45, 6, 1) Kết quả: 123.5 SELECT STR(123.45, 2, 2) GO Kết quả: **
  • #59: Hàm ngày tháng Äược dùng để thao tác giá trị ngày tháng Hàm ngày tháng cho phép chúng ta lấy má»™t phần của giá trị ngày tháng nhÆ°: lấy ngày, tháng hoặc năm DATEPART: là má»™t phần giá trị ngày tháng, được kết hợp sá»­ dụng trong hàm ngày tháng để lấy má»™t phần nào đó của giá trị ngày tháng GETDATE(): Trả vá» ngày hiện tại của hệ thống SELECT GETDATE() DATEADD(datepart,number,date): Cá»™ng vào thêm number giá trị vào date SELECT DATEADD(mm,4,’01/01/99’) - returns 05/01/99 in the current date format DATEDIFF(datepart,date1,date2): So sánh giữa hai giá trị ngày tháng SELECT DATEDIFF(mm,’01/01/99’,’05/01/99’) - returns 4 DATENAME(datepart,date): Trả vá» giá trị ngày tháng dÆ°á»›i dạng chuá»—i SELECT DATENAME(dw,’01/01/2000’) - returns Saturday DATEPART(datepart,date): Trả vá» má»™t phần giá trị ngày tháng SELECT DATEPART(day,’01/15/2000’) - returns 15 DAY(date), MONTH(date), YEAR(date)
  • #61: REPLACE( string1, string2, string3 ): thay thế trong chuá»—i 1, các chuá»—i 2 thành chuá»—i 3 CHARINDEX(string1, string2 [,start]):Hàm trả vá» vị trí đầu tiên tính từ vị trí start tại đó chuá»—i string1 xuất hiện trong chuá»—i string2. CHAR(ascii_code): Hàm trả vá» ký tá»± có mã ASCII tÆ°Æ¡ng ứng vá»›i đối số ASCII(string): Hàm trả vá» mã ASCII của ký tá»± đầu tiên bên trái của chuá»—i đối số Ký tá»± đại diện %: đại diện cho sá»± xuất hiện của nhiá»u ký tá»± _: đại diện cho sá»± xuất hiện của má»™t ký tá»± ASCII( char ) CHAR( ascii_code ) CHARINDEX( string1, string2 [, start] ) REPLACE( string1, string2, string3 ) REVERSE( string )
  • #63: Cho danh sách tên các khách hàng đã mua hàng trong 3 ngày gần đây Cho biết danh sách các mặt hàng đã được bán trong 1 tuần gần đây Lập danh sách gồm các thông tin: tên khách hàng, tên mặt hàng, số lượng, Ä‘Æ¡n giá, thành tiá»n và ngày mua hàng
  • #64: Cho biết tên mặt hàng đã bán vá»›i số lượng ít nhất trong năm 2013 Cho biết danh sách các mặt hàng chÆ°a bán được sản phẩm nào
  • #67: Cho biết tên mặt hàng đã bán vá»›i số lượng ít nhất trong năm 2013 Cho biết danh sách các mặt hàng chÆ°a bán được sản phẩm nào