Tài liệu Giáo trình Ngôn ngữ SQL docx

180 961 4
Tài liệu Giáo trình Ngôn ngữ SQL docx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Y BAN NHÂN DÂN THÀNH PH HÀ N IỦ Ố Ộ S B U CHÍNH VI N THÔNG HÀ N IỞ Ư Ễ Ộ GIÁO TRÌNH NGÔN NG SQLỮ (Mã s giáo trình: 3CD3)ố HÀ N I. 2005Ộ HÀ N I, 12-2004Ộ L I M Đ UỜ Ở Ầ Ngôn ng SQL (Structured Query Language) đ c s d ng trongữ ượ ử ụ h u h t các h qu n tr c s d li u đ truy v n và s a đ i c s dầ ế ệ ả ị ơ ở ữ ệ ể ấ ử ổ ơ ở ữ li u. Ngôn ng SQL h tr các truy v n d a trên các phép toán đ i sệ ữ ỗ ợ ấ ự ạ ố quan h , đ ng th i cũng ch a các l nh s a đ i c s d li u và mô tệ ồ ờ ứ ệ ử ổ ơ ở ữ ệ ả l c đ c s d li u. Nh v y, SQL v a là m t ngôn ng thao tác dượ ồ ơ ở ữ ệ ư ậ ừ ộ ữ ữ li u, v a là m t ngôn ng đ nh nghĩa d li u. Ngoài ra SQL cũng tiêuệ ừ ộ ữ ị ữ ệ chu n hoá nhi u l nh c s d li u khác.ẩ ề ệ ơ ở ữ ệ Có nhi u phiên b n khác nhau c a SQL. Tr c tiên, có ba b nề ả ủ ướ ả chu n. Đó là ANSI (American National Standards Institute) SQL. Sau đóẩ đ n năm 1992, b n chu n SQL-92 ra đ i g i là SQL2. G n đây nh t,ế ả ẩ ờ ọ ầ ấ chu n SQL-99 (tr c đó g i là SQL3) m r ng SQL2 v i các đ c tr ngẩ ướ ọ ở ộ ớ ặ ư quan h - đ i t ng và m t s kh năng m i khác. Ngoài ra còn có nhi uệ ố ượ ộ ố ả ớ ề phiên b n c a SQL đ c các nhà bán các h qu n tr c s d li u s nả ủ ượ ệ ả ị ơ ở ữ ệ ả xu t. Các phiên b n này có t t c các kh năng c a chu n ANSI nguyênấ ả ấ ả ả ủ ẩ g c và chúng cũng phù h p v i các m r ng c a SQL cũng nh các tínhố ợ ớ ở ộ ủ ư ch t c a chu n SQL-99. Trong giáo trình này chúng tôi trình bày d a trênấ ủ ẩ ự chu n SQL-99. Giáo trình g m ba ch ng:ẩ ồ ươ Ch ng 1: SQL c b n, trình bày các truy v n c b n trên các b ngươ ơ ả ấ ơ ả ả c s d li u, các ki u d li u c b n trong SQL và cách t o c s dơ ở ữ ệ ể ữ ệ ơ ả ạ ơ ở ữ li u đ n gi n trong SQL ệ ơ ả Ch ng 2: Các ràng bu c và các trigger. Ch ng này trình bày cácươ ộ ươ lo i ràng bu c: ràng bu c mi n, ràng bu c khóa, ràng bu c toàn v n th cạ ộ ộ ề ộ ộ ẹ ự th , ràng bu c toàn v n tham chi u, các ràng bu c khác và cách th hi nể ộ ẹ ế ộ ể ệ chúng trong SQL. Ch ng 3: L p trình v i SQL, trình bày các ph ng pháp l p trìnhươ ậ ớ ươ ậ trong SQL: l p trình nhúng, SQL đ ng, các hàm và các th t c PSM, sậ ộ ủ ụ ử d ng giao di n g i. Ngoài ra, ch ng này còn đ c p đ n v n đ an toànụ ệ ọ ươ ề ậ ế ấ ề trên c s d li u SQL.ơ ở ữ ệ Cu i m i ch ng có t ng k t các v n đ trình bày trong ch ng vàố ỗ ươ ổ ế ấ ề ươ m t s bài t p. Đ hi u đ c giáo trình này b n đ c c n ph i có các ki nộ ố ậ ể ể ượ ạ ọ ầ ả ế th c v c s d li u quan h . ứ ề ơ ở ữ ệ ệ Do h n ch v th i gian và kinh nghi m, ch c ch n giáo trình v nạ ế ề ờ ệ ắ ắ ẫ còn nhi u thi u sót. Mong các b n đ c góp ý, phê bình. Chúng tôi xin c mề ế ạ ọ ả n tr c và h a s ti p thu đ hoàn thi n giáo trình h n. ơ ướ ứ ẽ ế ể ệ ơ 2 - Tên môn h c: Ngôn ng SQL.ọ ữ - Mã s môn h c: 3CD3ố ọ - Th i gian: 45 ti t (lờ ế í thuy t + thế c hành)ự - M c tiêu: H ng d n h c viên s d ng thành th o ngôn ng truy v nụ ướ ẫ ọ ử ụ ạ ữ ấ SQL. - Nh ng ki n th c c n đ c trang b tr c: C s d li u quan h .ữ ế ứ ầ ượ ị ướ ơ ở ữ ệ ệ - N i dung môn h c:ộ ọ Ch ng I: ươ C B N V SQL.Ơ Ả Ề Ch ng II: ươ CÁC RÀNG BU C VÀ TRIGGER.Ộ Ch ng III: ươ L P TRÌNHẬ - Đ i t ng h c: Các l p trình viên.ố ượ ọ ậ - Biên so n: B môn Các h th ng thông tin, Khoa Công ngh thông tin,ạ ộ ệ ố ệ Tr ng ĐH Công Ngh , ĐHQG Hà N i.ườ ệ ộ 3 L I M Đ UỜ Ở Ầ 2 CH NG I: SQL C B NƯƠ Ơ Ả 8 1.1 CÁC TRUY V N Đ N GI N TRONG SQL.Ấ Ơ Ả 8 1.1.1 Phép chi u trong SQLế 9 1.1.2 Phép ch n trong SQLọ 11 1.1.3 So sánh các xâu 13 1.1.4 Ngày tháng và th i gianờ 14 1.1.5 Các giá tr NULL và các so sánh bao hàm NULL.ị 15 1.1.6 Giá tr lôgic UNKNOWN ị 16 1.1.7 S p th t d li u raắ ứ ự ữ ệ 17 1.1.8 Các hàm thông d ng trong SQLụ 18 1.2 CÁC TRUY V N BAO G M NHI U H N M T QUAN HẤ Ồ Ề Ơ Ộ Ệ 20 1.2.1 Tích và n i trong SQLố 20 1.2.2 Làm rõ nghĩa các thu c tínhộ 21 1.2.3 Các bi n bế ộ 22 1.2.4 Phép h p, phép giao, phép tr c a các truy v nợ ừ ủ ấ 23 1.3 CÁC TRUY V N CONẤ 25 1.3.1 Các truy v n con t o ra các giá tr vô h ng ấ ạ ị ướ 26 1.3.2 Các đi u ki n có bao hàm các quan hề ệ ệ 27 1.3.3 Các đi u ki n có bao hàm các bề ệ ộ 28 1.3.4 Các truy v n con t ng quan v i nhauấ ươ ớ 29 1.3.5 Các truy v n con trong m nh đ FROMấ ệ ề 30 1.3.6 Các bi u th c n i c a SQLể ứ ố ủ 31 1.3.7 N i t nhiên (Natural Join)ố ự 32 1.3.8 N i ngoàiố 33 1.4 CÁC PHÉP TOÁN QUAN H Đ Y ĐỆ Ầ Ủ 34 1.4.1 Lo i b trùng l pạ ỏ ặ 34 1.4.2 Trùng l p trong phép h p, phép giao và phép tr ặ ợ ừ 35 1.4.3 Nhóm và s k t h p trong SQL ự ế ợ 36 1.4.4 Các phép toán nhóm 36 1.4.5 Nhóm 38 1.4.6 Các m nh đ HAVINGệ ề 40 1.5 S A Đ I C S D LI UỬ Ổ Ơ Ở Ữ Ệ 42 1.5.1 Chèn 42 1.5.2 Xóa 44 1.5.3 C p nh tậ ậ 44 1.6 Đ NH NGHĨA M T L C Đ QUAN H TRONG SQLỊ Ộ ƯỢ Ồ Ệ 45 1.6.1 Các ki u d li uể ữ ệ 46 4 1.6.2 Các khai báo b ng đ n gi nả ơ ả 47 1.6.4 Các giá tr ng m đ nhị ầ ị 48 1.6.5 Các ch sỉ ố 49 1.6.6 Nh p môn v vi c l a ch n các ch sậ ề ệ ự ọ ỉ ố 50 1.7 KHUNG NHÌN (VIEW) 51 1.7.1 Khai báo các khung nhìn 51 1.7.2 Truy v n các khung nhìnấ 52 1.7.3 Đ t tên l i các thu c tínhặ ạ ộ 53 1.7.4 S a đ i các khung nhìnử ổ 54 1.7.5 Gi i thích các truy v n có ch a các khung nhìnả ấ ứ 57 1.8 T NG K T CH NG IỔ Ế ƯƠ 60 M T S BÀI T PỘ Ố Ậ 62 CH NG II: CÁC RÀNG BU C VÀ CÁC TRIGGERƯƠ Ộ 66 2.1 KHÓA VÀ KHÓA NGOÀI 67 2.1.1 Mô t khoá chínhả 67 2.1.2 Các khoá đ c mô t v i UNIQUEượ ả ớ 69 2.1.3 Làm có hi u l c các ràng bu c khoáệ ự ộ 69 2.1.4 Mô t các ràng bu c khoá ngoàiả ộ 71 2.1.5 Duy trì toàn v n tham chi uẹ ế 72 2.1.6 Làm ch m vi c ki m tra ràng bu c.ậ ệ ể ộ 75 2.2 CÁC RÀNG BU C TRÊN CÁC THU C TÍNH VÀ CÁC BỘ Ộ Ộ 77 2.2.1 Các ràng bu c Not-Nullộ 77 2.2.2 Các ràng bu c ki m tra (CHECK) d a trên thu c tínhộ ể ự ộ 78 2.2.3 Các ràng bu c ki m tra (CHECK)d a trên b giá tr .ộ ể ự ộ ị 80 2.3 S A Đ I CÁC RÀNG BU CỬ Ổ Ộ 81 2.3.1 Đ t tên cho các ràng bu c ặ ộ 81 2.3.2 S a đ i các ràng bu c trên các b ngử ổ ộ ả 82 2.4 CÁC RÀNG BU C M C L C Đ VÀ CÁC TRIGGERỘ Ứ ƯỢ Ồ 83 2.4.1 Các kh ng đ nh (assertion)ẳ ị 83 So sánh các ràng bu cộ 86 2.4.2 Trigger 87 2.5 T NG K T CH NG IIỔ Ế ƯƠ 94 M T S BÀI T PỘ Ố Ậ 95 CH NG III: L P TRÌNHƯƠ Ậ 98 3.1 SQL TRONG MÔI TR NG L P TRÌNHƯỜ Ậ 98 3.1.1 V n đ tr ng i không phù h p ấ ề ở ạ ợ 99 3.1.2 Giao di n ngôn ng ch /SQLệ ữ ủ 100 3.1.3 Ph n khai báo (DECLARE)ầ 101 3.1.4 S d ng các bi n dùng chung.ử ụ ế 102 3.1.5 Các câu l nh Select đ n hàngệ ơ 104 5 3.1.6 Con trỏ 105 3.1.7 C p nh t b ng con trậ ậ ằ ỏ 109 3.1.8 B o v kh i s c p nh t đ ng th iả ệ ỏ ự ậ ậ ồ ờ 110 3.1.9 Con tr cu n (Scrolling Cursor)ỏ ộ 112 3.1.10 SQL đ ngộ 113 3.2 CÁC TH T C Đ C L U GI (stored procedure) Ủ Ụ ƯỢ Ư Ữ 115 3.2.1 T o các hàm và các th t c PSMạ ủ ụ 116 3.2.2 M t vài d ng câu l nh đ n gi n trong PSMộ ạ ệ ơ ả 118 3.2.3 Các câu l nh r nhánh.ệ ẽ 119 3.2.4 Các truy v n trong PSM ấ 121 3.2.5 Vòng l p trong PSMặ 123 3.2.6 Vòng l p forặ 125 3.2.7 Nh ng câu l nh l p khácữ ệ ặ 126 3.3 MÔI TR NG SQLƯỜ 130 3.3.1 Môi tr ngườ 131 3.3.2 L c đ ượ ồ 132 3.3.4 Client và Server trong môi tr ng SQLườ 135 3.3.5 K t n iế ố 135 3.3.6 Phiên (Session) 136 3.3.7 Modules 137 3.4 S D NG GIAO DI N M C G I (call-level interface)Ử Ụ Ệ Ứ Ọ 138 3.4.1 Nh p môn SQL/CLIậ 138 3.4.2 X lý các l nhử ệ 141 3.4.3 L y d li u ra t k t qu truy v nấ ữ ệ ừ ế ả ấ 143 3.5 GIAO TÁC TRONG SQL 145 3.5.1 X p hàng theo th tế ứ ự 146 3.5.2 Atomicity 148 3.5.3 Giao tác (Transaction) 150 3.5.4 Read-Only Transaction 152 3.5.5 Dirty Read 153 3.5.6 Các m c cô l p khácứ ậ 156 3.6 AN TOÀN VÀ C P QUY N TRONG SQLẤ Ề 158 3.6.1 Các quy nề 158 3.6.2 T o các quy nạ ề 160 3.6.3 Ti n trình ki m tra đ c quy nế ể ặ ề 161 3.6.4 C p các quy nấ ề 163 3.6.5 Bi u đ grantể ồ 165 3.6.6 H y b các quy nủ ỏ ề 165 3.7 T NG K T CH NG IIIỔ Ế ƯƠ 171 6 7 CH NG I: ƯƠ SQL C B NƠ Ả Gi ng nh các ngôn ng b c cao khác, ngôn ng SQL đ c xây d ngố ư ữ ậ ữ ượ ự d a trên các ch cái, các ch s , các ký t (d u phép toán, d u ngăn, d uự ữ ữ ố ự ấ ấ ấ cách và các ký t đ c bi t) và m t t p các t khóa. M t l nh c a SQL cóự ặ ệ ộ ậ ừ ộ ệ ủ th đ c vi t trên m t dòng ho c nhi u dòng, k t thúc b ng d u ch mể ượ ế ộ ặ ề ế ằ ấ ấ ph y “;”. ả Ngôn ng SQL đ c chia thành ba nhóm:ữ ượ - Ngôn ng đ nh nghĩa d li u dùng đ mô t c u trúc c a c s dữ ị ữ ệ ể ả ấ ủ ơ ở ữ li u (các b ng, các khung nhìn, các thu c tính, các ch m c, )ệ ả ộ ỉ ụ - Ngôn ng thao tác d li u cho phép th c hi n các thao tác trên c sữ ữ ệ ự ệ ơ ở d li u nh c p nh t c s d li u và truy v n l y ra các thông tinữ ệ ư ậ ậ ơ ở ữ ệ ấ ấ t c s d li u.ừ ơ ở ữ ệ - Ngôn ng ki m soát d li u bao g m các l nh dùng đ qu n lý cácữ ể ữ ệ ồ ệ ể ả giao tác, các quy n truy c p d li u, k t n i v i server ề ậ ữ ệ ế ố ớ Ngôn ng SQL có th s d ng theo hai ki u: ki u tr c ti p và l p trình.ữ ể ử ụ ể ể ự ế ậ SQL tr c ti p cho phép th c hi n m t truy v n và nh n đ c k t quự ế ự ệ ộ ấ ậ ượ ế ả ngay t c kh c. SQL l p trình cho phép s d ng SQL trong m t ch ngứ ắ ậ ử ụ ộ ươ trình vi t b ng ngôn ng ngôn ng l p trình b c cao khác (C, Pascal, ),ế ằ ữ ữ ậ ậ ho c vi t các ch ng trình con. ặ ế ươ Trong ch ng này chúng ta s làm quen v i các l nh c b n c a SQL.ươ ẽ ớ ệ ơ ả ủ Các l nh này đ c minh h a d a trên m t c s d li u “CÔNGTY” choệ ượ ọ ự ộ ơ ở ữ ệ ph n PH L C c a giáo trình. ở ầ Ụ Ụ ủ 1.1 CÁC TRUY V N Đ N GI N TRONG SQL.Ấ Ơ Ả Gi s chúng ta mu n đ a ra các nhân viên c a đ n v có Mãs ĐV = 5,ả ử ố ư ủ ơ ị ố chúng ta vi t trong SQL nh sauế ư SELECT * FROM NHÂNVIÊN WHERE Mãs ĐV = 5 ;ố Truy v n này trình bày d ng đ c tr ng ấ ạ ặ ư select-from-where c a h u h tủ ầ ế các truy v n SQL. ấ • M nh đ FROM cho quan h ho c các quan h mà truy v n thamệ ề ệ ặ ệ ấ chi u đ n. Trong ví d trên, quan h đó là NHÂNVIÊN.ế ế ụ ệ 8 • M nh đ WHERE là m t đi u ki n, gi ng nh đi u ki n ch nệ ề ộ ề ệ ố ư ề ệ ọ trong đ i s quan h . Các b ph i tho mãn đi u ki n ch n đạ ố ệ ộ ả ả ề ệ ọ ể phù h p v i truy v n. Đi u ki n đây là thu c tính Mãs ĐV c aợ ớ ấ ề ệ ở ộ ố ủ b ph i có giá tr 5. T t c các b đáp ng đi u ki n đó s thoộ ả ị ấ ả ộ ứ ề ệ ẽ ả mãn đi u ki n ch n.ề ệ ọ • M nh đ SELECT nói các thu c tính nào c a các b đáp ng đi uệ ề ộ ủ ộ ứ ề ki n s đ c đ a ra nh m t ph n c a câu tr l i. D u * trong víệ ẽ ượ ư ư ộ ầ ủ ả ờ ấ d này ch ra r ng t t c các thu c tính c a b s đ c đ a ra.ụ ỉ ằ ấ ả ộ ủ ộ ẽ ượ ư K t qu c a truy v n là m t quan h ch a t t c các b do ti nế ả ủ ấ ộ ệ ứ ấ ả ộ ế trình này s n xu t ra.ả ấ M t cách gi i thích truy v n này là xem xét t ng b giá tr c a quan hộ ả ấ ừ ộ ị ủ ệ đ c k ra trong m nh đ FROM. Đi u ki n trong m nh đ WHEREượ ể ệ ề ề ệ ệ ề đ c áp d ng cho b . Chính xác h n, các thu c tính đ c k ra trongượ ụ ộ ơ ộ ượ ể m nh đ WHERE đ c thay th b ng các giá tr c a thu c tính đó trongệ ề ượ ế ằ ị ủ ộ ở b . Sau đó, đi u ki n đ c tính, và n u đúng thì các thành ph n xu t hi nộ ề ệ ượ ế ầ ấ ệ trong m nh đ SELECT đ c s n xu t ra nh là m t b c a câu tr l i. ệ ề ượ ả ấ ư ộ ộ ủ ả ờ 1.1.1 Phép chi u trong SQLế a) Chúng ta có th chi u m t quan h do m t truy v n SQL s n xu t raể ế ộ ệ ộ ấ ả ấ lên trên m t s thu c tính c a nó. Đ làm đi u đó, v trí c a d u * trongộ ố ộ ủ ể ề ở ị ủ ấ m nh đ SELECT ta li t kê ra m t s thu c tính c a quan h đ c ch raệ ề ệ ộ ố ộ ủ ệ ượ ỉ trong m nh đ FROM. K t qu s đ c chi u lên các thu c tính đ cệ ề ế ả ẽ ượ ế ộ ượ li t kê.ệ Ví d 1ụ : Đ a ra H đ m và Tên c a các nhân viên đ n v có mã sư ọ ệ ủ ở ơ ị ố b ng 5. Chúng ta có th vi t:ằ ể ế SELECT H đ m, Tênọ ệ FROM NHÂNVIÊN WHERE Mãs ĐV =5;ố K t qu là m t b ng có hai c t, có tên là H đ m và Tên. Các b c aế ả ộ ả ộ ọ ệ ộ ủ b ng này là các c p, m i c p g m H đ m và Tên c a nhân viên, đó là cácả ặ ỗ ặ ồ ọ ệ ủ nhân viên c a đ n v có mã s b ng 5. B ng k t qu có d ng nh sau:ủ ơ ị ố ằ ả ế ả ạ ư 9 H đ mọ ệ Tên Lê Vân Tr n Đ c Namầ ứ Nguy n S nễ ơ Vũ H ng Giangươ b) Đôi khi chúng ta mu n t o ra m t quan h v i đ u c t khác v i cácố ạ ộ ệ ớ ầ ộ ớ thu c tính c a quan h đ c k ra trong m nh đ FROM. Chúng ta có thộ ủ ệ ượ ể ệ ề ể vi t sau tên c a thu c tính m t t khoá AS và m t bí danh (alias), bí danhế ủ ộ ộ ừ ộ đó s tr thành đ u c t c a quan h k t qu . T khoá AS là tuỳ ch n,ẽ ở ầ ộ ủ ệ ế ả ừ ọ nghĩa là có th vi t bí danh đi ngay sau tên thu c tính mà không c n ph iể ế ộ ầ ả có t khoá AS.ừ Ví d 2:ụ Ta có th s a đ i ví d 1 trên đ đ a ra m t quan h có cácể ử ổ ụ ở ể ư ộ ệ thu c tính H nhânviên và Tênnhânviên thay cho v trí c a H đ m và Tênộ ọ ị ủ ọ ệ nh sau:ư SELECT H đ m AS H nhânviên, Tên AS Tênnhânviênọ ệ ọ FROM NHÂNVIÊN WHERE Mãs ĐV = 5 ;ố B ng k t qu có d ng nh sau:ả ế ả ạ ư H nhânviênọ Tên nhânviên Lê Vân Tr n Đ c Namầ ứ Nguy n S nễ ơ Vũ H ng Giangươ c) M t tuỳ ch n khác trong m nh đ SELECT s d ng m t bi u th c ộ ọ ệ ề ử ụ ộ ể ứ ở v trí c a m t thu c tính. ị ủ ộ ộ Ví d 3ụ : Chúng ta mu n đ a ra H đ m, Tên và l ng sau khi đã đ cố ư ọ ệ ươ ượ tăng 10% c a các nhân viên đ n v có mã s b ng 5. Ta vi t: ủ ở ơ ị ố ằ ế SELECT H đ m, Tên, L ng*1.1 AS L ngm iọ ệ ươ ươ ớ FROM NHÂNVIÊN WHERE Mãs ĐV =5;ố 10 [...]... là Đơnvịtính và mỗi bộ trong câu trả lời sẽ có hằng ‘ngàn đồng’ ở cột thứ tư 1.1.2 Phép chọn trong SQL Phép toán chọn của đại số quan hệ và nhiều thứ nữa sẵn có trong mệnh đề WHERE của SQL Các biểu thức đi sau WHERE bao gồm các biểu thức điều kiện giống như các biểu thức điều kiện trong các ngôn ngữ lập trình Chúng ta có thể xây dựng các điều kiện bằng cách so sánh các giá trị sử dụng sáu phép toán so... việc sử dụng các dấu ngoặc đơn Các dấu ngoặc là cần thiết bởi vì thứ tự ưu tiên của các phép toán lô gic trong SQL là giống như trong các ngôn ngữ 12 lập trình, AND có thứ tự cao hơn OR, NOT có thứ tự cao hơn cả AND và OR 1.1.3 So sánh các xâu Hai xâu là bằng nhau nếu chúng là cùng một dãy ký tự SQL cho phép các mô tả các kiểu xâu khác nhau, ví dụ, các mảng ký tự có độ dài cố định và các danh sách ký tự... được kiểm tra xem có bằng hằng 5 hay không Hằng này là một giá trị số Các hằng số, như các số nguyên và số thực được sử dụng và được ghi như cách thông thường trong các ngôn ngữ lập trình Ngoài các hằng số còn có các hằng xâu Các xâu trong SQL được ghi bằng cách đặt chúng và trong cặp dấu nháy đơn, ví dụ, ‘Hà nội’ Kết quả của một phép so sánh là một giá trị lô gic TRUE hoặc FALSE Các giá trị lô gic có... điều kiện chọn, chẳng hạn như Nam, Thanh, Hoa 1.1.4 Ngày tháng và thời gian Các thể hiện của SQL nói chung hỗ trợ ngày tháng và thời gian như những kiểu dữ liệu đặc biệt Các giá trị này thường trình bày được trong nhiều dạng khác nhau như 14/5/1948 hoặc 14-05-48 Ở đây chúng ta sẽ chỉ mô tả cách ghi chuẩn của SQL Một hằng ngày tháng được biểu diễn bằng từ khoá DATE sau đó là một xâu có dạng đặc biệt... giá trị có kiểu dữ liệu theo định nghĩa Ví dụ PRINT CAST (GETDATE() AS VARCHAR) trả về Oct 18 2004 Hàm CONVERT chuyển đổi giá trị từ kiểu này sang kiểu khác 1.2 CÁC TRUY VẤN BAO GỒM NHIỀU HƠN MỘT QUAN HỆ Sức mạnh của đại số quan hệ là khả năng tổ hợp hai hoặc nhiều quan hệ thông qua các phép nối, tích, hợp, giao và trừ Trong SQL có tất cả các phép toán đó 1.2.1 Tích và nối trong SQL SQL có một cách đơn... rằng SQL sử dụng các quan hệ như là các túi (bag) chứ không phải như tập hợp Điều đó có nghĩa là một bộ có thể xuất hiện nhiều lần trong một quan hệ 1.4.1 Loại bỏ trùng lặp Như đã nói đến ở trên, khái niệm quan hệ của SQL khác với khái niệm quan hệ trừu tượng được trình bày trong mô hình quan hệ Một quan hệ là một tập hợp, không thể có nhiều hơn một bản sao của một bộ cho trước Khi một truy vấn SQL. .. thống SQL không loại bỏ các trùng lặp Như vậy, SQL trả lời cho một truy vấn có thể liệt kê nhiều lần cùng một bộ Nhớ lại rằng một định nghĩa cho một truy vấn select-from-where của SQL là như sau: Chúng ta bắt đầu với tích Đềcac của các quan hệ được tham chiếu đến trong mệnh đề FROM Mỗi bộ của tích được kiểm tra bằng điều kiện trong mệnh đề WHERE và những bộ nào qua được kiểm tra sẽ được đưa cho dữ liệu. .. dữ liệu ra theo thứ tự giảm dần bằng cách thêm vào từ khoá DESC Tương tự, chúng ta có thể chỉ ra thứ tự tăng dần bằng cách thêm vào từ khoá ASC (tùy chọn) Ví dụ 10: Để nhận được các Họđêm, Tên theo thứ tự tăng dần của Tên của tất cả các nhân viên trong đơn vị có mã số bằng 5, ta có truy vấn sau: SELECT Họđệm, Tên FROM NHÂNVIÊN WHERE MãsốĐV = 5 ORDER BY Tên ; 1.1.8 Các hàm thông dụng trong SQL Trong SQL. .. có cách tham chiếu đến từng lần có mặt của R SQL cho phép chúng ta định nghĩa đối với từng lần có mặt của R trong mệnh đề FROM một “bídanh” mà chúng ta sẽ tham chiếu đến nó như là một biến bộ Mỗi lần sử dụng của R trong mệnh đề FROM được theo sau bằng một từ khoá AS và tên của biến bộ Từ khóa AS là không bắt buộc, có thể có hoặc không Trong phạm vi tài liệu này, chúng ta sẽ bỏ qua từ khoá AS 22 Trong... truy vấn là “tìm tất cả các bộ NHÂNVIÊN_DỰÁN có Sốgiờ không NULL” 1.1.7 Sắp thứ tự dữ liệu ra Chúng ta có thể yêu cầu rằng các bộ được một truy vấn tạo ra sẽ được biểu diễn trong một thứ tự sắp xếp Thứ tự có thể dựa trên giá trị của một thuộc tính nào đó, kết hợp với giá trị của thuộc tính thứ hai, … Để 17 nhận được dữ liệu ra theo một thứ tự sắp xếp, chúng ta thêm vào lệnh select-from-where một mệnh . VI N THÔNG HÀ N IỞ Ư Ễ Ộ GIÁO TRÌNH NGÔN NG SQL (Mã s giáo trình: 3CD3)ố HÀ N I. 2005Ộ HÀ N I, 12-2004Ộ L I M Đ UỜ Ở Ầ Ngôn ng SQL (Structured Query Language). r ng c a SQL cũng nh các tínhố ợ ớ ở ộ ủ ư ch t c a chu n SQL- 99. Trong giáo trình này chúng tôi trình bày d a trênấ ủ ẩ ự chu n SQL- 99. Giáo trình g

