1
TRUY XUẤT CSDL
Ngôn ngữ thao tác dữ liệu – DMC và DCL
Bài 6
2
Accessing and Modifying Data
1. Truy xuất dữ liệu – Lệnh Select
– Truy vấn đơn giản
– Truy vấn từ nhiều bảng
– Truy vấn con - SubQuery
– Các mệnh đề EXISTS, DISTINCT, COMPUTE BY
2. Sửa chữa dữ liệu
– Lệnh INSERT
– Lệnh UPDATE
– Lệnh DELETE
3
Cú pháp lệnh Select
SELECT [ALL | DISTINCT] [TOP n [WITH TIES]] select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
• ORDER BY : Sắp xếp
• WHERE: Điều kiện
• GROUP BY: Nhóm
• HAVING: Điều kiện nhóm
Example
8
Truy vấn đơn giản
Đặt tên cho cột mới
Syntax
SELECT <column1> as <'alias'>
FROM <tablename>
SELECT FirstName +‟ „ +LastName AS
„EmployeeName' FROM Employees
Example
9
Tạo cột tính toán
SELECT Orderid, Quantity*UnitPrice AS
„Total'
FROM [Order details]
Example
Truy vấn đơn giản
10
Loại bỏ những dòng trùng nhau
Syntax
SELECT DISTINCT <column1>
FROM <tablename>
SELECT DISTINCT Customerid
FROM Orders
Example
Truy vấn đơn giản
diadiem
TP HCM
HA NOI
TP HCM
Greater Than >
Equal To =
Meaning
14
Phép toán Logical
Phép toán và AND
SELECT Orderid, orderdate, customerid
FROM Orders
WHERE Month(Orderdate) = 7 AND
Year(Orderdate)=1996
Example
15
Phép toán Logical
OR operator
SELECT * FROM Orders
WHERE Customerid = „TOMSP‟ OR
Customerid = „HANAR‟
Example
16
Logical Operators (contd.)
NOT operator
SELECT * FROM Orders
WHERE NOT Employeeid = 10
Example
17
Wildcard Characters
Example
SELECT Meal_Code FROM Meal
SELECT * FROM flight WHERE
aircraft_code LIKE ‘9W0[^1-2]’
18
Các toán tử SQL
• LIKE: giống 1 chuỗi
• IS NOT NULL: không phải giá trị rỗng
• BETWEEN…AND: giữa 2 giá trị
• IN: đạt giá trị trong 1 danh sách
• ALL/ ANY (SOME): được dùng trong lệnh truy vấn con và kết
quả là nhiều dòng.
<ANY: Nhỏ hơn trị cao nhất
>ANY: Lớn hơn trị thấp nhất
=ANY: Tương đương với IN
>ALL: Lớn hơn trị cao nhất
<ALL: Nhỏ hơn trị thấp nhất
• EXIST: kiểm tra sự tồn tại của 1 dữ liệu trong nhiều dòng.
19
Các hàm SQL
• Day(Biểu thức ngày): Trả về ngày
• Month(Biểu thức ngày): Trả về tháng
• Year(Biểu thức ngày): Trả về năm
• GetDate(): Trả về ngày giờ hệ thống
• Max(dãy giá trị): Trả về giá trị lớn nhất trong dãy
• Min(dãy giá trị): Trả về giá trị nhỏ nhất trong dãy
• Avg(dãy giá trị): Trả về giá trị trung bình của dãy
• Count(dãy giá trị): Đếm số dòng.
• Sum(dãy giá trị): Trả về tổng các giá trị trong dãy
19
• Danh sách các hoá đơn do nhan viên có tên bắt dầu là D lập
SELECT Orders.Orderid, LastName +‟ „+FirstName as
EmployeeName
FROM Employees, Orders
WHERE Employees.employeeid = Orders.Employeeid And
LastName like „D%‟
• Danh sách các hoá đơn do nhan viên có country là USA lập
SELECT O.Orderid, LastName +‟ „+FirstName as EmployeeName
FROM Employees E, Orders O
WHERE E.employeeid =O.Employeeid And Country =„USA‟
Truy vấn từ nhiều bảng & Where
(điều kiện kết nối)
23
Sắp xếp - ORDER BY Clause
Xác định thứ tự của bộ kết quả
Cú pháp
[ ORDER BY { order_by_expression [ ASC | DESC ] } [ , n] ]
ASC (ascending) : xếp theo thứ tự tăng
DESC (descending): xếp theo thứ tự giảm
24
Nhóm dữ liệu trong bảng kết quả
• Những mệnh đề dùng để nhóm dữ trong bảng kết quả:
– GROUP BY: tổng hợp bảng kết quả theo nhóm bằng
cách dùng các hàm gộp
– COMPUTE và COMPUTE BY: mệnh đề COMPUTE
trong lệnh SELECT được dùng để phát ra các hàng tổng
hợp bằng cách dùng hàm gộp. Mệnh đề COMPUTE BY