Bài giảng môn Cơ sở dữ liệu: Chương 5 - ĐH KHTN
lượt xem 50
download
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.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng môn Cơ sở dữ liệu: Chương 5 - ĐH KHTN
- 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$
- 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$
- 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$
- 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$
- 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"
- 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$
- 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$
- 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$
- 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$
- Mệnh'đề'WHERE'(=)' Mệnh'đề'WHERE'(=)' BETWEEN$ NOT$BETWEEN$ SELECT"MAGV,"HOTEN" FROM"GIAOVIEN" SELECT"MANV,"TENNV"" WHERE"LUONG">="20000"AND"LUONG"
- 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$
- 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$
- 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$
- 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$
- 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$
- 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""
- 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$
- 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$
- 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$
- 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$
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng môn Cơ sở dữ liệu: Chương 1 - ĐH KHTN
0 p | 244 | 42
-
Bài giảng môn Cơ sở dữ liệu: Chương 3 - ĐH KHTN
0 p | 179 | 37
-
Bài giảng môn Cơ sở dữ liệu: Chương 2 - ĐH KHTN
0 p | 168 | 35
-
Bài giảng môn Cơ sở dữ liệu: Chương 4 - ĐH KHTN
0 p | 186 | 35
-
Bài giảng môn Cơ sở dữ liệu: Chương 6 - ĐH KHTN
0 p | 177 | 35
-
Bài giảng môn Cơ sở dữ liệu: Chương 7 - ĐH KHTN
0 p | 261 | 35
-
Bài giảng Cơ sở dữ liệu: Chương 1 - Tổng quan cơ sở dữ liệu
0 p | 236 | 17
-
Bài giảng môn Cơ sở dữ liệu: Chương 8 - Thiết kế cơ sở dữ liệu quan hệ
33 p | 141 | 12
-
Bài giảng môn Cơ sở dữ liệu: Chương 6 - Ngôn ngữ SQL
115 p | 128 | 11
-
Bài giảng môn Cơ sở dữ liệu - Bài 5: Ngôn ngữ SQL (ĐH Công nghệ Thông tin)
41 p | 128 | 11
-
Bài giảng môn Cơ sở dữ liệu: Chương 2 - Mô hình thực thể - kết hợp
0 p | 145 | 8
-
Bài giảng môn Cơ sở dữ liệu: Chương 5 - ThS. Thái Bảo Trân
20 p | 76 | 5
-
Bài giảng môn Cơ sở dữ liệu: Chương 4 - ThS. Thái Bảo Trân
35 p | 49 | 4
-
Bài giảng môn Cơ sở dữ liệu: Chương 3 - ThS. Thái Bảo Trân
13 p | 59 | 4
-
Bài giảng môn Cơ sở dữ liệu: Chương 9 - Thiết kế cơ sở dữ liệu quan hệ
0 p | 126 | 4
-
Bài giảng môn Cơ sở dữ liệu: Chương 3 - Mô hình quan hệ
0 p | 102 | 4
-
Bài giảng môn Cơ sở dữ liệu: Chương 6 - ThS. Thái Bảo Trân
50 p | 73 | 2
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