Professional Documents
Culture Documents
CSDL07 SQL01 New
CSDL07 SQL01 New
2
Nội dung bài cũ
3
Nội dung bài cũ
Ngôn ngữ định nghĩa dữ liệu (Data Definition
Language - DDL):
Lược đồ quan hệ (Tables)
Miền giá trị của từng thuộc tính (Columns)
Ràng buộc toàn vẹn (Contrains)
Các câu lệnh SQL:
CREATE TABLE
DROP TABLE
ALTER TABLE
Bài tập (nộp trên Canvas và chữa trong bu ổi TH) 4
Truy vấn dữ liệu là gì
Một thư viện xây dựng CSDL để tổ chức quản lý và cho
mượn các loại sách
Định nghĩa dữ liệu:
Tạo ra các giá sách
Quy định giá sách nào thì để loại gì
Truy vấn dữ liệu:
Tìm kiếm và lấy thông tin của 1 loại sách nào đó:
Giáo trình CSDL của TS. Trần Đăng Hoan ở vị trí nào?
Giáo trình Tin học DC của PGS. TS. Ngô Hồng Sơn còn bao
nhiêu?
Thao tác dữ liệu:
Cập nhật thông tin trong CSDL:
Có sách mới lập trình C thì để vào giá sách nào?
Cập nhật số lượng của giáo trình .NET ?
5
Truy vấn dữ liệu là gì
Truy vấn dữ liệu:
Là quá trình tìm kiếm và hiển thị thông tin
Ngôn ngữ truy vấn dữ liệu (Data Query Language – DQL):
Là ngôn ngữ rút trích thông tin trong CSDL thỏa một số
điều kiện nào đó
6
Cú pháp của ngôn ngữ truy vấn dữ liệu
Cú pháp cơ bản Gồm 3 mệnh đề:
SELECT <danh sách các cột>
FROM <danh sách các bảng>
WHERE <điều kiện>
7
Truy vấn cơ bản (tt)
Sự tương quan giữa Ngôn ngữ truy vấn dữ liệu và ĐSQH
SELECT L
FROM R
WHERE C
L (C (R))
8
Ví dụ
MANV HONV TENLOT TENNV NGSINH DCHI PHAI LUONG MA_NQL PHG
333445555 Nguyen Thanh Tung 12/08/1955 638 NVC Q5 Nam 40000 888665555 5
987987987 Nguyen Manh Hung 09/15/1962 Ba Ria VT Nam 38000 333445555 5
PHG=5 (NHANVIEN)
9
Mệnh đề SELECT
Chỉ định cột nào được lựa chọn:
MANV,HO,TEN LOT,TEN
( (
MANV,HONV,TENLOT,TENNV PHG=5PHAI=‘Nam’(NHANVIEN)))
11
Mệnh đề SELECT (tt)
MANV HO TEN
12
Mệnh đề SELECT (tt)
MANV LUONG10%
333445555 33000
987987987 27500
SELECT DISTINCT
LUONG LUONG
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
LUONG
30000
- Tốn chi phí
25000
- Người dùng muốn thấy
25000
38000
38000
14
Ví dụ
Cho biết MANV và TENNV làm việc ở phòng ‘Nghien cuu’
15
Mệnh đề WHERE
TRUE TRUE
16
Mệnh đề WHERE (tt)
17
Mệnh đề WHERE (tt)
18
Mệnh đề WHERE (tt)
LIKE: So sánh 1 giá trị với các giá trị tương tự (Sử dụng toán tử đại diện)
Ký tự bất kỳ
SELECT MANV, TENNV
FROM NHANVIEN
WHERE DCHI LIKE ‘Nguyen %’
Chuỗi bất kỳ 19
Mệnh đề WHERE (tt)
NOT LIKE
20
Mệnh đề WHERE (tt)
21
Mệnh đề WHERE (tt)
SO SÁNH NULL
22
Mệnh đề FROM
MANV MAPHG
333445555 1
333445555 4
333445555 5
987987987 1
987987987 4
987987987 5
… …
23
Mệnh đề FROM (tt)
Tên bí danh
24
25
Ví dụ 1
Với những đề án ở ‘Ha Noi’, cho biết mã đề án, mã
phòng ban chủ trì đề án, họ tên trưởng phòng cùng với
ngày sinh và địa chỉ của người ấy
SELECT MADA,MAPHG,HONV + ‘ ‘ + TENLOT +’ ‘ +TENNV AS HOTEN,NGSINH,DCHI
FROM DEAN, PHONGBAN, NHANVIEN
WHERE DDIEM_DA = ‘Ha Noi’ AND PHONG = MAPHG AND TRPHG = MANV
26
Ví dụ 2
Tìm họ tên của nhân viên phòng số 5 có
tham gia vào đề án “Sản phẩm X” với số
giờ làm việc trên 10 giờ
SELECT honv, tenlot, tennv
FROM dean, phancong, nhanvien
WHERE phg = ‘5’ and tenda = ‘Sản phẩm X’ and thoigian > 10 and soda = mada and ma_nvien =
manv
27
Ví dụ 3
Tìm họ tên của từng nhân viên và người phụ trách trực tiếp nhân viên đó
28
Ví dụ 4
Tìm họ tên của những nhân viên được “Nguyen Thanh Tung” phụ trách trực
tiếp
29
Bài tập
Cho lược đồ CSDL:
30
Bài tập
Yêu cầu:
Đưa ra danh sách các nhân viên có trường reportsTo ch ưa xác đ ịnh.
Đưa ra danh sách các CustomerNumber đã có thực hiện giao d ịch.
Đưa ra danh sách các đơn hàng có ngày yêu cầu vận chuyển là ‘18/1/2003’. Lưu
ý: MySQL lưu dữ liệu ngày tháng theo định dạng năm/tháng/ngày
(YYYY/MM/DD).
Đưa ra danh sách các đơn hàng có ngày đặt trong tháng 4 năm 2005 và có trạng
thái là ‘Shipped’
Đưa ra danh sách các sản phẩm thuộc nhóm ‘Classic Cars’.
31
Q&A
32
Tổng kết bài học
Nội dung cần nắm được:
Định nghĩa và cú pháp truy vấn dữ liệu
Mệnh đề SELECT (Lựa chọn cột, bí danh, ghép cột, tính giá trị trên c ột, loại b ỏ
giá trị trùng)
Mệnh đề WHERE (Điều kiện lọc, BETWEEN, LIKE, NULL)
Mệnh đề FROM (Lựa chọn bảng, bí danh bảng, điều kiện kết nối)
Bài tập:
Nộp trên Canvas theo Deadline
Bài học tuần sau:
Cách mệnh đề mở rộng: GROUP BY, ORDER BY, HAVING
Truy vấn con (Sub query)
33
Thank you
34