YOMEDIA
ADSENSE
Bài giảng SQL Server 2008: Chương 4 - Nguyễn Đức Cương
80
lượt xem 8
download
lượt xem 8
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Bài giảng SQL Server 2008: Chương 4 - Thao tác dữ liệu của Nguyễn Đức Cương biên soạn giúp cho các bạn biết được các lệnh thao tác thêm, xóa, sửa dữ liệu; thêm dữ liệu, hiệu chỉnh dữ liệu, xóa dữ liệu trực tiếp trên CSDL; lệnh tìm kiếm, lọc dữ liệu; liệt kê, tìm kiếm lọc dữ liệu từ 1 hoặc nhiều bảng; ý nghĩa và cách sử dụng của một số hàm hệ thống.
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng SQL Server 2008: Chương 4 - Nguyễn Đức Cương
- Nội dung Câu lệnh INSERT.. INTO Câu lệnh Update Câu lệnh Delete Cấu trúc lệnh Select Chương 4. THAO TÁC DỮ LIỆU Mệnh đề FROM Mệnh đề WHERE Lecturer: Nguyễn Đức Cương - FIT Mệnh đề HAVING Email: cuongnguyenduc@gmail.com Website: http://www.nguyenduccuong.com Các hàm hệ thống Kết nối bảng Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 2 Mục tiêu Bảo trì dữ liệu Mô tả được các lệnh thao tác thêm, xóa, sửa dữ Liên quan đến việc bổ sung thông tin mới, sửa lại liệu dữ liệu không chính xác, có thể xóa đi dữ liệu không cần thiết Có thể thêm dữ liệu, hiệu chỉnh dữ liệu, xóa dữ liệu trực tiếp trên CSDL Nhóm lệnh DML dùng để bảo trì dữ liệu gồm 3 lệnh Mô tả được lệnh tìm kiếm, lọc dữ liệu INSERT Có thể liệt kê, tìm kiếm lọc dữ liệu từ 1 hoặc nhiều UPDATE bảng DELETE Mô tả ý nghĩa và cách sử dụng của một số hàm hệ thống Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 3 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 4 1
- Câu lệnh INSERT ... VALUES Câu lệnh INSERT ... VALUES Cú pháp: Ví dụ: Thêm phòng TCHC vào bảng PhongBan INSERT [INTO] [()] INSERT PhongBan VALUES VALUES (giá trị,..)[,(giá trị,..),..]); (‘HCTH’,’Phòng Hành chính tổng hợp’,’12, Nguyễn Văn Bảo, Gò Vấp,’08.38940390’); Ý nghĩa: Nhận xét Thêm 1 hoặc nhiều dòng dữ liệu vào trong bảng Khi không chỉ ra tên cột sau tên bảng Có chỉ ra tên cột sau tên bảng Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 5 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 6 Câu lệnh INSERT ... SELECT Câu lệnh INSERT ... SELECT Cú pháp: Ví dụ: INSERT [INTO] [()] INSERT EmployeeSales SELECT {danh sách cột} Select EmployeeId, LastName FROM Employee FROM {danh sách bảng} WHERE EmployeeID LIKE ‘3%’ [WHERE ]; Ý nghĩa: Thêm 1 hoặc nhiều dòng dữ liệu từ 1 hay nhiều bảng vào trong bảng khác. Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 7 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 8 2
- Câu lệnh SELECT Câu lệnh SELECT Cú pháp Ví dụ 1: Cho biết thông tin về các phòng ban? SELECT *|{[DISTINCT] column|expression [alias],...} SELECT Maphong,Tenphong, DiaChi, Tel FROM table(s) FROM PhongBan [WHERE condition(s)] hoặc: [HAVING group_condition] [ORDER BY {column, expr, alias} SELECT * [ASC|DESC]]; FROM PhongBan Ý nghĩa: lọc thông tin từ 1, nhiều bảng Lưu ý thứ tự thực hiện lệnh Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 9 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 10 Câu lệnh SELECT Câu lệnh SELECT Ví dụ 2: Cho biết danh sách thưởng của các nhân Ví dụ 3: Cho biết mã các ngoại ngữ mà viên bao gồm các thông tin mã nhân viên, họ tên, các nhân viên trong cơ quan đã học? lương, và thưởng (bằng lương + 40% lương)? Câu lệnh: Câu lệnh: Select Mann From TDNN SELECT Manv, Hoten, Luong, 1.4* Luong as Thuong hoặc FROM Nhanvien Select Distinct Mann From TDNN Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 11 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 12 3
- Câu lệnh SELECT Câu lệnh SELECT – mệnh đề WHERE Ví dụ 4: Đưa ra thông tin về 2 nhân Lọc kết quả ra của mệnh đề FROM, hạn chế dòng dữ liệu được trả về trong kết quả viên đầu tiên trong bảng nhân viên? Biểu thức điều kiện Câu lệnh: Biểu thức Select top 2 * Dữ liệu trong bảng From NHANVIEN Các toán tử Các hàm hệ thống hoặc do người dùng định nghịa Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 13 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 14 Câu lệnh SELECT Câu lệnh SELECT Các phép toán trong Biểu thức điều kiện Vídụ 5: Cho biết danh sách các nhân viên • Toán tử so sánh: >, =, làm việc ở phòng có mã số là HCA? • Toán tử logic: AND, OR, NOT Câu lệnh: • Toán tử phạm vi: BETWEEN… AND • Thuộc DS giá trị: IN and NOT IN Select * • Giá trị chưa biết:IS NULL and IS NOT NULL From Nhanvien • Tồn tại trong Subquery :EXISTS and NOT EXISTS Where Maphong = ‘HCA’ • DISTINCT : loại bỏ trùng lắp. 16 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 15 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 16 4
- Câu lệnh SELECT Câu lệnh SELECT Ví dụ 6: Cho biết mã nhân viên, họ tên, Ví dụ 7: Cho biết mã nhân viên, họ tên, ngày sinh, lương của các nhân viên có ngày sinh, lương của các nhân viên có lương nằm trong khoảng từ 2000000 đồng lương không nằm trong khoảng từ 1000000 đến 3000000 đồng? đồng đến 2000000 đồng? Câu lệnh: Thực hiện: Select Manv, Hoten, Ngaysinh, Luong Select Manv, Hoten, Ngaysinh, Luong From Nhanvien From Nhanvien Where (Luong 2000000) and (Luong Where Luong not between 1000 and 2000 3000000) 17 18 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 17 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 18 Câu lệnh SELECT Câu lệnh SELECT Ví dụ 8: Đưa ra danh sách các nhân Ví dụ 09: Cho biết các nhân viên làm viên chưa có số điện thoại? việc ở phòng có mã phòng là ‘HCA ‘hoặc ‘KDA’? Select * From Nhanvien Câu lệnh: Where SDT is Null Select * From Nhanvien Where Maphong = ‘P1’ or Maphong = ‘P2’ Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 19 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 20 5
- Câu lệnh SELECT Câu lệnh SELECT Ví dụ 10: Cho biết danh sách các nhân viên Mệnh đề ORDER BY có tên bắt đầu bằng ‘N’? => Sắp thứ tự hàng tăng, giảm Ví dụ 11: Hãy đưa ra danh sách nhân viên Câu lệnh: theo theo chiều tăng dần của lương? Select * Câu lệnh From Nhanvien Where HoTen like ‘N%’ Select Manv, Hoten, Ngaysinh, Luong From NHANVIEN Order By Luong Asc 21 22 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 21 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 22 Câu lệnh SELECT Câu lệnh SELECT Ví dụ 12: Hãy đưa ra danh sách nhân viên Ví dụ 13: Liệt kê họ, tên của khách hàng và sắp theo theo chiều tăng dần của lương, nếu 2 xếp thành 1 cột tăng dần nhân viên có cùng lương thì sắp xếp theo SELECT LastName + ‘-’ + FirstName as FullName ngày sinh giảm dần? FROM Customer Select Manv, Hoten, Ngaysinh, Luong ORDER BY FullName ASC From NHANVIEN Order By Luong Asc, Ngaysinh Desc 23 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 23 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 24 6
- Bài tập MỘT SỐ HÀM THÔNG DỤNG Hiển thị số hóa đơn (order number), cách gửi quà Hàm toán học (shipping mode), các phí gói quà (gift-wrap charges) và tổng số tiền (total cost ) của tất cả hóa AVG(), – MIN(), – MAX(), – SUM() đơn đã được bán. COUNT() Hiển thị tên, họ của tất cả người mua hàng SQUARE() (shopper) sống ở tiểu bang California SQRT() ROUND() Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 25 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 26 MỘT SỐ HÀM THÔNG DỤNG MỘT SỐ HÀM THÔNG DỤNG Các hàm xử lý xâu kí tự Các hàm xử lý xâu kí tự (tiếp) ASCII(s): trả về giá trị mã ASCII của kí +: phép toán ghép các xâu tự bên nhất trái của xâu Len(s): trả về độ dài của xâu Char(n): trả ra kí tự thứ n trong bảng LTRIM(s): loại bỏ các kí tự trắng bên trái xâu mã ASCII RTRIM(s): loại bỏ các kí tự trắng bên phải xâu Upper(s): chuyển đổi xâu sang chữ hoa Left(s, n): trả về n kí tự (xâu con) phía bên trái nhất xâu s Lower(s): chuyển đổi xâu sang chữ thường Right(s, n): trả về n kí tự (xâu con) phía bên phải nhất xâu s 27 28 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 27 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 28 7
- MỘT SỐ HÀM THÔNG DỤNG MỘT SỐ HÀM THÔNG DỤNG SubString(s, m ,n): trả về xâu con dài n kí Hàm thời gian: tự của xâu s bắt đầu từ ví trí thứ m Getdate(): trả về ngày tháng năm của hệ thống Replace(s, s1, s2): thay thế các xâu con s1 DatePart(tham số datepart,date): trả về giá trị xuất hiện trong xâu s bằng xâu s2 nguyên là thành phần của giá trị date Stuff (s, m, n, s1): xóa xâu con n kí tự bắt Các tham số của datepart: đầu từ vị trí thứ m trong xâu s và thay thế qq,q :Quarter wk, ww :Week vào đó xâu s1 yy, yyyy: Year dw :Weekday mm, m:Month hh :Hour Reverse(s): trả về xâu đảo ngược của xâu dy,y :Dayofyear mi,n :Minute s dd,d :Day ss,s: Second ms :Milisecond 29 30 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 29 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 30 MỘT SỐ HÀM THÔNG DỤNG MỘT SỐ HÀM THÔNG DỤNG Hàm thời gian (TT): Hàm chuyển đổi kiểu dữ liệu DateDiff(datepart, date1,date2): trả về khoảng – Convert(datatype[(size) ], exp [,style]) ngày, tháng, năm, . . . giữa 2 ngày date1 và date2 – Hàm CAST() Dateadd(datepart,n,date): thêm một số n datepart vào date Datename() DAY(D); MONTH(D); YEAR(D) 32 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 31 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 32 8
- MỘT SỐ HÀM THÔNG DỤNG MỘT SỐ HÀM THÔNG DỤNG Các hàm nhóm dữ liệu: Sum ([All | Distinct] Biểu thức kiểu số): Hàm tính tổng của tập giá trị được tính theo •Count ([All | Distinct] Biểu thức): biểu thức Hàm đếm số lượng các bộ thỏa mãn điều kiện Avg ([All | Distinct] Biểu thức kiểu số): Hàm tính giá trị trung bình của tập giá trị thuộc •Max (Biểu thức), Min (Biểu thức): tính kiểu số: Hàm tính giá trị lớn nhất, nhỏ nhất của tập giá trị được tính theo biểu thức 33 34 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 33 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 34 MỘT SỐ HÀM THÔNG DỤNG MỘT SỐ HÀM THÔNG DỤNG Ví dụ 13: Cho biết lương trung bình của Ví dụ 14: Cho biết tổng số nhân viên và phòng có mã KDA? trung bình lương của cơ quan? Select Avg(Luong) as TBluong From NHANVIEN Select count(*) as TongNv, Avg(Luong) as Where Maphong= ’KDA’ TBluong From NHANVIEN 35 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 35 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 36 9
- Mệnh đề Compute Mệnh đề Compute.. by Dùng để tính thống kê (trung bình, tổng,..) theo cột Dùng để tính thống kê (trung bình, tổng,..) theo từng nhóm (kết hợp thêm mệnh đề order by) Ví dụ: Liệt kê thông tin Productname, CategoryName, Unitprice các product. Dùng mệnh đề COMPUTE để Ví dụ: Liệt kê thông tin Productname, CategoryName, thống kê đơn giá trung bình của sản phẩm. Unitprice các product. Dùng mệnh đề COMPUTE để liệt kê đơn giá trung bình theo từng CategoryName Thực hiện Thực hiện Select ProductName,CategoryName,UnitPrice From Categories c,Products p Select ProductName,CategoryName,UnitPrice where c.CategoryID= p.CategoryID From Categories c,Products p order by CategoryName where c.CategoryID= p.CategoryID Compute avg(UnitPrice) order by CategoryName Compute avg(UnitPrice) by CategoryName Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 37 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 38 Câu lệnh UPDATE.. SET Câu lệnh UPDATE.. SET Cú pháp Ví dụ: UPDATE update SinhVien SET = [, = , . . . ] set MaLop=‘DHTH5TLT' [WHERE (s)] where MaSV=‘A012' Ý nghĩa: Ví dụ 2: Tăng giá sản phẩm có tên Heneiken lên Cập nhật thông tin trên các cột col_name1, 1% col_name2, . . . cho các bản ghi thỏa mãn điều kiện sau Where Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 39 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 40 10
- Câu lệnh DELETE Câu lệnh DELETE Cú pháp: Ví dụ: DELETE FROM table name Delete from Sinhvien Where Malop=‘CDTH14A’ [WHERE condition] Bài tập: Ý nghĩa: Xóa những thông tin của những hóa đơn được lập bởi nhân viên có mã ‘NV01’ Xóa các bản ghi thỏa mãn điều kiện WHERE Xóa toàn bộ dữ liệu trong bảng TRUNCATE TABLE Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 41 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 42 CSDL - Northwind Bài tập Customers (CustomerID, CompanyName, Address, City, 1/ Lọc các hóa đơn (Orders) được lập cho khách ..) - thông tin khách hàng hàng (Customers) có mã 'ALFKI' Categories (CategoryID, CategoryName,..)- Thông tin 2/ Lấy thông tin của các sản phẩm (Products) của DM sản phẩm loại mặt hàng 'Seafood' (Category) Products (ProductID, ProductName, UnitPrice, ..)- 3/ Viết câu lệnh để xem thông tin khách hàng tại Thông tin sản phẩm thành phố 'London' Employees (EmployeeID, LastName, FirstName, City,..) 4/ Viết câu lệnh để hiển thị giá (UnitPrice) của mặt - Thông tin nhân viên hàng 'Chai' khi tăng thêm 10% Orders (OrderID, Orderdate, CustID, EmpID) - Thông tin hóa đơn được lập Order Details (OrderID, ProID, Price, Quanlity)- Thông tin chi tiết của hóa đơn Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 43 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 44 11
- Bài tập 5/ Lọc thông tin của các sản phẩm có đơn giá lớn hơn 15 và bắt đầu bởi ký tự 'C' 6/ Lọc thông tin của các sản phẩm có đơn giá từ 15 - 20 và có chứa ký tự 'C' SQL 7/ Hiển thị tên của các nhân viên có năm sinh >=1960 NGÔN NGỮ THAO TÁC 8/ Tính tuổi trung bình, nhỏ nhất, lớn nhất của các DỮ LIỆU (tiếp) nhân viên 9/ Tăng đơn giá của sản phẩm có tên 'Konbu' lên 3% Lecturer: Nguyễn Đức Cương - FIT Email: cuongnguyenduc@gmail.com 10/ Giảm giá tất cả sản phẩm của loại 'Seafood' Website: http://www.nguyenduccuong.com xuống 5% Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 45 Nội dung Kết nối giữa các bảng Kết nối các bảng Chỉ tồn tại trong thời gian truy vấn Truy vấn con Không thay đổi dữ liệu Sử dụng lượng từ trong truy vấn Sử dụng bí danh để dễ đọc Truy vấn hợp (UNION) Các loại liên kết: INNER JOIN OUTERJOIN CROSSJOIN Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 47 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 48 12
- Kết nối giữa các bảng - INNER Kết nối giữa các bảng - INNER INNER JOIN: Trả về những dòng mà giá trị Ví dụ: Lọc ra thông tin Tên khách hàng, Mã hóa trong cột liên kết giữa hai bảng là bằng nhau. đơn và ngày lập hóa đơn của các khách hàng. Cú pháp: Câu lệnh SELECT col_name(s) SELECT KhachHang.MaKH, TenKH, MaHD, NgayHD FROM table1 FROM KhachHang INNER JOIN HoaDon INNER JOIN table2 ON Khachhang.MaKH = HoaDon.MaHD ON table1.col_name=table2.col_name Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 49 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 50 Kết nối giữa các bảng - INNER Kết nối giữa các bảng - OUTTER Ví dụ 1: Đưa ra danh sách họ tên các nhân viên OUTER JOIN: làm việc ở phòng kinh doanh hoặc phòng kỹ thuật? LEFT OUTER JOIN: trả về kết quả là Select hoten những dòng trong bảng bên trái (Bảng cha), ngay cả những dòng không so trùng với From NHANVIEN NV bảng bên phải (Bảng con). Inner join PHONG P RIGHT OUTER JOIN: trả về tất cả những dòng của bảng bên phải (bảng con), ngay On NV.MAPHONG = P.MAPHONG cả những dòng không so trùng với bảng bên trái (bảng cha). Where Tenphong in ( “Kinh doanh”, “Kỹ thuật”) Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 51 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 52 13
- Kết nối giữa các bảng - OUTTER Kết nối giữa các bảng - OUTER Cú pháp: Ví dụ: Hiển thị các tác giả không xét đến nơi tác giả sống có tồn tại nhà xuất bản nào không SELECT colname(s) Câu lệnh FROM table1 {LEFT OUTER JOIN | Select a.au_fname, a.au_lname, p.pub_name RIGHT OUTER JOIN} table2 FROM authors a LEFT OUTER JOIN publishers p ON ON table1.colname=table2.colname a.city = p.city Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 53 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 54 Kết nối giữa các bảng - OUTER Kết nối giữa các bảng - CROSS JOIN Ví dụ: Hiển thị tất cả các nhà xuất bản bất kể thành CROSS JOIN: trả về tất cả các record mà mỗi phố nhà xuất bản có cùng thành phố với tác giả dòng trong bảng thứ nhất kết hợp với tất cả không? các dòng trong bảng thứ hai, CROSS JOIN tương đương với tích descartes của các record Câu lệnh trong hai bảng tham gia. Select a.au_fname, a.au_lname, p.pub_name Cú pháp: FROM authors a RIGHT OUTER JOIN publishers p ON a.city = p.city SELECT column_list FROM table1 CROSS JOIN table2 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 55 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 56 14
- Kết nối giữa các bảng - CROSS Truy vấn con Ví dụ Nhúng 1 câu truy vấn vào trong câu truy vấn khác Select a.au_fname, a.au_lname, p.pub_name Cung cấp cho truy vấn ngoài 1 kết quả dưới dạng: FROM authors CROSS JOIN publishers 1 giá trị, 1 danh sách giá trị, tập dữ liệu Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 57 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 58 Truy vấn con Truy vấn con Ví dụ 1: Đưa ra danh sách các nhân viên làm IN việc ở phòng kinh doanh hoặc kỹ thuật? … Select hoten (KDA, KTA) From NHANVIEN Where Maphong in (Select Maphong From PHONG Where tenphong in (‘Kinh … … doanh’, ‘Kỹ thuật’)) Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 59 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 60 15
- Truy vấn con Truy vấn lồng Ví dụ 2 - Cho biết danh sách nhân viên có mức lương lớn nhất Ví dụ 2: Cho biết họ tên các nhân viên có lương lớn nhất? 3000000 Select hoten From NHANVIEN Where luong = (Select max(luong) From NHANVIEN ) Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 61 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 62 Truy vấn lồng Sử dụng lượng từ trong truy vấn Lượng từ Exists (tồn tại) Ví dụ 3: Đưa ra danh sách các nhân viên có lương lớn hơn lương mọi nhân viên làm ở Where Exists () Select * True: nếu tập hợp khác rỗng From NHANVIEN Where luong > (Select max(luong) False: ngược lại From NHANVIEN Where Maphong in (Select Maphong From Phong Where Tenphong = ‘Kinh doanh’)) Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 63 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 64 16
- Sử dụng lượng từ trong truy vấn Sử dụng lượng từ trong truy vấn Lượng từ All Ví dụ 4: Cho biết danh sách các nhân viên đã Where All học ít nhất một ngoại ngữ? ( ) TRUE: khi một giá trị của thuộc tính thỏa mãn phép so sánh với mọi phần tử trong tập hợp giá Select * From NHANVIEN nv trị (hoặc tập giá trị do truy vấn con trả ra). Where Exists (Select * From TDNN td FALSE: Ngược lại Where nv.Manv=td.Manv) Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 65 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 66 Sử dụng các lượng từ trong truy vấn Sử dụng lượng từ trong truy vấn Vídụ 5: Cho biết danh sách họ tên các Ví dụ 6: Đưa ra danh sách các nhân nhân viên có lương lớn nhất? viên có lương lớn hơn lương mọi nhân viên làm ở phòng Kinh doanh? Select * From NHANVIEN Select * (2500000,2600000,270000 Where luong >= ALL (Select luong From NHANVIEN 00,16000000, 2000000) Where luong >= ALL (Select luong From NHANVIEN ) (‘KDA’) From NHANVIEN Where Maphong in (Select Maphong From Phong Where Tenphong = ‘Kinh doanh’)) Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 67 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 68 17
- Sử dụng lượng từ trong truy vấn Sử dụng lượng từ trong truy vấn Vídụ 7: Đưa ra tên phòng có nhiều Lượng từ any | some nhân viên nhất? WHERE Any | Some () Select Tenphong From PHONG (‘KTA’) TRUE: khi một giá trị của thuộc tính thỏa Where Maphong in (Select Maphong mãn phép so sánh với ít nhất một phần From NHANVIEN tử trong tập hợp giá trị (hoặc tập giá trị Group by Maphong (4,6,9) do truy vấn con trả ra). Having count (*) >= ALL (Select count(*) From NHANVIEN FALSE: Ngược lại 4, 6, 9 Group by Maphong )) Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 69 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 70 Sử dụng lượng từ trong truy vấn Mệnh đề Compute, Compute by Ví dụ 8: Cho biết các nhân viên có Danh sách các product, thông tin bao gồm: Productname, CategoryName, Unitprice. Có dùng lương lớn hơn ít nhất một nhân viên mệnh đề COMPUTE để liệt kê đơn giá trung bình phòng kinh doanh? theo từng CategoryName. Select * (2500000,2600000,270000 From NHANVIEN 00,16000000, 2000000) Bổ sung COMPUTE vào câu trên để thống kê thêm Where luong > ANY (Select luong đơn giá trung bình và tổng số lượng tồn của tất cả các product. From NHANVIEN Where Maphong in (Select Maphong From Phong Where Tenphong = ‘Kinh doanh’)) Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 71 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 72 18
- Truy vấn hợp Truy vấn hợp Cú pháp: Ví dụ 9: Cho biết danh sách mã nhân viên, họ tên các nhân viên học ngoại ngữ mã ‘01’ hoặc mã ‘03’ { < query specification > | ( < query expression > ? ) } UNION[ALL] < query specification | ( < query expression > ) Select Manv, Hoten From NHANVIEN nv, TDNN td [ UNION [ ALL ] Where nv.Manv = td.Manv and Mann =‘01’ < query specification | ( < query expression Union all > ) Select Manv, Hoten From NHANVIEN nv, TDNN td [ ...n ] ] Where nv.Manv = td.Manv and Mann =‘03’ Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 73 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 74 Truy vấn hợp Thảo luận Chú ý: Số lượng, thứ tự các cột phải giống nhau trong mọi truy vấn. Kiểu dữ liệu của các cột tương ứng trong các truy vấn phải tương thích. Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 75 Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 76 19
ADSENSE
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn