intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng môn Cơ sở dữ liệu: Chương 4 - ThS. Thái Bảo Trân

Chia sẻ: Nguyen Nguyen | Ngày: | Loại File: PDF | Số trang:35

50
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng môn "Cơ sở dữ liệu - Chương 4: Ngôn ngữ SQL" cung cấp cho người học các kiến thức: Các ngôn ngữ giao tiếp, ngôn ngữ định nghĩa dữ liệu, ngôn ngữ truy vấn dữ liệu có cấu trúc. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng môn Cơ sở dữ liệu: Chương 4 - ThS. Thái Bảo Trân

  1. 29/09/2015 1. Giới thiệu (1)  SQL (Structured Query Language) là gì ?  Là một công cụ quản lý dữ liệu được sử dụng phổ Chương 4: Ngôn ngữ SQL biến ở nhiều lĩnh vực.  Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ SQL  Là ngôn ngữ chuẩn để truy vấn và thao tác trên CSDL quan hệ  Lịch sử phát triển  Khởi nguồn của SQL là SEQUEL - Structured English QUEry Language, năm 1974) Giảng viên: ThS. Thái Bảo Trân  Được phát triển bởi IBM (1970s)  Được ANSI công nhận và phát triển thành chuẩn Thời lượng: 12 tiết  SQL89  SQL92 (SQL2)  SQL99 (SQL3) Khoa HTTT - Đại học CNTT 1 3 Nội dung 1. Giới thiệu (2)  Đặc điểm của SQL 1. Giới thiệu  Là ngôn ngữ tựa Tiếng Anh 2. Các ngôn ngữ giao tiếp  Là ngôn ngữ phi thủ tục  Người sử dụng chỉ cần đưa ra nội dung cần truy vấn 3. Ngôn ngữ định nghĩa dữ liệu  Cung cấp tập lệnh phong phú cho các công việc hỏi 4. Ngôn ngữ thao tác dữ liệu đáp dữ liệu  Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải 5. Ngôn ngữ truy vấn dữ liệu có cấu trúc nắm vững được các cấu trúc CSDL của mình.  SQL sử dụng thuật ngữ  Bảng ~ quan hệ  Cột ~ thuộc tính  Dòng ~ bộ 2 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1
  2. 29/09/2015 1. Giới thiệu (3) 3. Ngôn ngữ định nghĩa dữ liệu (1)  SQL gồm  Là ngôn ngữ mô tả  Lược đồ cho mỗi quan hệ  Định nghĩa dữ liệu  Miền giá trị tương ứng của từng thuộc tính  Thao tác dữ liệu  Ràng buộc toàn vẹn  Định nghĩa khung nhìn  Chỉ mục trên mỗi quan hệ  Gồm  Ràng buộc toàn vẹn  CREATE TABLE (tạo bảng)  Phân quyền và bảo mật  DROP TABLE (xóa bảng)  Điều khiển giao tác  ALTER TABLE (sửa bảng)  CREATE DOMAIN (tạo miền giá trị)  CREATE DATABASE  … 5 7 2. Các ngôn ngữ giao tiếp 3. Ngôn ngữ định nghĩa dữ liệu (2)  Ngôn ngữ định nghĩa dữ liệu (Data Definition 3.1 Lệnh tạo bảng (CREATE) Language - DDL): cho phép khai báo cấu trúc 3.1.1 Cú pháp bảng, các mối quan hệ và các ràng buộc. 3.1.2 Một số kiểu dữ liệu  Ngôn ngữ thao tác dữ liệu (Data Manipulation 3.1.3 Ràng buộc toàn vẹn Language - DML): cho phép thêm, xóa, sửa dữ 3.2 Lệnh sửa cấu trúc bảng (ALTER) liệu. 3.2.1 Thêm thuộc tính  Ngôn ngữ truy vấn dữ liệu (Structured Query 3.2.2 Sửa kiểu dữ liệu của thuộc tính Language – SQL): cho phép truy vấn dữ liệu. 3.2.3 Xóa thuộc tính  Ngôn ngữ điều khiển dữ liệu (Data Control 3.2.4 Thêm ràng buộc toàn vẹn Language – DCL): khai báo bảo mật thông tin, 3.2.5 Xóa ràng buộc toàn vẹn cấp quyền và thu hồi quyền khai thác trên cơ sở 3.3 Lệnh xóa bảng (DROP) dữ liệu. 3.4 Lệnh tạo miền giá trị 6 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt 2
  3. 29/09/2015 3.1 Lệnh tạo bảng (1) 3.1.3 Ràng buộc toàn vẹn 3.1.1 Cú pháp  CREATE TABLE  NOT NULL (  NULL [],  UNIQUE [],  DEFAULT …  PRIMARY KEY [],  FOREIGN KEY / REFERENCES []  CHECK )  Đặt tên cho RBTV CONSTRAINT 9 11 3.1 Lệnh tạo bảng (2) 3.1 Ví dụ 1 - Lệnh tạo bảng (1) 3.1.2 Một số kiểu dữ liệu Ví dụ 1: Cho lược đồ CSDL quản lý bán hàng Kiểu dữ liệu SQL Server gồm có các quan hệ: Chuỗi ký tự varchar(n), char(n),nvarchar(n), nchar(n) KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK, CMND) Số tinyint,smallint, int, numeric(m,n), decimal(m,n),float, real, NHANVIEN (MANV,HOTEN, NGVL, SODT) smallmoney, money SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA) HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) Ngày tháng smalldatetime, datetime CTHD (SOHD,MASP,SL) Luận lý bit 10 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt 3
  4. 29/09/2015 3.1 Ví dụ 1 - Lệnh tạo bảng (2) 3.1 Ví dụ 1 - RBTV (3) CREATE TABLE KHACHHANG ( CREATE TABLE NHANVIEN MAKH char(4), ( HOTEN varchar(40), DCHI varchar(50), manv char(4) primary key, SODT varchar(20), hoten varchar(40), NGSINH smalldatetime, sodt varchar(20), DOANHSO money, NGDK smalldatetime, ngvl smalldatetime CMND varchar(10) ) ) 13 15 3.1 Ví dụ 1- RBTV (1) 3.1 Ví dụ 1 - RBTV (3) CREATE TABLE KHACHHANG CREATE TABLE SANPHAM ( ( MAKH char(4) primary key, HOTEN varchar(40), masp char(4) primary key, DCHI varchar(50), tensp varchar(40), SODT varchar(20), NGSINH smalldatetime, dvt varchar(20), DOANHSO money, nuocsx varchar(40), NGDK smalldatetime, gia money CMND varchar(10) ) ) 14 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt 4
  5. 29/09/2015 3.1 Ví dụ 1 - RBTV (4) 3.1 Ví dụ 2 - RBTV (1) CREATE TABLE HOADON Ví dụ 2: Cho lược đồ CSDL “Quản lý đề án công ty” như sau: ( sohd int primary key, NHANVIEN (MaNV, HoNV, TenDem, TenNV, NTNS, Dchi, GT, Luong, Ma_NQL, PHG) nghd smalldatetime, PHONGBAN (MaPH, TenPH, TRPH, NG_Nhanchuc) makh char(4), DEAN (MaDA, TenDA, Phong, NamThucHien) manv char(4), PHANCONG (MaNV, MaDA, ThoiGian) trigia money ) 17 19 3.1 Ví dụ 1 - RBTV (5) 3.1 Ví dụ 2- RBTV (2) CREATE TABLE CTHD CREATE TABLE NHANVIEN ( ( MANV CHAR(9) PRIMARY KEY, HONV VARCHAR(10) NOT NULL, SOHD int foreign key (SOHD) TENDEM VARCHAR(20) , references HOADON(SOHD), TENNV VARCHAR(10) NOT NULL, MASP char(4) foreign key (MASP) NTNS DATETIME, references SANPHAM(MASP), DCHI VARCHAR(50), SL int, GT CHAR(3) CHECK (GT IN (‘Nam’, ‘Nu’)), constraint PK_CTHD primary key (SOHD,MASP) LUONG INT DEFAULT (2000000), ) MA_NQL CHAR(9), PHG INT ) 18 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt 5
  6. 29/09/2015 3.1 Ví dụ 2- RBTV (3) 3.1 Ví dụ 2- RBTV (5) CREATE TABLE PHONGBAN ( CREATE TABLE PHANCONG ( TENPB VARCHAR(20) UNIQUE, MA_NVIEN CHAR(9), MAPHG INT NOT NULL, SODA INT, TRPHG CHAR(9), THOIGIAN DECIMAL(3,1), NG_NHANCHUC DATETIME DEFAULT (GETDATE()) CONSTRAINT PC_MANVIEN_SODA_PK PRIMARY KEY ) (MA_NVIEN, SODA), CONSTRAINT PC_MANVIEN_FK FOREIGN KEY (MA_NVIEN) CREATE TABLE PHANCONG ( REFERENCES NHANVIEN(MANV), MA_NVIEN CHAR(9) FOREIGN KEY (MA_NVIEN) CONSTRAINT PC_SODA_FK FOREIGN KEY (SODA) REFERENCES NHANVIEN(MANV), REFERENCES DEAN(MADA) SODA INT REFERENCES DEAN(MADA), ) THOIGIAN DECIMAL(3,1) ) 21 23 3.1 Ví dụ 2- RBTV (4) 3.2 Sửa cấu trúc bảng (1) CREATE TABLE NHANVIEN ( HONV VARCHAR(10) CONSTRAINT NV_HONV_NN NOT NULL,  Được dùng để TENDEM VARCHAR(20) NOT NULL, TENNV VARCHAR(10) NOT NULL, Thay đổi cấu trúc bảng MANV CHAR(9) CONSTRAINT NV_MANV_PK PRIMARY KEY, Thay đổi RBTV NS DATETIME,  Thêm cột ALTER TABLE ADD DCHI VARCHAR(50), [] GT CHAR(3) CONSTRAINT NV_GT_CHK CHECK (GT IN (‘Nam’, ‘Nu’)),  Xóa cột ALTER TABLE DROP COLUMN LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (2000000), MA_NQL CHAR(9), ALTER TABLE ALTER COLUMN PHG INT  Mở rộng cột ) 22 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt 6
  7. 29/09/2015 3.2 Sửa cấu trúc bảng (2) 3.2 Ví dụ - Thay đổi cấu trúc bảng  Ví dụ 1: Thêm cột Ghi_chu vào bảng khách hàng  Thêm RBTV ALTER TABLE KHACHHANG ADD GHI_CHU varchar(20) ALTER TABLE ADD  Ví dụ 2: Sửa Cột Ghi_chu thành kiểu dữ liệu varchar(50) CONSTRAINT , ALTER TABLE KHACHHANG ALTER COLUMN GHI_CHU CONSTRAINT , varchar(50) …  Lưu ý: Không phải sửa bất kỳ kiểu dữ liệu nào cũng được Ví dụ:  Nếu sửa kiểu dữ liệu của cột Ghi_chu thành varchar(50), mà  Xóa RBTV trước đó đã nhập giá trị cho cột Ghi_chu có độ dài hơn 50 ký tự thì không được phép.  Hoặc sửa từ kiểu chuỗi ký tự sang kiểu số, … ALTER TABLE DROP  Ví dụ 3: Xóa cột Ghi_chu trong bảng KHACHHANG ALTER TABLE NHANVIEN DROP COLUMN Ghi_chu 25 27 3.2 Sửa cấu trúc bảng (3) 3.2 Ví dụ - Thay đổi RBTV (1) Chú ý: Thêm ràng buộc toàn vẹn  ALTER TABLE NHANVIEN ADD CONSTRAINT PK_NV PRIMARY KEY (MANV) UNIQUE tên_cột  ALTER TABLE CTHD ADD CONSTRAINT FK_CT_SP ALTER TABLE PRIMARY KEY (tên_cột) FOREIGN KEY (MASP) REFERENCES ADD CONSTRAINT SANPHAM(MASP) FOREIGN KEY (tên_cột) REFERENCES tên_bảng  ALTER TABLE SANPHAM ADD CONSTRAINT (cột_là_khóa_chính) CK_GIA CHECK (GIA >=500) CHECK (tên_cột điều_kiện)  ALTER TABLE KHACHHANG ADD CONSTRAINT UQ_KH UNIQUE (CMND) 26 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt 7
  8. 29/09/2015 3.2 Ví dụ - Thay đổi RBTV (2) 3.3 Lệnh xóa bảng  ALTER TABLE CTHD DROP CONSTRAINT FK_CT_SP NHANVIEN  ALTER TABLE SANPHAM DROP HONV TENDEM TENNV MANV NS DCHI GT LUONG MA_NQL PHG CONSTRAINT ck_gia  Lưu ý: Đối với ràng buộc khóa chính, muốn xóa PHONGBAN ràng buộc này phải xóa hết các ràng buộc khóa TENPHG MAPHG TRPHG NG_NHANCHUC ngoại tham chiếu tới nó 29 31 3.3 Lệnh xóa bảng 3.4 Lệnh tạo miền giá trị  Được dùng để xóa cấu trúc bảng  Tạo ra một kiểu dữ liệu mới kế thừa những  Tất cả dữ liệu của bảng cũng bị xóa kiểu dữ liệu có sẳn  Cú pháp:  Cú pháp DROP TABLE tên_bảng CREATE DOMAIN AS  Ví dụ: Xóa bảng KHACHHANG. DROP TABLE KHACHHANG  Ví dụ  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 đó CREATE DOMAIN Kieu_Ten AS VARCHAR(30) trước. 30 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt 8
  9. 29/09/2015 4. Ngôn ngữ thao tác dữ liệu 4.1 Lệnh INSERT (2)  Gồm các lệnh:  Cú pháp (thêm 1 dòng) 4.1 Lệnh thêm dữ liệu (INSERT) INSERT INTO [] 4.2 Lệnh xóa dữ liệu (DELETE) VALUES () 4.3 Lệnh sửa dữ liệu (UPDATE) 33 35 4.1 Lệnh INSERT (1) 4.1 Ví dụ (1) INSERT INTO NHANVIEN(HONV, TENDEM, TENNV, MANV)  Dùng để thêm 1 hay nhiều dòng vào bảng VALUES (‘Le’, ‘Van’, ‘Tuyen’, ‘635635635’) INSERT INTO NHANVIEN(HONV, TENDEM, TENNV, MANV, DCHI)  Để thêm dữ liệu VALUES (‘Le’, ‘Van’, ‘Tuyen’, ‘635635635’, NULL)  Tên quan hệ INSERT INTO NHANVIEN  Danh sách các thuộc tính cần thêm dữ liệu VALUES (‘Le’, ‘Van’, ‘Tuyen’, ‘635635635’, ’12/30/1952’, ’98 HV’, ‘Nam’,  Danh sách các giá trị tương ứng ‘37000’, 4) INSERT INTO SANPHAM VALUES ('BC01','But chi', 'cay', 'Singapore', 3000) INSERT INTO SANPHAM(masp,tensp,dvt,nuocsx,gia) VALUES ('BC01','Butchi','cay','Singapore',3000) 34 36 CuuDuongThanCong.com https://fb.com/tailieudientucntt 9
  10. 29/09/2015 4.1 Nhận xét 4.1 Ví dụ (2) CREATE TABLE THONGKE_PB (  Thứ tự các giá trị phải trùng với thứ tự các TENPHG VARCHAR(20), cột SL_NV INT,  Có thể thêm giá trị NULL ở những thuộc LUONG_TC INT tính không là khóa chính và NOT NULL )  Câu lệnh INSERT sẽ gặp lỗi nếu vi phạm INSERT INTO THONGKE_PB(TENPHG, SL_NV, LUONG_TC) RBTV SELECT TENPHG, COUNT(MANV), SUM(LUONG)  Khóa chính FROM NHANVIEN, PHONGBAN  Tham chiếu WHERE PHG=MAPHG  NOT NULL - các thuộc tính có ràng buộc NOT GROUP BY TENPHG NULL bắt buộc phải có giá trị 37 39 4.1 Lệnh INSERT (3) 4.2 Lệnh DELETE  Cú pháp (thêm nhiều dòng)  Dùng để xóa các dòng của bảng INSERT INTO ()  Cú pháp DELETE FROM [WHERE ] 38 40 CuuDuongThanCong.com https://fb.com/tailieudientucntt 10
  11. 29/09/2015 4.2 Ví dụ (1) 4.2 Ví dụ (2) MANV HONV TENLOT TENNV NGSINH DCHI PHAI LUONG MA_NQL PHG DELETE FROM NHANVIEN 333445555 Nguyen Thanh Tung 12/08/1955 638 NVC Q5 Nam 40000 888665555 5 WHERE HONV=‘Tran’ 987987987 Nguyen Manh Hung 09/15/1962 Ba Ria VT Nam 38000 333445555 5 453453453 Tran Thanh Tam 07/31/1972 543 MTL Q1 Nu 25000 333445555 5 999887777 Bui Ngoc Hang 07/19/1968 33 NTH Q1 Nu 38000 987654321 4 DELETE FROM NHANVIEN 987654321 Le Quynh Nhu 07620/1951 219 TD Q3 Nu 43000 888665555 4 WHERE MANV=‘345345345’ 987987987 Tran Hong Quang 04/08/1969 980 LHP Q5 Nam 25000 987654321 4 888665555 Pham Van Vinh 11/10/1945 450 TV HN Nam 55000 NULL 1 DELETE FROM NHANVIEN MA_NVIEN SODA THOIGIAN 333445555 10 10.0 888665555 20 20.0 DELETE FROM SANPHAM WHERE (Gia
  12. 29/09/2015 4.3 Lệnh UPDATE (1) 4.3 Ví dụ (2)  Dùng để thay đổi giá trị của thuộc tính cho  Với đề án có mã số 10, hãy thay đổi nơi thực các dòng của bảng hiện đề án thành ‘Vung Tau’ và phòng ban  Cú pháp phụ trách là phòng 5  DEAN (MaDA, TenDA, Phong, DIADIEM_DA) UPDATE SET =, UPDATE DEAN =, SET DIADIEM_DA=’Vung Tau’, PHONG=5 … WHERE MADA=10 [WHERE ] 45 47 4.3 Ví dụ (1) 4.3 Nhận xét UPDATE NHANVIEN  Những dòng thỏa điều kiện tại mệnh đề SET NGSINH=’08/12/1965’ WHERE sẽ được cập nhật giá trị mới WHERE MANV=‘333445555’  Nếu không chỉ định điều kiện ở mệnh đề WHERE, tất cả các dòng trong bảng sẽ bị cập UPDATE NHANVIEN nhật SET LUONG=LUONG*1.1  Lệnh UPDATE có thể gây ra vi phạm RB tham chiếu  Không cho sửa UPDATE SANPHAM  Sửa luôn những dòng có giá trị đang tham chiếu đến SET Gia = Gia*1.1  CASCADE WHERE Nuocsx=‘Trung Quoc’ 46 48 CuuDuongThanCong.com https://fb.com/tailieudientucntt 12
  13. 29/09/2015 5. Ngôn ngữ truy vấn dữ liệu có cấu trúc 5.1 Giới thiệu (2)  Toán tử so sánh: 5.1 Giới thiệu  =,>,=,
  14. 29/09/2015 5.2 Câu truy vấn tổng quát (2) Truy vấn đơn giản (2) Phân loại câu SELECT:  SQL và ĐSQH  SELECT đơn giản  SELECT có mệnh đề ORDER BY  SELECT  SELECT lồng (câu SELECT lồng câu SELECT khác)  FROM  SELECT gom nhóm (GROUP BY)  WHERE  SELECT gom nhóm (GROUP BY) có điều kiện HAVING SELECT L   L ( R C (R)) FROM WHERE C 53 55 Truy vấn đơn giản (1) Truy vấn đơn giản (3)  Gồm 3 mệnh đề  SELECT 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ả FROM  WHERE WHERE  Là đ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  Tên các cột cần được hiển thị trong kết quả truy vấn nối luận lý AND, OR, NOT, các phép toán so sánh, BETWEEN   FROM  Tên các bảng liên quan đến câu truy vấn  Liệt kê các quan hệ cần thiết.   Là phép tích Decartes các quan hệ (không có từ khóa  Biểu thức boolean xác định dòng nào sẽ được rút trích JOINT, chỉ là dấu phẩy giữa các quan hệ).  Nối các biểu thức: AND, OR, và NOT  Là phép kết các quan hệ (nếu có từ khóa JOINT)  Phép toán:  ,  ,  ,  ,  , , LIKE và BETWEEN 54 56 CuuDuongThanCong.com https://fb.com/tailieudientucntt 14
  15. 29/09/2015 Ví dụ - Truy vấn đơn giản (1) Ví dụ - Mệnh đề SELECT (1)  NHANVIEN (MaNV, HoNV, TenDem, TenNV, NTNS, Dchi, GT, Luong, Ma_NQL, PHG) SELECT MANV, HONV, TENDEM, TENNV  PHONGBAN (MaPH, TenPH, TRPH, NG_Nhanchuc) FROM NHANVIEN  DEAN (MaDA, TenDA, Phong, NamThucHien) WHERE PHG=5 AND GT=‘Nam’  PHANCONG (MaNV, MaDA, ThoiGian) MANV HONV TENDEM TENNV 333445555 Nguyen Thanh Tung 987987987 Nguyen Manh Hung 57 59 Ví dụ - Truy vấn đơn giản (2) Ví dụ - Mệnh đề SELECT (2) Lấy tất cả các cột Tên bí danh của quan hệ kết SELECT * quả SELECT MANV, HONV AS ‘HO’, TENDEM AS ‘TEN DEM’, TENNV AS ‘TEN’ FROM NHANVIEN FROM NHANVIEN WHERE PHG=5 WHERE PHG=5 AND GT=‘Nam’ MANV HONV TENDEM TENNV NS DCHI GT LUONG MA_NQL PHG MANV HO TEN DEM TEN 333445555 Nguyen Thanh Tung 12/08/1955 638 NVC Q5 Nam 40000 888665555 5 333445555 Nguyen Thanh Tung 987987987 Nguyen Manh Hung 09/15/1962 Ba Ria VT Nam 38000 333445555 5 987987987 Nguyen Manh Hung 58 60 CuuDuongThanCong.com https://fb.com/tailieudientucntt 15
  16. 29/09/2015 Ví dụ - Mệnh đề SELECT (3) Ví dụ - Mệnh đề SELECT (5) Mở rộng Loại bỏ các dòng trùng nhau SELECT MANV, HONV + ‘ ’ + TENDEM + ‘ ’ + TENNV AS ‘HO TEN’ SELECT DISTINCT LUONG LUONG FROM NHANVIEN FROM NHANVIEN WHERE PHG=5 AND GT=‘Nam’ WHERE PHG=5 AND GT=‘Nam’ MANV HO TEN LUONG 333445555 Nguyen Thanh Tung 30000 987987987 Nguyen Manh Hung 25000 - Tốn chi phí 25000 38000 - Người dùng muốn thấy 38000 61 63 Ví dụ - Mệnh đề SELECT (4) Ví dụ - Mệnh đề SELECT (6) Mở  Cho biết MANV và TENNV làm việc ở phòng rộng ‘Nghien cuu’ SELECT MANV, LUONG*1.1 AS ‘LUONG10%’ FROM NHANVIEN WHERE PHG=5 AND GT=‘Nam’ NHANVIEN (MaNV, HoNV, TenDem, TenNV, NTNS, Dchi, GT, Luong, Ma_NQL, PHG) MANV LUONG10% PHONGBAN (MaPH, TenPH, TRPH, NG_Nhanchuc) 333445555 33000 DEAN (MaDA, TenDA, Phong, NamThucHien) 987987987 27500 PHANCONG (MaNV, MaDA, ThoiGian) 62 64 CuuDuongThanCong.com https://fb.com/tailieudientucntt 16
  17. 29/09/2015 Ví dụ - Mệnh đề WHERE (1) Ví dụ - Mệnh đề WHERE (3) BETWEEN SELECT MANV, TENNV Biểu thức logic SELECT MANV, TENNV FROM NHANVIEN, PHONGBAN FROM NHANVIEN WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG WHERE LUONG>=20000 AND LUONG
  18. 29/09/2015 Ví dụ - Mệnh đề WHERE (5) Ví dụ - Mệnh đề WHERE (7) LIKE ESCAPE SELECT MANV, TENNV SELECT MANV, TENNV FROM NHANVIEN FROM NHANVIEN WHERE DCHI LIKE ‘Nguyen _ _ _ _’ WHERE DCHI LIKE ‘% Nguyens_%’ ESCAPE ‘s’ SELECT MANV, TENNV Ký tự bất kỳ ‘Nguyen_’ FROM NHANVIEN WHERE DCHI LIKE ‘Nguyen %’ Chuỗi bất kỳ 69 71 Ví dụ - Mệnh đề WHERE (6) Ví dụ - Mệnh đề WHERE (8) NOT LIKE Ngày giờ SELECT MANV, TENNV SELECT MANV, TENNV FROM NHANVIEN FROM NHANVIEN WHERE NGSINH BETWEEN ‘1985-12-08’ AND ‘1986-07-19’ WHERE HONV NOT LIKE ‘Nguyen’ ‘1985-12-08’ YYYY-MM-DD SELECT MANV, TENNV ’17:30:00’ HH:MI:SS ’12/08/1985’ MM/DD/YYYY FROM NHANVIEN ’05:30 PM’ ‘December 8, 1985’ WHERE HONV NOT LIKE ‘Nguyen’ ‘1985-12-08 17:30:00’ 70 72 CuuDuongThanCong.com https://fb.com/tailieudientucntt 18
  19. 29/09/2015 Ví dụ - Mệnh đề WHERE (9) Ví dụ - Mệnh đề FROM (1) NULL  Sử dụng trong trường hợp Không sử dụng mệnh đề WHERE  Không biết (value unknown)  Không thể áp dụng (value inapplicable) SELECT MANV, MAPHG  Không tồn tại (value withheld) FROM NHANVIEN, PHONGBAN  Những biểu thức tính toán có liên quan đến giá trị WHERE TRUE NULL sẽ cho ra kết quả là NULL  x có giá trị là NULL MANV MAPHG  x + 3 cho ra kết quả là NULL 333445555 1  x + 3 là một biểu thức không hợp lệ trong SQL 333445555 4  Những biểu thức so sánh có liên quan đến giá trị NULL 333445555 5 sẽ cho ra kết quả là UNKNOWN 987987987 1  x = 3 cho ra kết quả là UNKNOWN 987987987 4  x = 3 là một so sánh không hợp lệ trong SQL 987987987 5 … … 73 75 Ví dụ - Mệnh đề WHERE (10) Ví dụ - Mệnh đề FROM (2) NULL Tên bí danh SELECT MANV, TENNV SELECT TENPHG, DIADIEM FROM NHANVIEN FROM PHONGBAN PHONGBAN,AS DDIEM_PHG PB, DDIEM_PHG AS DD WHERE MA_NQL IS NULL WHERE PB.MAPHG=DD.MAPHG MAPHG=MAPHG SELECT MANV, TENNV FROM NHANVIEN SELECT TENNV, NV.NGSINH, NGSINH, TENTN, TENTN, NGSINH TN.NGSINH WHERE MA_NQL IS NOT NULL FROM NHANVIEN NHANVIEN,NV, THANNHAN THANNHAN TN WHERE MANV=MA_NVIEN 74 76 CuuDuongThanCong.com https://fb.com/tailieudientucntt 19
  20. 29/09/2015 Mệnh đề ORDER BY (1) Bài tập  Dùng để hiển thị kết quả câu truy vấn theo một thứ tự nào đó  NHANVIEN (MaNV, HoNV, TenDem, TenNV, NTNS, Dchi, GT, Luong, Ma_NQL, PHG)  Cú pháp  PHONGBAN (MaPH, TenPH, TRPH, SELECT NG_Nhanchuc) FROM  DEAN (MaDA, TenDA, Phong, NamThucHien) WHERE  PHANCONG (MaNV, MaDA, ThoiGian) ORDER BY  THANNHAN(T )  ASC: tăng (mặc định)  DESC: giảm 77 79 Mệnh đề ORDER BY (2) Bài tập – BETWEEN, ORDER BY, IS NULL Câu hỏi 1: Danh sách các nhân viên sinh trong khoảng từ năm 1978 đến  Ví dụ 1983? SELECT MA_NVIEN, SODA Select MaNV, HoTen From NhanVien FROM PHANCONG where Year(NTNS)>=1978 AND Year(NTNS)
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2