Ngày đăng: 19/01/2014, 18:20

Từ khóa liên quan

Mục lục

  • LỜI MỞ ĐẦU

  • CHƯƠNG I: SQL CƠ BẢN

    • 1.1 CÁC TRUY VẤN ĐƠN GIẢN TRONG SQL.

      • 1.1.1 Phép chiếu trong SQL

      • 1.1.2 Phép chọn trong SQL

      • 1.1.3 So sánh các xâu

      • 1.1.4 Ngày tháng và thời gian

      • 1.1.5 Các giá trị NULL và các so sánh bao hàm NULL.

      • 1.1.6 Giá trị lôgic UNKNOWN

      • 1.1.7 Sắp thứ tự dữ liệu ra

      • 1.1.8 Các hàm thông dụng trong SQL

      • 1.2 CÁC TRUY VẤN BAO GỒM NHIỀU HƠN MỘT QUAN HỆ

        • 1.2.1 Tích và nối trong SQL

        • 1.2.2 Làm rõ nghĩa các thuộc tính

        • 1.2.3 Các biến bộ

        • 1.2.4 Phép hợp, phép giao, phép trừ của các truy vấn

        • 1.3 CÁC TRUY VẤN CON

          • 1.3.1 Các truy vấn con tạo ra các giá trị vô hướng

          • 1.3.2 Các điều kiện có bao hàm các quan hệ

          • 1.3.3 Các điều kiện có bao hàm các bộ

          • 1.3.4 Các truy vấn con tương quan với nhau

          • 1.3.5 Các truy vấn con trong mệnh đề FROM

          • 1.3.6 Các biểu thức nối của SQL

          • 1.3.7 Nối tự nhiên (Natural Join)

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan