Bài giảng Cơ sở dữ liệu - Chương 4: Ngôn ngữ truy vấn có cấu trúc
lượt xem 5
download
Bài giảng cung cấp cho người học các kiến thức: Ngôn ngữ truy vấn có cấu trúc. Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên đang theo học môn dùng làm tài liệu học tập và nghiên cứu.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cơ sở dữ liệu - Chương 4: Ngôn ngữ truy vấn có cấu trúc
- TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU VÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU Chương 4 NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL – Structured Query Language) Giảng viên: ThS. Nguyễn Vương Thịnh bản ghi môn: Hệ thống thông tin Hải Phòng, 2016
- Thông tin về giảng viên Họ và tên Nguyễn Vương Thịnh Đơn vị công tác Bộ môn Hệ thống thông tin – Khoa Công nghệ thông tin Học vị Thạc sỹ Chuyên ngành Hệ thống thông tin Cơ sở đào tạo Trường Đại học Công nghệ - Đại học Quốc Gia Hà Nội Năm tốt nghiệp 2012 Điện thoại 0983283791 Email thinhnv@vimaru.edu.vn Website http://scholar.vimaru.edu.vn/thinhnv 2
- Th ô n g t in v ề h ọc p h ần Tên học phần Cơ sở dữ liệu và quản trị cơ sở dữ liệu Tên tiếng Anh Database and Database Management Mã học phần 17425 Số tín chỉ 04 tín chỉ (LT: 45 tiết, TH: 30 tiết) Bộ môn phụ trách Hệ thống thông tin PHƯƠNG PHÁP HỌC TẬP, NGHIÊN CỨ v UN g h e g i ản g , t h ảo lu ận , t ra o đ ổi v ới g i ản g v iê n t rê n l ớp . PH v TựN ƯƠ nG P HÁP g h iê n c ứ ĐuÁN t àH GIÁ i li ệu v à là m b à i t ập ở n h à . v S V p h ải t h a m d ự ít n h ất 7 5 % t h ời g ia n . v Có 0 2 b à i k i ểm t ra v i ết g i ữa h ọc p h ần ( X2 = ( L1 + L2 ) /2 ) , 0 1 b à i k i ểm t ra t h ực h à n h ( X3 ) . Đ i ểm q u á t rìn h X = ( X2 + X3 ) /2 . 3 v Th i k ết t h ú c h ọc p h ần b ằn g h ìn h t h ức t r ắc n g h i ệm
- Tài liệu tham khảo 1. Elmasri, Navathe, Somayajulu, Gupta, Fundamentals of Database Systems (the 4th Edition), Pearson Education Inc, 2004. 2. Nguyễn Tuệ, Giáo trình Nhập môn Hệ Cơ sở dữ liệu, Nhà xuất bản Giáo dục Việt Nam, 2007. 3. Nguyễn Kim Anh, N g u y ê n lý c ủa c á c h ệ C ơ s ở d ữ li ệu , Nhà xuất bản Đại học Quốc gia Hà Nội, 2004. 4
- Tà i li ệu t h a m k h ảo 5
- NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC 4.1. TỔNG QUAN VỀ NGÔN NGỮ SQL 4.2. NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU (DDL) 4.3. NGÔN NGỮ THAO TÁC DỮ LIỆU (DML) 4.4. CÁC DẠNG THỨC CỦA CÂU LỆNH SELECT 4.5. CÂU LỆNH SELECT VÀ ĐẠI SỐ QUAN HỆ 6
- 4.1. TỔNG QUAN VỀ NGÔN NGỮ SQL ( S t ru c t u re d Qu e ry La n g u a g e ) 4.1.1. LỊCH SỬ PHÁT TRIỂN q Đ ược p h á t t ri ển b ởi IBM v à o n h ữn g n ă m 7 0 v ới t ê n g ọi b a n đ ầu là S q u e l d ựa t rê n m ô h ìn h d ữ li ệu q u a n h ệ c ủa F. Co d d . q Vi ện Tiê u c h u ẩn q u ốc g ia Ho a Kỳ ( AN S I) v à Tổ c h ức t iê u c h u ẩn q u ốc t ế ( IS O) đ ã c ô n g b ố c á c p h iê n b ản c h u ẩn c ủa S QL: S QL_8 6 , S QL_8 9 , S QL_9 2 , S QL:1 9 9 9 , S QL:2 0 0 3 , S QL:2 0 0 6 , S QL:2 0 0 8 , S QL:2 0 1 1 q Cá c p h ần m ềm h ệ q u ản t r ị c ơ s ở d ữ li ệu k h á c n h a u s ẽ h ỗ t r ợ n g ô n n g ữ S QL ở c á c m ức đ ộ k h á c n h a u ( c ó t h ể bổ sung t h ê m h o ặc k h ô n g h ỗ t r ợ m ột s ố c â u l ện h h a y c ú p h á p )
- 4 . 1 . 2 . CÁC THÀN H P H ẦN CỦA N GÔN N G Ữ S QL NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU (DDL – Data Definition Language) (Định nghĩa (xác lập) hoặc thay đổi cấu t r ú c t ập t in c ủa CS D L, c á c b ản g d ữ li ệu , c á c liê n k ết , . . . ) NGÔN NGỮ THAO TÁC DỮ LIỆU (DML – Data Definition Language) ( C ập n h ật d ữ li ệu v à o c á c b ản g , t r u y v ấn ( đ ọc ) d ữ li ệu t ừ c á c b ản g , . . . )
- 4 . 1 . 3 . M ỘT S Ố QUY ƯỚC V Ề THU ẬT N G Ữ Kh i là m v i ệc v ới S QL v à c á c h ệ q u ản t r ị c ơ s ở d ữ li ệu t h ô n g t h ườn g : q D ữ li ệu đ ược t ổ c h ức d ưới d ạn g c ơ s ở d ữ li ệu ( d a t a b a s e ) . Đ ó là m ột t ập h ợp g ồm c á c b ản g d ữ li ệu c ó liê n q u a n . q M ỗi b ản g d ữ li ệu ( d a t a t a b le ) là t ập h ợp c á c h à n g ( b ản g h i) v à c ột . Đ ó c h ín h là m ột q u a n h ệ ( re la t io n ) t ro n g m ô h ìn h q u a n h ệ. Lưu ý : M ột t ập h ợp c á c b ản g h i là k ết q u ả t r ả v ề c ủa m ột c â u l ện h t ru y v ấn S ELECT c ũ n g đ ược x e m là m ột q u a n h ệ. q M ỗi c ột ( c o lu m n ) c ủa b ản g là m ột t h u ộc t ín h ( a t t rib u t e ) c ủa q u a n h ệ, m ỗi b ản g h i ( re c o rd ) c ủa b ản g là m ột b ộ ( t u p le ) c ủa q u a n h ệ. 9 Cấu t rú c c ủa b ản g d ữ li ệu ( d a n h s á c h c á c c ột ) đ ược x á c q
- Lớp Học Viên Mã Lớp Mã HV Tên Lớp Tên HV Phòng Học Năm Sinh Điểm Thi Mã Lớp Mã Lớp Tên Lớp Phòng học L1 Word T001 P203 L2 Word T002 P204 Mã HV Tên HV Năm Sinh Điểm Thi Mã Lớp HV01 An 1984 5.5 L1 HV02 Bình 1989 7.0 L2 HV03 Cường 1985 6.5 L1 10
- 4 . 1 . 4 . CÁC KIỂU D Ữ LIỆU TRON G S QL STT Kiểu dữ liệu Ý nghĩa 1 char(n) Chuỗi ký tự ASCI độ dài n cố định 2 varchar(n) Chuỗi ký tự ASCI có độ dài biến đổi 3 nchar(n) Chuỗi ký tự Unicode độ dài n cố định 4 nvarchar(n) Chuỗi ký tự Unicode độ dài biến đổi 5 bit Chứa giá trị tương ứng với 01 trong 02 trạng thái 0 hoặc 1 6 tinyint Số nguyên (0 đến 255) 7 smallint Số nguyên (-215 đến 215 – 1) 8 int Số nguyên (-231 đến 231 – 1) 9 bigint Số nguyên (-263 đến 263 – 1) 10 money Tiền tệ (-922,337,203,685,477.5808 to 922,337,203,685,477.5807) 11 smallmoney Tiền tệ (- 214,748.3648 to 214,748.3647) Số thực phần thập phân cố định (p: tổng số chữ số, s: số chữ số phần thập phân) 12 decimal(p,s) Phạm vi biểu diễn: -1038 + 1 đến 1038 – 1. Số thực phần thập phân cố định (p: tổng số chữ số, s: số chữ số phần thập phân) 13 numeric(p,s) Phạm vi biểu diễn: -1038 + 1 đến 1038 – 1. 14 float Số thực dấu phẩy động (từ -1.79E+308 đến 1.79E+308) 15 real Số thực dấu phẩy động (từ -3.40E+38 đến 3.40E+38) 16 datetime Thời gian (gồm ngày/tháng và giờ/phút/giây) (từ 01/01/1753 đến 31/12/9999) 17 smalldatetime Thời gian (gồm ngày/tháng và giờ/phút/giây) (từ 01/01/1900 đến 06/06/2079) 18 date Thời gian (chỉ có ngày/tháng) (từ 01/01/0001 đến 31/12/9999) 19 time Thời gian (chỉ có giờ/phút/giây)
- 4.2. NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU ( D D L – D a t a D e fin it io n La n g u a g e ) 4.2.1. CÁC LỆNH ĐỐI VỚI CƠ SỞ DỮ LIỆU A. Tạo c ơ s ở d ữ li ệu CREATE D ATABAS E < tên CSDL> Ví dụ 4.1: CREATE DATABASE dbQuanLyBanHang B. Xóa cơ sở dữ liệu DROP DATABASE Ví dụ 4.2: DROP DATABASE dbQuanLyBanHang Lưu ý: Các hệ quản trị CSDL khác nhau có thể đưa thêm vào một số tham số tùy biến khác.
- 4 . 2 . 2 . CÁC LỆN H Đ ỐI V ỚI B ẢN G D Ữ LIỆU A. Tạo b ản g d ữ li ệu CREATE TABLE < t ê n b ản g > ( < t ê n c ột > < k i ểu d ữ li ệu > [ N OT N ULL] , [ < t ê n c ột > < k i ểu d ữ li ệu > [ N OT N ULL] , ] [ < t ê n c ột > < k i ểu d ữ li ệu > [ N OT N ULL] , ] ... [ CON S TRAIN T < t ê n r à n g b u ộc > P RIMARY KEY ( < D S c ột > ) , ] [ CON S TRAIN T < t ê n r à n g b u ộc > FOREIGN KEY ( < D S c ột > ) REFEREN CES < t ê n b ản g đ ược t h a m c h i ếu > ( < D S c ột > ) , ] ... ) 13 B. Xó a b ỏ b ản g d ữ li ệu
- C. S ửa đ ổi c ấu t rú c b ản g d ữ li ệu q Th ê m c ột d ữ li ệu m ới ALTER TABLE < t ê n b ản g > AD D < t ê n c ột > < k i ểu d ữ li ệu > [ N OT N ULL] q Xó a c ột d ữ li ệu ALTER TABLE < t ê n b ản g > D ROP COLUMN < d a n h s á c h c ột > q S ửa k i ểu d ữ li ệu c ủa c ột ALTER TABLE < t ê n b ản g > ALTER COLUMN < t ê n c ột > < k i ểu d ữ li ệu m ới > [ N OT N ULL] q Th ê m m ột rà n g b u ộc đ ối v ới b ản g ALTER TABLE < t ê n b ản g > AD D CON S TRAIN T < t ê n r à n g b u ộc > < k i ểu r à n g b u ộc > 14 q Xó a m ột rà n g b u ộc đ ối v ới b ản g
- Ví dụ 4.3: Tạo các bảng dữ liệu sau đây: PhongBan(MaPB, TenPB, DiaDiem) NhanVien(MaNV, TenNV, ChuyenMon, Phong) CREATE TABLE PhongBan ( MaPB char(3) NOT NULL, TenPB nvarchar(30) NOT NULL, DiaDiem nvarchar(100), CONSTRAINT PK_PhongBan PRIMARY KEY(MaPB) ) CREATE TABLE NhanVien ( MaNV char(5) NOT NULL, TenNV nvarchar(30) NOT NULL, ChuyenMon nvarchar(100), Phong char(3) NOT NULL, CONSTRAINT PK_NhanVien PRIMARY KEY(MaNV), CONSTRAINT FK_NhanVien FOREIGN KEY (Phong) REFERENCES PhongBan(MaPB) 15 )
- Ví dụ 4.4: q Thêm cột NgaySinh vào bảng NhanVien ALTER TABLE NhanVien ADD NgaySinh Date NOT NULL q Đổi kiểu dữ liệu của cột ChuyenMon trong bảng NhanVien t ừ kiểu nvarchar có độ dài 100 sang kiểu nvarchar có độ dài 150 ALTER TABLE NhanVien ALTER COLUMN ChuyenMon nvarchar(150) q Xóa cột DiaDiem trong bảng PhongBan ALTER TABLE PhongBan DROP COLUMN DiaDiem q Xóa ràng buộc khóa ngoại FK_NhanVien trong bảng NhanVien ALTER TABLE NhanVien 16 DROP CONSTRAINT FK_NhanVien
- 4.3. NGÔN NGỮ THAO TÁC DỮ LIỆU ( D ML – D a t a Ma n ip u la t io n La n g u a g e ) 4 . 3 . 1 . THÊM B ẢN GHI VÀO B ẢN G – CÂU LỆN H IN S ERT IN S ERT IN TO < t ê n b ản g > [ ( < D S c ột > ) ] VALUES ( < D S g iá t r ị> ) V í d ụ 4 . 5 : IN S ERT IN TO P h o n g Ba n VALUES ( 'P TV ', N 'P h ò n g Tà i v ụ', N 'P 2 0 3 C3 ') V í d ụ 4 . 6 : IN S ERT IN TO P h o n g Ba n ( Te n P B, M a P B) VALUES ( N 'P h ò n g Tà i v ụ', 'P TV ') 4 . 3 . 2 . CẬP N H ẬT D Ữ LIỆU TRON G B ẢN G – CÂU LỆN H UP D ATE UP D ATE < t ê n b ản g > S ET < t ê n c ột 1 > = < g iá t r ị 1 > , < t ê n c ột 2 > = < g iá t r ị 2 > , . . . [ W HERE < đ i ều k i ện > ] V í d ụ 4 . 7 : UP D ATE P h o n g Ba n
- 4 . 3 . 3 . XÓA D Ữ LIỆU TRON G B ẢN G – CÂU LỆN H D ELETE D ELETE FROM < t ê n b ản g > [ W HERE < đ i ều k i ện > ] V í d ụ 4 . 8 : D ELETE FROM N h a n Vie n WHERE Ch u y e n M o n = N 'K ỹ s ư t in h ọc ' 4 . 3 . 4 . TRUY V ẤN D Ữ LIỆU TRON G B ẢN G – CÂU LỆN H S ELECT S ELECT [ D IS TIN CT] [ TOP N ] *| < d a n h s á c h c ột > FROM < c á c b ản g d ữ li ệu > [ W HERE < đ i ều k i ện > ] [ GROUP BY < d a n h s á c h c ột > [ HAVIN G < đ i ều k i ện > ] ] [ ORD ER BY < d a n h s á c h c ột > [ AS C| D ES C] ] q M ện h đ ề FROM < c á c b ản g d ữ li ệu > v Ch ỉ ra c á c b ản g d ữ li ệu – n ơi n g u ồn d ữ li ệu đ ược l ấy v ề. 18 Cá c b ản g c ó t h ể đ ược k ết n ối ( jo in ) v ới n h a u t h e o 1 c á c h
- q M ện h đ ề W HERE < đ i ều k i ện > v Gi ới h ạn c á c b ản g h i đ ược t r ả v ề t ro n g t ập k ết q u ả. Ch ỉ c á c b ản g h i t h ỏa m ã n < đ i ều k i ện > đ ược c h ỉ ra s a u W HERE m ới đ ược t r ả v ề. q M ện h đ ề GROUP BY < d a n h s á c h c ột > Ch ia t ập b ản g h i l ấy v ề t h à n h c á c n h ó m s a o c h o : v Cá c b ản g h i m à c ó g iá t r ị g i ốn g n h a u t rê n c á c c ột t ro n g < d a n h s á c h c ột > ( c h ỉ ra s a u GROUP BY) s ẽ đ ược x ếp v à o c ù n g n h ó m . v Cá c h à m t h ốn g kê ( COUN T, S UM, MAX, MIN , AVG) c ó t h ể đ ược á p d ụn g đ ể t ín h t o á n t rê n t ừn g n h ó m . v M ỗi b ản g h i t ro n g t ập k ết q u ả c h ứa g iá t r ị đ ại d i ện c h o m ột n h ó m . 19 q M ện h đ ề HAVIN G < đ i ều k i ện >
- q M ện h đ ề ORD ER BY < d a n h s á c h c ột > [ AS C| D ES C] v S ắp x ếp c á c b ản g h i k ết q u ả t h e o t r ật t ự t ă n g d ần ( AS C) h a y g i ảm d ần ( D ES C) c ủa g iá t r ị t rê n c á c c ột đ ược c h ỉ ra t ro n g < d a n h s á c h c ột > . q M ện h đ ề S ELECT *| < d a n h s á c h c ột > v Gi ới h ạn c á c c ột đ ược p h é p h i ển t h ị t ro n g t ập k ết q u ả. D ù n g k ý h i ệu d ấu * s a u S ELECT n ếu m u ốn h i ển t h ị t ất c ả c á c c ột c ủa t ập k ết q u ả. v Từ k h ó a D IS TIN CT đ ược s ử d ụn g kè m k h i m u ốn lo ại b ỏ n h ữn g b ản g h i t rù n g l ắp t ro n g t ập k ết q u ả. v Từ k h ó a TOP đ ược s ử d ụn g k h i c h ỉ m u ốn l ấy v ề N b ản g h i đ ầu t iê n t ro n g t ập k ết q u ả. v Có t h ể d u n g t ừ k h ó a AS đ ể t ạo t ê n k h á c ( b í d a n h a lia s ) 20 c h o c ột v ới c ú p h á p < t ê n c ột > AS < b í d a n h > .
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cơ sở dữ liệu đất đai
49 p | 633 | 79
-
Bài giảng Cơ sở dữ liệu - Nguyễn Quỳnh Chi
189 p | 267 | 51
-
Bài giảng Cơ sở dữ liệu: Chương 1 - Tổng quan về cơ sở dữ liệu
21 p | 181 | 31
-
Bài giảng Cơ sở dữ liệu: Bài 1 - ĐH CNTT
15 p | 607 | 30
-
Bài giảng Cơ sở dữ liệu - Bài 2: Mô hình cơ sở dữ liệu quan hệ
43 p | 221 | 18
-
Bài giảng Cơ sở dữ liệu: Chương 2 - ThS. Hoàng Mạnh Hà
68 p | 151 | 12
-
Bài giảng Cơ sở dữ liệu (Database): Chương 4 - TS. Đặng Thị Thu Hiền
82 p | 40 | 8
-
Bài giảng Cơ sở dữ liệu - Chương 4: Chuẩn hóa cơ sở dữ liệu
30 p | 134 | 8
-
Bài giảng Cơ sở dữ liệu nâng cao - Chương 2: Toàn vẹn và cơ sở dữ liệu active
50 p | 81 | 8
-
Bài giảng Cơ sở dữ liệu (Database): Chương 1 - TS. Đặng Thị Thu Hiền
53 p | 48 | 7
-
Bài giảng Cơ sở dữ liệu: Phần 1 – Nguyễn Hải Châu
54 p | 122 | 6
-
Bài giảng Cơ sở dữ liệu: Mở đầu - ThS. Lương Thị Ngọc Khánh
11 p | 169 | 6
-
Bài giảng Cơ sở dữ liệu nâng cao: Bài 1.1 - PGS.TS. Đỗ Phúc
25 p | 90 | 6
-
Bài giảng Cơ sở dữ liệu: Chương 1 - Th.S Thiều Quang Trung
40 p | 93 | 5
-
Bài giảng Cơ sở dữ liệu - Bài 1: Thiết kế Cơ sở dữ liệu với Management Studio
10 p | 62 | 5
-
Bài giảng Cơ sở dữ liệu nâng cao: Bài 2 - PGS.TS. Đỗ Phúc
55 p | 66 | 4
-
Bài giảng Cơ sở dữ liệu: Chương 1 - GV. Đỗ Thị Kim Thành
21 p | 102 | 4
-
Bài giảng Cơ sở dữ liệu (Database) - Chương 1: Các khái niệm cơ bản về hệ cơ sở dữ liệu
34 p | 69 | 3
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