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 5 - ĐH KHTN

Chia sẻ: Vo Hoang Nhan | Ngày: | Loại File: PDF | Số trang:0

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

Chương 5 - SQL thuộc bộ Bài giảng môn Cơ sở dữ liệu, nội dung chương 5 giới thiệu đến các bạn sinh viên một số kiến thức cơ bản về SQL, định nghĩa dữ liệu, truy vấn dữ liệu, cập nhật dữ liệu, khung nhìn, chỉ mục. Tham khảo bài giảng để có kiến thức tổng hợp về SQL.

Chủ đề:
Lưu

Nội dung Text: Bài giảng môn Cơ sở dữ liệu: Chương 5 - ĐH KHTN

  1. Nội'dung'' !  Giới"thiệu" !  Định"nghĩa"dữ"liệu"" ' CHƯƠNG'5' !  Truy"vấn"dữ"liệu"" SQL'(Structured'Query'Language)' !  Cập"nhật"dữ"liệu"" !  Khung"nhìn"(view)" !  Chỉ"mục"(index)" Bài$giảng$môn$Cơ$sở$dữ$liệu$$ ©"Bộ"môn"Hệ"Thống"Thông"Tin"/"Khoa"Công"Nghệ"Thông"Tin"/"Trường"Đại"học"Khoa"học"Tự"nhiên""" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 2$ Giới'thiệu' Giới'thiệu'(=)' !  Ngôn"ngữ"ĐSQH"" !  SQL"gồm" -  Cách"thức"truy"vấn"dữ"liệu" -  Định"nghĩa"dữ"liệu"(DDL)" -  Khó"khăn"cho"người"sử"dụng" -  Thao"tác"dữ"liệu"(DML)" !  SQL"(Structured"Query"Language)" -  Định"nghĩa"khung"nhìn" Lý$thuyết$:$Chuẩn$SQL@92$ -  Ngôn"ngữ"cấp"cao" -  Ràng"buộc"toàn"vẹn"" -  Người"sử"dụng"chỉ"cần"đưa"ra"nội"dung"cần"truy"vấn" -  Phân"quyền"và"bảo"mật" -  Được"phát"triển"bởi"IBM"(1970s)" -  Điều"khiển"giao"tác" -  Được"gọi"là"SEQUEL" !  SQL"sử"dụng"thuật"ngữ" Thương"mại":"SQL"Server"" -  Được"ANSI"công"nhận"và"phát"triển"thành"chuẩn" -  Bảng"~"quan"hệ" "  SQL/86" -  Cột"~"thuộc"tính" "  SQL/92" -  Dòng"~"bộ" "  SQL/99" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 3$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 4$
  2. Nội'dung'chi'>ết' Định'nghĩa'dữ'liệu' !  Giới"thiệu" !  Là"ngôn"ngữ"mô"tả" !  Định$nghĩa$dữ$liệu$ -  Lược"đồ"cho"mỗi"quan"hệ" -  Kiểu"dữ"liệu" -  Miền"giá"trị"tương"ứng"của"từng"thuộc"tính" -  Các"lệnh"định"nghĩa"dữ"liệu" -  Ràng"buộc"toàn"vẹn" !  Truy"vấn"dữ"liệu"" -  Chỉ"mục"trên"mỗi"quan"hệ"" !  Cập"nhật"dữ"liệu"" !  Gồm" !  Khung"nhìn"(view)" -  CREATE"TABLE"(tạo"bảng)" -  DROP"TABLE"(xóa"bảng)" !  Chỉ"mục"(index)" -  ALTER"TABLE"(sửa"bảng)" -  CREATE"DOMAIN"(tạo"miền"giá"trị)" -  CREATE"DATABASE" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 5$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 6$ Kiểu'dữ'liệu' Kiểu'dữ'liệu'(=)' !  Số"(numeric)" !  Chuỗi"ký"tự"(character"string)" -  INTEGER" -  CHARACTER"hoặc"CHAR"" -  SMALLINT" -  CHARACTER(n)"hoặc"CHAR"(n)"" -  NUMERIC,"NUMERIC(p),"NUMERIC(p,s)" -  CHARACTER"VARYING(n)"hoặc"VARCHAR(n)" -  DECIMAL,"DECIMAL(p),"DECIMAL(p,s)" -  NATIONAL"CHARACTER"(n)"hoặc"NCHAR(n)""" -  REAL" !  Chuỗi"bit"(bit"string)" -  DOUBLE"PRECISION" -  BIT,"BIT(x)" -  FLOAT,"FLOAT(p)" -  BIT"VARYING(x)" !  Ngày"giờ"(datetime)" -  DATE"gồm"ngày,"tháng"và"năm" -  TIME"gồm"giờ,"phút"và"giây" -  TIMESTAMP"gồm"ngày"và"giờ" -  DATETIME:"gồm"DATE"và"TIME"(Chỉ"có"trong"SQL"của"SQL" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 7$ ©"Bộ môn Server)"" HTTT - Khoa CNTT - Trường ĐH KHTN" 8$
  3. Lệnh'tạo'bảng' Ví'dụ'N'Tạo'bảng' !  Để"định"nghĩa"một"bảng" !  Tạo"bảng"lưu"trữ"thông"tin"giáo"viên"với"các"thuộc"tính"và" -  Tên"bảng" quy"định"sau:" -  Các"thuộc"tính" -  MaGV":"Khoá"chính"" "  Tên"thuộc"tính" -  HoTen:"Họ"tên"của"giáo"viên"không"được"để"trống" "  Kiểu"dữ"liệu" -  Luong:"Mặc"định"là"1000"" "  Các"RBTV"trên"thuộc"tính" -  Phai:"Phải"là"Nam"hoặc"Nữ"" !  Cú"pháp" -  NgaySinh:$Ngày"tháng"năm"sinh"của"giáo"viên"" -  SoNha,$Duong,$Quan,$ThanhPho":"địa"chỉ"của"giáo"viên"" CREATE$TABLE""($ -  GVQLCM:"mã"giáo"viên"quản"lý"chuyên"môn"của"giáo"viên" $""[],$ (khoá"ngoại)" $""[],$ -  MaBM:"mã"bộ"môn"của"giáo"viên"(khoá"ngoại)" "…$ "[]$ )$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 9$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 10$ Ví'dụ'N'Tạo'bảng' Lệnh'tạo'bảng'(=)' CREATE"TABLE"GIAOVIEN"(" !  "" "MaGV" " "CHAR(9)," -  NOT"NULL" "HoTen " "NVARCHAR(50)," -  NULL" "Luong" " "INT," -  UNIQUE" "Phai" " "CHAR(3)," -  DEFAULT" "NgaySinh" "DATETIME," -  PRIMARY"KEY" "SoNha" " "NVARCHAR(10)," -  FOREIGN"KEY"/"REFERENCES" "Duong" "NVARCHAR(50)," -  CHECK" "Quan" " "NVARCHAR(50)," "ThanhPho "NVARCHAR(50)," !  Đặt"tên"cho"RBTV" "GVQLCM "CHAR(9)," "MaBM " "CHAR(9)" CONSTRAINT$"$ )" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 11$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 12$
  4. Ví'dụ'N'RBTV' Ví'dụ'N'RBTV' CREATE"TABLE"CONGVIEC"(" CREATE"TABLE"GIAOVIEN"(" "MADT" "VARCHAR(10)," "STT" "INT," "MAGV" " "CHAR(9)"PRIMARY$KEY," "TENCV" "NVARCHAR(50)," "HOTEN " "NVARCHAR(50)"NOT$NULL," "NGAYBD"DATETIME," "LUONG""INT"DEFAULT$(1000),$ "NGAYKT"DATETIME," "PRIMARY$KEY(MADT,$STT)" "PHAI" " """CHAR(3)"CHECK$(PHAI$IN( Nam ,$ Nu ))," ")" "NGAYSINH" "DATETIME," CREATE"TABLE"DETAI"(" "SONHA""NVARCHAR(10)," "MADT" ""VARCHAR"(10)"PRIMARY$KEY," "DUONG""NVARCHAR(50)," "TENDT"""NVARCHAR"(50)"UNIQUE," "QUAN" " "NVARCHAR(50)," "KINHPHI"INT," "CAPQL" ""NVARCHAR"(50)," "THANHPHO "NVARCHAR(50)," "NGAYBD""DATETIME," "GVQLCM "CHAR(9)," "NGAYKT""DATETIME," "MABM " "CHAR(9)" "MACD" ""VARCHAR"(10)," "GVCNDT""CHAR"(9)" )" """)" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 13$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 14$ Ví'dụ'N'Đặt'tên'cho'RBTV' Ví'dụ'N'Đặt'tên'cho'RBTV' CREATE"TABLE"GIAOVIEN"($ "MAGV " "CHAR(9)"CONSTRAINT"PK_GV"PRIMARY"KEY," CREATE"TABLE"CONGVIEC(" "HOTEN " "NVARCHAR(50)"CONSTRAINT"NN_HOTEN"NOT"NULL," "MADT" "VARCHAR(10)," "LUONG"" "INT"CONSTRAINT"DE_LUONG"DEFAULT"(10000)," "STT" "INT," "PHAI" "CHAR(3)""CONSTRAINT"CK_PHAI"CHECK"(PHAI"IN('Nam',"'Nu'))"" "TENCV" "NVARCHAR(50)," CONSTRAINT"NN_PHAI"NOT"NULL," "NGAYBD"DATETIME," "NGAYSINH" "DATETIME," "NGAYKT"DATETIME," "SONHA"" "NVARCHAR(10)," " "DUONG"" "NVARCHAR(50)," "CONSTRAINT"PK_CV"PRIMARY"KEY(MADT,"STT)," "QUAN" " "NVARCHAR(50)," "CONSTRAINT"FK_CONGVIEC_DETAI"" "THANHPHO "NVARCHAR(50)," " "FOREIGN"KEY"MADT"REFERENCES"DETAI(MADT)" "GVQL " "CHAR(9)," )" "MABM " "CHAR(9)" )$©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 15$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 16$
  5. Lệnh'sửa'bảng' Lệnh'sửa'bảng'(=)' !  Được"dùng"để"" !  Thêm"RBTV" -  Thay"đổi"cấu"trúc"bảng"" ALTER$TABLE""ADD$ -  Thay"đổi"RBTV" $CONSTRAINT""," "CONSTRAINT""," !  Thêm"cột" "…" ALTER$TABLE""ADD$$ !  Xóa"RBTV" $""[]" " !  Xóa"cột" ALTER$TABLE""DROP$"" ALTER$TABLE""DROP$COLUMN$"" !  Cập"nhật"cột" ALTER$TABLE""ALTER$COLUMN$ $"" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 17$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 18$ Ví'dụ'N'Thay'đổi'cấu'trúc'bảng' Ví'dụ'N'Thay'đổi'RBTV' CREATE"TABLE"BOMON(" "MABM " "INT"NOT"NULL," Phải$xác$định$NOT$NULL$ trước$khi$tạo$khóa$chính$ "TENBM " "NVARCHAR(50)," ALTER"TABLE"GIAOVIEN"ADD"TUOI"INT"" "PHONG " "CHAR(10)," CONSTRAINT"CK_TUOI"CHECK"(TUOI">="23"AND"TUOI"
  6. Lệnh'xóa'bảng' Lệnh'xóa'bảng'(=)' !  Được"dùng"để"xóa"cấu"trúc"bảng" -  Tất"cả"dữ"liệu"của"bảng"cũng"bị"xóa" GIÁOVIÊN" MãGV" HọTên" Lương" Phái" NgàySinh" SốNhà" Đường" Quận" ThànhPhố" GVQL" MãBM" !  Cú"pháp" DROP$TABLE"" BỘMÔN" MãKhoa" TrưởngBM" NgàyNhậnChức" ĐiệnThoại" MãBM$ TênBM" Phòng" !  Ví"dụ" KHOA" TrưởngKhoa" NgàyNhậnChức" TênKhoa" NămTL" Phòng" ĐiệnThoại" MãKhoa" DROP"TABLE"GIAOVIEN"" DROP"TABLE"BOMON"" DROP"TABLE"THAMGIADT" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 21$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 22$ Lệnh'tạo'miền'giá'trị' Nội'dung'chi'>ết' !  Tạo"ra"một"kiểu"dữ"liệu"mới"kế"thừa"những"kiểu"dữ"liệu"có" !  Giới"thiệu" sẳn" !  Cú"pháp" !  Định"nghĩa"dữ"liệu" !  Truy$vấn$dữ$liệu$ CREATE DOMAIN AS -  Truy"vấn"cơ"bản" !  Ví"dụ" -  Tập"hợp,"so"sánh"tập"hợp"và"truy"vấn"lồng" -  Hàm"kết"hợp"và"gom"nhóm" CREATE"DOMAIN"MyString30"AS"VARCHAR(30)" -  Một"số"kiểu"truy"vấn"khác" !  Cập"nhật"dữ"liệu"" !  Khung"nhìn"(view)" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 23$ !  Chỉ"mục"(index)" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 24$
  7. Truy'vấn'dữ'liệu' Truy'vấn'cơ'bản' !  Là"ngôn"ngữ"rút"trích"dữ"liệu"thỏa"một"số"điều"kiện"nào"đó" !  Gồm"3"mệnh"đề" !  Dựa"trên" SELECT"" -  Cho"phép"1"bảng"có"nhiều"dòng"trùng"nhau" -  Bảng"là"bag"≠"quan"hệ"là"set" -  " "  Tên"các"bảng"liên"quan"đến"câu"truy"vấn" -  " WHERE"PHONG='I53'" × FROM"" MaKhoa" TenKhoa" Phong" NamTL" DienThoai" TruongKhoa" NgayNhanChuc" σ CNTT" Công"nghệ"thông"tin" I53" 1995" 08313964145" GV130" 01/01/2007" SH" Sinh"học" B32" 1975" 08313123545" GV250" 01/01/1990" SELECT"L" FROM"R" WHERE"C" πL (σC (R)) σ PHG='I53'∧NamTL='1995'"(KHOA)" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 27$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 28$
  8. Mệnh'đề'SELECT'(=)'' Mệnh'đề'SELECT'(=)' Lấy$ra$một$số$cột$ Tên$bí$danh$ SELECT"MAKHOA,"TENKHOA,"PHONG" SELECT"MAKHOA"AS"'Mã"khoa',"TENKHOA"AS"'Tên"khoa',"PHONG"AS"'Mã"phòng'" FROM"KHOA" FROM"KHOA" WHERE"PHONG='I53'" WHERE"PHONG='I53'"AND"NAMTL"="'1995'" AND"NAMTL"="'1995'" Mã" Tên"khoa" Mã"phòng" khoa" MaKhoa" TenKhoa" Phong" CNTT" Công"nghệ"thông" I53" CNTT" Công"nghệ"thông"tin" I53" tin" ρ Mã"khoa,"Tên"khoa,"Mã"phòng(π MANV,HONV,TENLOT,TENNV( σ PHG='I53'∧NamTL='1995'"(KHOA)))" π MAKHOA,"TENKHOA,"PHONG( σ PHG='I53'∧NamTL='1995'"(KHOA))" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 29$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 30$ Mệnh'đề'SELECT'(=)' Mệnh'đề'SELECT'(=)' Mở$rộng$ Mở$rộng$ SELECT"MAGV,"HOTEN,"SONHA"+"','"+"DUONG"+"','"+"','"+"QUAN"+"','"+" SELECT"MAGV,"LUONG*1.1"AS"'LUONG10%'" THANHPHO"AS"'DIA"CHI'" FROM"GIAOVIEN" FROM"GIAOVIEN" WHERE"PHAI='Nam'" WHERE"PHAI='Nam'" MAGV" HOTEN" DIA"CHI" MAGV" LUONG10%" GV001" Nguyễn"Văn"A" 123"Phan"Đăng"Lưu,"Q.Phú"Nhuận,"TP.Hồ" GV001" 550000" Chí"Minh" ρ MAGV,HOTEN,DIA CHI( π MAGV,HOTEN,SONHA+DUONG+QUAN+THANHPHO( σ PHAI= Nam (GIAOVIEN))) ρ MAGV,LUONG10%( π MAGV,LUONG*1.1( σ PHAI= Nam (GIAOVIEN))) ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 31$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 32$
  9. Mệnh'đề'SELECT'(=)' Ví'dụ' !  Cho"biết"MAGV"và"TENGV"làm"việc"ở"bộ"môn" Hệ"thống" Loại$bỏ$các$dòng$trùng$nhau$ thông"tin " SELECT"LUONG" SELECT"DISTINCT"LUONG" FROM"GIAOVIEN" FROM"GIAOVIEN" R1 ← GIAOVIEN GIAOVIEN.MABM=BOMON.MABM BOMON WHERE"PHAI= Nam " WHERE"PHAI= Nam " KQ ← πMAGV, HOTEN (σTENBM='Hệ thống thông tin' (R1)) LUONG" LUONG" 30000" 30000" 25000" 25000" SELECT"" MAGV,"HOTEN" 25000" 38000" FROM" GIAOVIEN,"BOMON" 38000" WHERE" TENBM="N'Hệ"thống"thông"tin'" AND" GIAOVIEN.MABM=BOMON.MABM" / "Tốn"chi"phí" / "Người"dùng"muốn"thấy" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 33$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 34$ Mệnh'đề'WHERE' Mệnh'đề'WHERE'(=)' !  Sử"dụng"các"phép"toán"AND,"OR"để"nối"các"biểu"thức"điều" Độ$ưu$tiên$ kiện"lại"với"nhau""" SELECT"MAGV,"HOTEN" SELECT"MAGV,"HOTEN" FROM"GIAOVIEN,"BOMON" FROM"GIAOVIEN,"BOMON" TRUE" WHERE"(TENBM"="N'Hệ"thống"thông"tin'"OR"TENBM"="N'Mạng"máy"tính')" Biểu$ thức$ WHERE"TENBM"="N'Hệ"thống"thông"tin'" AND"GIAOVIEN.MABM"="BOMON.MABM" AND" luận$lý$ AND"GIAOVIEN.MABM"="BOMON.MABM" TRUE" Độ"ưu"tiên"mặc"định"của"các"phép"toán:"từ"trái"qua"phải."" Nên"sử"dụng"dấu"ngoặc"thể"hiện"tường"minh"sự"ưu"tiên"của"các"phép"toán."" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 35$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 36$
  10. Mệnh'đề'WHERE'(=)' Mệnh'đề'WHERE'(=)' BETWEEN$ NOT$BETWEEN$ SELECT"MAGV,"HOTEN" FROM"GIAOVIEN" SELECT"MANV,"TENNV"" WHERE"LUONG">="20000"AND"LUONG"
  11. Mệnh'đề'WHERE'(=)' Mệnh'đề'WHERE'(=)' ESCAPE$ MAGV HOTEN charlist$ MAGV" HOTEN" GV001 Nguyễn Văn A GV001" Nguyễn"Văn"A" GV002 Nguyễn_Văn_A GV002" Hoàng"Thị"C" SELECT"MAGV,"HOTEN" SELECT"MAGV,"HOTEN" SELECT"*" SELECT"*" FROM"GIAOVIEN" FROM"GIAOVIEN" FROM"GIAOVIEN"GV" FROM"GIAOVIEN"GV" WHERE"HOTEN"LIKE"N'Nguyễn_% " WHERE"HOTEN"LIKE"N'Nguyễn![_]%'"ESCAPE"'!'" WHERE"GV.HOTEN"LIKE"N'[n]%'" WHERE"GV.HOTEN"LIKE"N'[nh]%'" MAGV" HOTEN" MAGV" HOTEN" MAGV" HOTEN" MAGV" HOTEN" GV001" Nguyễn"Văn"A" GV001" Nguyễn"Văn"A" GV001" Nguyễn"Văn"A" GV001" Nguyễn"Văn"A" GV002" Nguyễn_Văn_A" GV002" Nguyễn_Văn_A" GV002" Hoàng"Thị"C" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 41$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 42$ Mệnh'đề'WHERE'(=)' Mệnh'đề'WHERE'(=)' charlist$ MAGV" HOTEN" Ngày$giờ$ GV001" Nguyễn"Văn"A" GV002" Hoàng"Thị"C" SELECT"MAGV,"HOTEN" FROM"GIAOVIEN" SELECT"*" SELECT"*" WHERE"NGAYSINH"BETWEEN" 1955/12/08 AND" 1966/07/19 " FROM"GIAOVIEN"GV" FROM"GIAOVIEN"GV" WHERE"GV.HOTEN"LIKE"N'[^h]%'" WHERE"GV.HOTEN"LIKE"N'[^nh]%'" 1955/12/08 "YYYY/MM/DD" 17:30:00 " HH:MI:SS" 12/08/1955 MM/DD/YYYY" " 05:30"PM " MAGV" HOTEN" MAGV" HOTEN" December"8,"1955 " GV001" Nguyễn"Văn"A" 1955/12/08"17:30:00 " ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 43$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 44$
  12. Mệnh'đề'WHERE'(=)' Mệnh'đề'WHERE'(=)' NULL$ NULL$ -  Sử"dụng"trong"trường"hợp:" "  Không"biết"(value"unknown)" SELECT"MAGV,"HOTEN" "  Không"thể"áp"dụng"(value"inapplicable)" FROM"GIAOVIEN" "  Không"tồn"tại"(value"withheld)" WHERE"GVQL"IS"NULL" -  Những"biểu"thức"tính"toán"có"liên"quan"đến"giá"trị"NULL"sẽ" cho"ra"kết"quả"là"NULL" "  x"có"giá"trị"là"NULL" SELECT"MAGV,"HOTEN" "  x"+"3"cho"ra"kết"quả"là"NULL" FROM"GIAOVIEN" "  x"+"3"là"một"biểu"thức"không"hợp"lệ"trong"SQL" WHERE"GVQL"IS"NOT"NULL" -  Những"biểu"thức"so"sánh"có"liên"quan"đến"giá"trị"NULL"sẽ"cho" ra""kết"quả"là"UNKNOWN" "  x"="3"cho"ra"kết"quả"là"UNKNOWN" "  x"="3"là"một"so"sánh"không"hợp"lệ"trong"SQL" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 45$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 46$ Mệnh'đề'FROM' Mệnh'đề'FROM'(=)' Mệnh$đề$FROM$tương$đương$với$phép$x$trong$đại$số$quan$hệ$$ Tên$bí$danh$ SELECT"MAGV,"MABM,"TENBM" SELECT"*" Nhập"nhằng"(Ambigous)"???" FROM"GIAOVIEN,"BOMON" GIAOVIEN"x"BOMON"" FROM"GIAOVIEN,"BOMON" WHERE"MABM"="MABM" MAGV" MABM"" MABM "TENBM" SELECT"*" 001" HTTT" HTTT "Hệ"thống"thông"tin"" SELECT"G.MAGV,"G.MABM,"B.TENBM"" FROM"GIAOVIEN,"BOMON" 001" HTTT" MTT "Mạng"máy"tính"" 001" CNPM "Công"nghệ"PM"" FROM"GIAOVIEN"G,"BOMON"AS"B$ MAGV" MABM"" MABM "TENBM" WHERE"TRUE" HTTT" 002" MMT" HTTT "Hệ"thống"thông"tin"" WHERE"G.MABM"="B.MABM" 001" HTTT" HTTT "Hệ"thống"thông"tin"" 002" MTT "Mạng"máy"tính"" Sử"dụng"thêm"điều" MMT" 001" HTTT" MTT "Mạng"máy"tính"" 002" CNPM "Công"nghệ"PM"" kiện"ở"WHERE"để"biểu" MMT" 001" HTTT" CNPM "Công"nghệ"PM"" Đặt"bí"danh"cho"bảng"sử"dụng" diễn"phép"kết"" …" …" …" …" 002" MMT" HTTT "Hệ"thống"thông"tin"" khoảng"trắng"hoặc"từ"khoá"AS" 002" MMT" MTT "Mạng"máy"tính"" GIAOVIEN""""""""BOMON"" C$ MAGV" MABM "TENBM" 002" MMT" CNPM "Công"nghệ"PM"" SELECT"*" …" …" …" …" 001" HTTT "Hệ"thống"thông"tin"" Điều%kiện%kết%để%tìm%ra%bộ%môn%của% FROM"GIAOVIEN,"BOMON" giáo%viên% 002" MTT "Mạng"máy"tính"" WHERE"C$ …" môn HTTT …" - Khoa CNTT ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 47$ ©"Bộ …" - Trường ĐH KHTN" 48$
  13. Ví'dụ'1' Ví'dụ'2' !  Cho"biết"tên"của"bộ"môn"và"tên"của"trưởng"bộ"môn"của" !  Với" những" đề" tài" thuộc" cấp" quản" lý" Thành" phố ," cho" biết" những"bộ"môn"thuộc"khoa"CNTT"(mã"khoa)" mã" đề" tài," đề" tài" thuộc" về" chủ" đề" nào," họ" tên" người" chủ" nghiệm"đề"tài"cùng"với"ngày"sinh"và"địa"chỉ"của"người"ấy" SELECT"BM.TENBM,"GV.HOTEN""AS"TEN_TRUONGBM" SELECT"D.MADT,"C.TENCD,"G.MAGV,"G.HOTEN,"G.DIACHI"" FROM"BOMON"BM,"GIAOVIEN"GV$ FROM"DETAI"D,"CHUDE"C,"GIAOVIEN"G" WHERE"BM.TRUONGBM%=%GV.MAGV"AND"" WHERE"D.CapQL"="‘Thanh"Pho’"AND"D.MACD"="C.MACD"AND" "BM.MAKHOA="‘CNTT’"" D.GVCNDT"="G.MAGV"" Điều"kiện"kết"để"tìm"ra"giáo"viên"làm"trưởng"bộ"môn" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 49$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 50$ Ví'dụ'3' Ví'dụ'4' !  Tìm"họ"tên"của"giáo"viên"viên"thuộc"bộ"môn" HTTT "có" !  Tìm"họ"tên"của"từng"giáo"viên"và"người"phụ"trách"chuyên" tham"gia"vào"đề"tài" "Mobile"Database "với"số"tiền"phụ"cấp" môn"trực"tiếp"của"nhân"viên"đó." cho"mỗi"công"việc"trên"10"triệu." SELECT"GV.HOTEN"" FROM"GIAOVIEN"GV,"THAMGIADT"TG,"DETAI"DT"" WHERE"GV.MAGV"="TG.MAGV"AND"" "TG.MADT"="DT.MADT"AND"" "GV.MABM=‘HTTT’"AND"" "DT.TENDT=‘Mobile"Database’"AND"TG.PHUCAP>10" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 51$ ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 52$
  14. Ví'dụ'5' Mệnh'đề'ORDER'BY' !  Tìm"họ"tên"của"những"giáo"viên"được" Trần"Trà"Hương " !  Dùng"để"hiển"thị"kết"quả"câu"truy"vấn"theo"một"thứ"tự"nào" phụ"trách"quản"lý"chuyên"môn." đó" !  Cú"pháp" SELECT"" WHERE"" -  ASC:"tăng"(mặc"định)" -  DESC:"giảm" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 53$ ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 54$ Mệnh'đề'ORDER'BY'(=)' Nội'dung'chi'>ết' !  Ví"dụ" !  Giới"thiệu" SELECT"*"" !  Định"nghĩa"dữ"liệu" FROM"THAMGIADT"" !  Truy$vấn$dữ$liệu$ ORDER"BY"MAGV"DESC,"MADT,"STT"DESC" -  Truy"vấn"cơ"bản" MAGV MADT STT MAGV MADT STT GV01 DT01 1 GV02 DT01 3 -  Tập"hợp,"so"sánh"tập"hợp"và"truy"vấn"lồng" GV01 DT01 2 GV02 DT01 2 -  Hàm"kết"hợp"và"gom"nhóm" GV01 DT02 1 GV02 DT03 4 -  Một"số"dạng"truy"vấn"khác" GV02 DT01 2 GV02 DT03 1 GV02 DT01 3 GV01 DT01 2 !  Cập"nhật"dữ"liệu"" GV02 GV02 DT03 DT03 1 4 GV01 GV01 DT01 DT02 1 1 !  Khung"nhìn"(view)" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 55$ !  Chỉ"mục"(index)" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 56$
  15. Phép'toán'tập'hợp'trong'SQL' Phép'toán'tập'hợp'trong'SQL'(=)' !  SQL"có"cài"đặt"các"phép"toán" !  Cú"pháp" -  Hội"(UNION)" -  Giao"(INTERSECT)" SELECT""WHERE""FROM"" !  Kết"quả"trả"về"là"tập"hợp" SELECT""WHERE""WHERE""FROM"" "  EXCEPT"ALL" EXCEPT$[ALL]$ SELECT""WHERE"=1995" WHERE"BM.TRUONGBM"="DT.GVCNDT" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 59$ ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 60$
  16. Ví'dụ'8' Truy'vấn'lồng' !  Tìm"những"giáo"viên"không"tham"gia"bất"kỳ"đề"tài"nào" SELECT"MAGV,"HOTEN" FROM"GIAOVIEN,"BOMON" WHERE"TENBM"="N'Hệ"thống"thông"tin'" SELECT"MAGV" FROM"GIAOVIEN" AND"GIAOVIEN.MABM"="BOMON.MABM" EXCEPT" SELECT"MAGV" Câu"truy"vấn" SELECT"" query)" WHERE"" $FROM""
  17. Ví'dụ'N'Lồng'phân'cấp' Ví'dụ'9' SELECT"MAGV,"HOTEN" SELECT"HOTEN" Sử%dụng%phép%kết%% FROM"GIAOVIEN,"BOMON" FROM"GIAOVIEN" WHERE""GIAOVIEN.MAGV"="BOMON.TRUONGBM" WHERE"MAGV"IN"(SELECT"MAGV" SELECT"MAGV,"HOTEN" " " "FROM"GIAOVIEN" FROM"GIAOVIEN" " " "WHERE"HOTEN"LIKE"N'Nguyễn%'" SELECT"MAGV,"HOTEN" WHERE"MABM"IN"(‘001'," " " "AND"LUONG">"200000)" FROM"GIAOVIEN" ‘002',"‘004',"‘005‘,"‘007‘")" OR"MAGV"IN"(SELECT"TRUONGBM" WHERE"MAGV"IN"(SELECT"TRUONGBM" " " "FROM"BOMON" Sử%dụng%truy%vấn%lồng%với%IN% " "FROM"BOMON" " " "WHERE"YEAR(NGAYNHANCHUC)>=1995)" "" Mệnh"đề"WHERE"của"truy"vấn"con"không"tham"chiếu"đến"thuộc" tính"của"các"quan"hệ"trong"mệnh"đề"FROM"ở"truy"vấn"cha" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 65$ ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 66$ Ví'dụ'10' Ví'dụ'11' !  Tìm"những"giáo"viên"không"tham"gia"đề"tài"nào" !  Tìm"những"giáo"viên"có"lương"lớn"hơn"lương"của"ít"nhất"một" giáo"viên"bộ"môn" Công"nghệ"phần"mềm " SELECT"*" SELECT"*" FROM"GIAOVIEN" FROM"GIAOVIEN" WHERE"MAGV"NOT"IN(SELECT"MAGV" WHERE"LUONG">"ANY"(SELECT"GV.LUONG" " " "FROM"THAMGIADT)" " " "FROM"GIAOVIEN"GV,"BOMON"BM" " " "WHERE"GV.MABM"="BM.MABM" " " "AND"BM.TENBM"="N'Công"nghệ"phần"mềm')" SELECT"*" FROM"GIAOVIEN" SELECT"GV1.*" WHERE"MAGV""ALL(SELECT"MAGV" FROM"GIAOVIEN"GV1,"GIAOVIEN"GV2,"BOMON"BM" " " "FROM"THAMGIADT)" WHERE"GV2.MABM"="BM.MABM" AND"BM.TENBM"="N'Công"nghệ"phần"mềm'"AND"GV1.LUONG">"GV2.LUONG" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 67$ ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 68$
  18. Ví'dụ'12' Ví'dụ'13' !  Tìm"những"giáo"viên"có"lương"lớn"hơn"lương"của"tất"cả"giáo" !  Tìm"những"trưởng"bộ"môn"tham"gia"tối"thiểu"1"đề"tài" viên"thuộc"bộ"môn" Hệ"thống"thông"tin " SELECT"*" FROM"GIAOVIEN" SELECT"*" WHERE"MAGV"IN"(SELECT"TRUONGBM" FROM"GIAOVIEN" " """""""""FROM"BOMON)" WHERE"LUONG">"ALL"(SELECT"LUONG" AND"MAGV"IN"(SELECT"MAGV" " " "FROM"GIAOVIEN"GV,"BOMON"BM" " """"FROM"THAMGIADT)" " " "WHERE"GV.MABM"="BM.MABM" " " "AND"BM.TENBM"="N'Hệ"thống"thông"tin')" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 69$ ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 70$ Ví'dụ'N'Lồng'tương'quan' Ví'dụ'N'Lồng'tương'quan'' !  Tìm"những"giáo"viên"là"trưởng"bộ"môn" !  Tìm"những"giáo"viên"có"lương"lớn"nhất"" SELECT"MAGV,"HOTEN" Giáo"viên"là"có"lương"lớn" Sử%dụng%phép%kết%% SELECT"MAGV,"HOTEN" nhất"khi"không$tồn$tại$một" FROM"GIAOVIEN,"BOMON" FROM"GIAOVIEN"GV" giáo"viên"nào"mà"có"lương" WHERE""GIAOVIEN.MAGV"="BOMON.TRUONGBM" lớn"hơn"giáo"viên"đó"" WHERE"NOT$EXISTS"(SELECT"*" SELECT"MAGV,"HOTEN" " "FROM"GIAOVIEN"GV2"" FROM"GIAOVIEN"GV$ " "WHERE"GV2.LUONG"">""GV.LUONG)" WHERE"EXISTS"(SELECT"*" Sử%dụng%truy%vấn%lồng%với%EXISTS%% " "FROM"BOMON"BM" " "WHERE"BM.TRUONGBM"="GV.MAGV)" SELECT"MAGV,"HOTEN" Giáo"viên"là"có"lương"lớn" Giáo"viên"là"trưởng"bộ"môn"khi"tồn$tại$một"bộ"môn"có"TRUONGBM"=" nhất"khi"lương"của"giáo"viên" FROM"GIAOVIEN"GV" MAGV"của"giáo"viên"đó""" lớn$hơn$hoặc$bằng$tất$cả" WHERE$LUONG$>=$ALL$(SELECT"LUONG"" lương"của"các"giáo"viên" Mệnh"đề"WHERE"của"truy"vấn"con"tham"chiếu"ít"nhất"một"thuộc"tính"của"các" " "FROM"GIAOVIEN"GV2)" quan"hệ"trong"mệnh"đề"FROM"ở"truy"vấn"cha" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 71$ ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 72$
  19. Ví'dụ'14' Ví'dụ'15' !  Tìm"giáo"viên"trùng"tên"và"cùng"giới"tính"với"giáo"viên"khác" !  Tìm"những"giáo"viên"không"tham"gia"đề"tài"nào" trong"cùng"bộ"môn" SELECT"*" SELECT"*" FROM"GIAOVIEN"GV$ FROM"GIAOVIEN"GV1" WHERE"NOT$EXISTS"(SELECT"*" WHERE"EXISTS"(SELECT"*" " """"""""""FROM"THAMGIADT"PC" " "FROM"GIAOVIEN"GV2" " """"""""""WHERE"PC.MAGV"="GV.MAGV)" " "WHERE"GV1.HOTEN"LIKE"GV2.HOTEN" Giáo"viên"GV"không"tham"gia"đề" " "AND"GV1.PHAI"="GV2.PHAI" tài"khi"không$tồn$tại"một"dòng" " "AND"GV1.MABM"="GV2.MABM" nào"trong"THAMGIADT"mà"có" MAGV"="GV.MAGV" " "AND"GV1.MAGV""GV2.MAGV)" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 73$ ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 74$ Ví'dụ'16' Ví'dụ'17' !  Tìm"những"giáo"viên"có"lương"lớn"hơn"lương"của"ít"nhất"một" !  Tìm"những"trưởng"bộ"môn"tham"gia"tối"thiểu"1"đề"tài" giáo"viên"bộ"môn" Công"nghệ"phần"mềm " SELECT"*" FROM"GIAOVIEN"GV" SELECT"*" WHERE"EXISTS"(SELECT"*" FROM"GIAOVIEN"GV1" " """FROM"BOMON"BM" WHERE"EXISTS"(SELECT"*" " """WHERE"GV.MAGV"=BM.TRUONGBM)" " "FROM"GIAOVIEN"GV2,"BOMON"BM" AND"EXISTS"(SELECT"*"FROM"THAMGIADT"PC" " "WHERE"GV2.MABM"="BM.MABM" """"""""""WHERE"PC.MAGV"="GV.MAGV)" " "AND"BM.TENBM"="N'Công"nghệ"phần"mềm'" " "AND"GV1.LUONG">"GV2.LUONG)" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 75$ ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 76$
  20. Nhận'xét'IN'và'EXISTS' Nhận'xét'IN'và'EXISTS' !  IN" !  EXISTS:" -  " -  Sử"dụng"để"kiểm"tra"tồn"tại" -  Thuộc"tính"ở"mệnh"đề"SELECT"của"truy"vấn"con"phải"có"cùng" -  Cú"pháp"sử"dụng""" kiểu"dữ"liệu"với"thuộc"tính"ở"mệnh"đề"WHERE"của"truy"vấn" -  …"EXISTS"(Select"…"From"…"Where…)" cha" Sub query !  EXISTS" -  Không"cần"có"thuộc"tính,"hằng"số"hay"biểu"thức"nào"khác"đứng" Nếu"sub"query"có"dữ"liệu"(>="1"dòng)"" trước" #"tồn"tại""mệnh"đề"EXISTS"(…)"="TRUE""" -  Không"nhất"thiết"liệt"kê"tên"thuộc"tính"ở"mệnh"đề"SELECT"của" truy"vấn"con" Nếu"sub"query"không"có"dữ"liệu"(0"dòng"hoặc"rỗng)"" -  Những"câu"truy"vấn"có"="ANY"hay"IN"đều"có"thể"chuyển"thành" #"Không"tồn"tại""mệnh"đề"EXISTS"(…)"="FALSE"" câu"truy"vấn"có"EXISTS" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 77$ ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 78$ Ví'dụ'18' Ví'dụ'19' !  Tìm"những"giáo"viên"có"tham"gia"đề"tài" !  Tìm"những"giáo"viên"không"tham"gia"đề"tài" SELECT"*" SELECT"*" FROM"GIAOVIEN"GV$ FROM"GIAOVIEN"GV$ WHERE"EXISTS"(SELECT"*" WHERE"NOT$EXISTS"(SELECT"*" " """"""""""FROM"THAMGIADT"PC" " """"""""""FROM"THAMGIADT"PC" " """"""""""WHERE"PC.MAGV"="GV.MAGV)" " """"""""""WHERE"PC.MAGV"="GV.MAGV)" Nếu"giáo"viên"GV"có"tham"gia"đề"tài"#" Nếu"giáo"viên"GV"không"tham"gia"đề" câu"truy"vấn"bên"trong"sẽ"có"dữ"liệu" tài"#"câu"truy"vấn"bên"trong"sẽ"rỗng" (>="1"dòng)"#"mệnh"EXISTS"(S".."F…" (0"dòng)"#"NOT"EXISTS"(S…F..W)"có" W)"có"giá"trị"TRUE"" giá"trị"TRUE"" ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 79$ ©"Bộ"môn"HTTT"/"Khoa"CNTT"/"Trường"ĐH"KHTN" 80$
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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