Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 160 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
160
Dung lượng
30,39 MB
Nội dung
s § ĐỒN THIỆN NGÂN (Chủ biên) ĐỒN THỊ THANH DIEM HỒNG ĐỨC HẢI LẬP TRÌNH ■ SQL CĂN BẢN NHÀ XUẤT BẢN LAO ĐỘNG Xà HỘI LỜI NÓI ĐẨU LỜI NÓI ĐẦU Quyển sách v iế t cho độc giả muốn có m ột kiến thức b ản tổng quan ngôn ngữ SQL Ngôn ngữ SQL m ột ngôn ngữ m áy tín h chuẩn mực dùng dể' giao tiếp với Hệ Quản T rị Cơ Sở Dữ Liệu Quan Hệ Mặc dù n h sả n x uất Hệ Quản T rị Cơ Sở Dữ Liệu Quan Hệ thương m ại cung cấp phiên SQL có nhiều n é t đặc trư n g khác để hỗ trợ cho riê n g từ ng sản phẩm m ình, chúng hỗ trợ hầu h ế t tiêu chuẩn ngón ngữ SQL tổng quát Đây sách rấ t cần th iế t cho người p h t triển phần mềm sở liệu Cơ sớ liệu quan hệ p hận quan trọ n g chuyên ngành Công nghệ thông tin ngôn ngữ SQL phần tấ t yếu không th ể thiếu sở liệu quan hệ N hằm mục đích m in h hoạ đầy đủ n é t tổng qt ngón ngữ SQL, chúng tịi m ạn phép dùng Personal Oracle 8i, m ột sản p hẩm d n h riêng cho m áy tín h cá n h â n công ty chuyên sở liệu rấ t tiến g Oracle Mặc dù công ty Oracle dưa th ị trườ ng sả n phẩm O racle L ite 9i, chọn P e rsonal Oracle 8i (viết tắ t P ) nhiều lý do: • P thích hợp với m áy tín h cá n h â n có cấu funh th ấ p (bạn có th ể cài đ ặ t trê n m áy có CPU Celeron 733 với 128 MBRAM, dĩ nhiên chạy chậm lần khởi động đầu tiên), bạn dễ dàng có mơi trường để th ứ nghiệm cáu lện h SQL mô tả tro n g sách O racle L ite 9i th ì địi hịi cấu hìn h m áy m ạnh nhiều nhở RAM • P có th ể dow nload tự tr ê n m ạn g In te rn e t (w ebsite công ty Oracle www.oracle.com) để sử dụng, hay b n có th ể mua với giá r ấ t rẻ tạ i điểm b án softw are thô n g dụng • P hỗ trợ đầy đủ tín h n ăn g th n g dụng điển h ìn h ngơn ngử SQL • P có nhiều điểm m ạn h Hệ Quản T rị Cơ Sâ Dữ Liệu thương m ại điển hình M ặc dù mục tiêu sách n h ằm giới th iệu tín h c h ấ t tổng quan ngơn ngữ SQL để b ạn có th ể dùng với b ất kỳ Hệ Quản T rị Cơ Sở Dữ Liệu Quan Hệ khác, đặc tín h cúa n h sản xuất Hệ Quản T rị Cơ Sở Dữ Liệu Q uan Hệ thương m ại ln có kèm theo chức n ăn g riên g b iệt để người sử dựng có nhiều tiệ n nghi dể hệ th n g chạy tố t n h a n h hơ n nên m ột sô đoạn code th nghiệm tro n g sách không ngồi ngoại lệ Các bạn nên ý k h ác b iệ t m ột sô tiểu tiế t dôi với O racle SQL SQL chuẩn T ốt n h ấ t bạn dọc qua sách để có kiến thức b ản tổ n g q uan ngôn ngữ SQL làm việc với m ộ t Hệ Quản T rị Cơ Sở Dừ Liệu Quan Hệ thương m ại th ì bạn nên th a m khảo th êm tà i liệu ch ín h n h sán xuất Hệ Quản T rị Cơ Sỡ Dữ Liệu Quan Hệ thương m ại đê’ tậ n dụng th êm chức n n g đặc b iệt S dụng O racle có điểm b ấ t tiện cúa nổ, th í dụ tín h báo m ậ t cao nên O racle đòi hỏi người sử dụng phải dùng tr ìn h tiệ n ích có th ể tạo dược m ột d atab ase mới; khơng th ể dễ dàng th lệnh SQL chuẩn c r e a te d a ta b a s e tro n g Hệ Quản T rị Cơ Sở Dữ Liệu Quan Hệ thương m ại khác Cuối sách, chúng tơi có m ột phụ lục giới thiệu Hệ Quản T rị Ca Sở Dữ Liệu Quan Hệ mã nguồn mở MySQL đ ể b ạn có đ iều kiện th từ lệ n h b ản n h ấ t ngôn ngữ SQL chuẩn MySQL không m ạnh chưa hỗ trợ h ế t tiêu ch uẩn SQL (n h chưa hỗ trợ khóa ngoại, ), môi trường r ấ t tố t cho th lệnh bdn SQL C húng giới th iệu tro n g p h ụ lục tiệ n ích MySQL để bạn có phương tiện dùng th p b ần m ềm m ã Iiguồn mở không tốn tiề n m ua m r ấ t tiện n g h i giao diện rấ t dẹp m H ầu h ẽt ví dụ tậ p ghi trê n CD-ROM kèm theo sách dã th nghiệm tro n g m ôi trư ng P ersonal Oracle 8, m ột số th í dụ tập chương chạy th với MySQL phiên 4.0.15 trê n m áy C eleron 733 với 256 M B RAM M ặc dù cố gắng r ấ t nhiều ng không th ể khơng có thiếu só t khiếm khuyết tro n g sách, mong rằ n g độc giả c h â n th n h góp ý chúng tơi xin chân th n h ghi n h ậ n đóng góp để có th ể có sách hồn chỉnh tro n g lầ n tái b ân kê tiếp T h àn h phơ’ Hồ C hí M inh, ngày 30 th n g n ăm 2003 M K P U B mk.pub@ cinet.vnnews.com http://w w w m inhkhai.com LỜI NGỎ K ín h thư a quý B ạn dọc gần xa, Ban xuất MK.PUB trước h ế t xin bày tó lịng b iết ơn niềm vinh h ạn h trước n h iệ t tìn h đơng đảo B ạn đọc dôi với tủ sách MK.PUB tro n g thời gian qua K h ấu hiệu là: * Lao động khoa học nghiêm túc * C hất lượng ngày c h ấ t lượng * T ấ t Bạn đọc R ấ t nhiều B ạn đọc đă gửi m ail cho chúng tơi dóng góp nhiều ý kiến q báu cho tủ sách Bían xuất bán MK.PUB xin k ín h mời quý Bạn đọc th am gia n ân g cao ch ất lượng tủ sách T ro n g trìn h đọc, xin B ạn ghi lại sai sót (dù nhỏ, lớn) sách n h ận xét riên g B ạn Sau x in gửi V'ề địa chỉ: E -m ail: mk.book@ cinet.vnnews.com ; mk.pub@ cinet.vnnews.com H o ặc gửi về: N hà sách M inh K hai 249 Nguyễn T hị M inh Khai, Q.I,Tp Hồ C hí M inh Nĩếu Bạn ghi trực tiếp lên sách, gửi sách cho chúng tơi th ì chúng tơi xin hồn lại cước p hí bưu đ iện gửi lại c h o Bạn cuôn sách khác C hú ng xin gửi tặ n g m ột sách tủ sách MK.PUB tùy chọn lựa Bạn theo m ột danh mục thích hợp gửi tới Bạn V ứi mục đích ngày nâng cao c h ấ t lượng tủ sách MK.PUB, râ't m ong n h ậ n dược hợp tác quý B ạn dọc gần xa M K.PUB Bạn đọc làm !" M K P U B MỤC LỤC MỤC LỤC LỜI N Ó I Đ ẦU LỜ I N G Ỏ .- M Ụ C L Ụ C CHƯƠNG 1: G IỚ I T H IỆ U VỂ SQ L VÀ c SỞ DỮ L IỆ U QUAN H Ệ N gôn ngữ S Q L H ệ quản tr ị sở liệu q uan h ệ .7 K hoá ứng viên k h o c h ín h quan h ệ K hoá ngoại (Foreign K ey - F K ) T oán tử quan h ệ 10 5.1 T oán tử lựa chọn (Selection) 10 5.2 T o án tử chiếu (P ro je c tio n ) 10 5.3 T oán tử k ế t b ằ n g (E q u ijo in ) 11 P h ạm vi cùa thuộc tín h cách th iế t lậ p .11 Quy ước đ ặ t tê n cho đôi tượng C S D L .12 Cấu trú c lệ n h SQ L 12 Tương tác với H Q TC SD LQ H O racle b ằn g S Q L *P lus 12 10 T ạo b ả n g 13 11 Đưa liệu vào b ả n g A.Í2 L ện h COM M IT ROLLBACK 15 13 L ện h S E L E C T .17 14 Cơ sơ liệu m ẫ u 18 14.1 C ác b ả n g tro n g CSDL S p o rtin g G oods .18 14.2 R àn g buộc to n v ẹn th a m chiếu CSDL S G 19 14.3 R àn g buộc bổ su n g cho CSDL S G 19 15 C ập n h ậ t xóa dịng liệu thuộc b ả n g 20 15.1 L ện h U PDA TE b ả n g 20 15.2 L ện h D EL E TE T R U N C A T E 20 15.3 L ện h DROP T A B L E 22 Bài tậ p có lời g i ả i 22 Bài tậ p bổ s u n g .29 Lời giải cho b ài tậ p bổ su n g 29 CHƯƠNG 2: TOÁN TỬ QUAN H Ệ TRO N G S Q L 31 T oán tử chọn lựa (S elec tio n ) 31 Đ ịnh d an h cho tiêu đề cộ t 32 T oán tử chiếu (P ro jectio n ) 33 T ốn tử nơl (J o in ) 33 4.1 P h ép k ế t b ằ n g 34 4.2 Đơn g iản hó a câu tru y v ấn b ằ n g địn h d a n h b ả n g 34 4.3 H iệu ch ỉn h k ế t câu tru y v ấn : 35 4.4 P h ép tự k ế t .35 4.5 P h ép k ế t (O uter jo in ) 35 Tạo khoá n g o i .36 5.1 Đ ịnh n g h ĩa k h o ngoại lúc khởi tạo b ả n g 36 5.2 Đ ịnh n g h ĩa k h o ngoại cho b ả n g có s ẵ n 36 Đ ịnh n g h ĩa khố ch ín h cho b ả n g tồ n t i 36 Giới h n giá tr ị n h ậ p cho cột b ằ n g rà n g buộc C H E C K 37 BỔ sung cột cho b ả n g có s ẵ n .37 Hiệu chỉnh c ộ t 38 10 Gỡ bỏ rà n g buộc tro n g b ả n g 38 B ài tập có lời g iả i 38 MỤC LỤC m Bài tập bổ su n g 42 Lời giải cho tậ p bổ su n g , 42 C H Ư Ơ N G 3: TO Á N T Ử B O O L E A N VÀ Đ Ơ Ì SÁ N H M A U 44 Toán tử B oolean 44 1.1 Toán tử A N D 44 1.2 T oán tử O R 44 1.3 T oán tử N O T 45 1.4 T tự ưu tiê n toán tử .46 Đũi sán h m ẫu - Câu lện h LIKE ký tự đại d iệ n 48 Dấu gạch _ .49 Đối sá n h trị với m ột tậ p hợp giá t r ị 49 3.1 T oán tử B E T W E E N 49 T oán tử I N ' 50 Bài tập có lời g i ả i 51 Bài tập bố su n g 55 Lời giải cho tậ p bổ su n g 56 CH Ư Ơ N G 4: P H É P T O Á N s ố H Ọ C VÀ CÁC HÀM XÂY D ự N G s ả n t r o n g S Q L GO Các phép tốn sị’ h ọ c 60 Các hàm xây dựng s ẵ n 61 Các hàm xử lý s ô 61 3.1 H àin ABS(m) 62 3.2 H àm M O D(m n) 62 3.3 H àm PO W ER (m ,n) 62 3.4 H àm ROUND (mí, n j) .63 3.5 H àm T R U N C Ím /n /) 64 3.6 Các hàin lồng n h a u ., 64 H àm xử lý ký tự 65 4.1 H ằin chuyển đổi (lạng eliữ hoa, th n g 66 4.2 H àm nối c h u ỗ i 66 4.3 H àm đệm c ắ t c h u ỗ i 67 4.4 ỉlà m thay t h ế 68 4.5 H àm xác đ ịn h chuỗi c o n 68 4.6 H àm trả giá tr ị sô’ n g u y ên 69 H àm chuyển đ ổ i 70 5.1 T hao tác trê n giá tr ị N U L L 70 5.2 ( ’huyển đổi chuỗi sô" 70 Bài tập có lời g iả i 72 Bài tậ p bổ su n g 77 ^ Lời giải cho tậ p bố su n g 78 C H Ư Ơ N G 5: CÁC H À M N H Ó M 82 Giới thiệu hàm n h ó m 82 H àm SUM(n) AVG(n) 82 H àm MAX(n) M IN Ơ i) .83 H àm COUNTO 83 4.1 H àm COUNTÍ*) .83 4.2 H àm COUNT(ALL n) COU NT(n) 84 4.3 H àm C O U N T lD ISTIN CT n) 84 K ết hợp hàm đơn h àm nh ó m 84 H iển th ị thơng tin n h ó m .84 6.1 M ộnh đề G RO U P B Y 84 6.2 M ộnh dề H A V IN G 85 MỤC LỤC Bài tậ p có lời g iá i .86 Bài tậ p bổ su n g 89 Lời giải cho b ài tập bổ su n g 89 CHƯƠNG 6: DỮ L IỆ U T H Ờ I G IAN TRO N G S Q L 91 Giới th iệu liệu kiểu n gày g iờ 91 P hép tín h sơ" học trê n liệu kiểu n g y 91 H àm xử lý liệu n g y 92 3.1 H àm xử lý ngày t h n g 92 Đ ịnh d ạn g liệu n g ày 93 4.1 H àm TCLDATEO TO C H A R O 93 4.2 H àm ROUNDO h àm TRU N CO 94 4.3 Các h àm GREATEST!) LEASTO 95 4.4 H àm N EW TIMKO 96 Bài tậ p có lời g i ả i 96 Bài tậ p bổ s u n g 99 Lời giải cho tậ p bổ su n g 99 C H Ư Ơ N G 7: T R U Y V  N P H Ứ C H Ợ P v t o n t t ậ p h ợ p ^102 Câu tru y v ân lồng n h au (S u b q u eries) 102 1.1 C âu tru y vân đơn d ò n g 102 Câu tru y v ấn tương quan (C o rrelated Q ueries) Tạo b ản g b ằ n g câu tru y v ấ n c o n C ập n h ậ t b ảng b ằ n g câu tru y v ấn c o n 105 C hèn th ô n g tin vào b ả n g b ằ n g câu tru y v ấn c o n 105 Xoá liệu b ằn g câu tru y v ân c o n 106 T ập hợp to n t 106 7.1 T oán tử IN T E R S E C T 106 7.2 T oán tử M IN U S 107 Bài tậ p có lời g i ả i 107 Bài tậ p bổ su n g 110 Lời giải cho tậ p bổ su n g 111 CHƯƠNG 8: BẢO MẬT TRONG S Q L 112 Bảo m ậ t li ệ u 112 1.1 Xác n h ặ n chủ quyền (A u th e n tic a tio n ) 112 1.2 C ấp q u y ền 112 G iấu liệu b ằn g view 115 2.1 Tạo v ie w 115 2.2 C ập n h ậ t v ie w 115 Bài tậ p có lời g i ả i 116 Bài tậ p bổ s u n g 117 Lời giải cho b ài tậ p bổ su n g 117 P H Ụ L Ụ C A: s D Ự N G P E R S O N A L O R A C L E 118 P ersonal O racle g ì? 118 Khởi động SQ L P lus làm việc với P erso n al O c le 119 P H Ụ LỤ C B: s Đ c ú P H Á P C Ủ A M Ộ T s ố L Ệ N H T R O N G N G Ổ N N G Ữ S Q L 124 P H Ụ L Ụ C C: S Đ T H ự C T H Ể Q U A N H Ệ E -R VÀ CÁC Đ O Ạ N K ỊC H B Ả N c S Ở DỮ L IỆ U 135 PHỤ LỤC D: TẠO BÁO B i ể u TRO N G SQ L *PL U S 147 P H Ụ L Ụ C E : s D Ụ N G M Y S Q L 153 P H Ụ LỤC F : s D Ụ N G Đ ĨA C D -R O M K È M T H E O 158 Chương 1: G iớ i t h i ệ u v ề S Q L v sở d ữ li ệ u q u a n h ệ CHƯƠNG GIỚI TH IỆU VỀ SQ L VÀ c SỞ D Ữ L IỆ U Q UAN HỆ NGÔN NGỮ SQL S Q L ngơn ngữ m áy tín h chuẩn dùng đê’ giao tiếp với hệ q u án tr ị sở d ữ liệu quan hệ - v iế t t ắ t HQTCSDLQH (Relational D atabase M anagem ent S ystem s - R D BM S) C huẩn SQL H iệp Hội Tiêu C huẩn Quốc T ế (IS O viết tắ t cụm từ In tern a tio n a l S ta n d a rd s O rganization) V iện Tiêu C huẩn Quốc G ia Hoa Kỳ (A N S I - A m erican N ational S ta n d a rd In stitu te) đ ịn h nghía T ên ch ín h thức chuẩn n g ô n n g ữ c s d ữ liệ u c h u ẩ n h ó a q u ố c t ế S Q L 1992 (International S ta n d a rd D atabase Language S Q L 1992) P h iê n b án sau chuẩn gọi SQL/92 hay SQL2 T rong p h am vi sách này, gọi chuẩn chuẩn SQL A N SI/ISO hay ngấn gọn chuẩn SQL Vào n h ữ n g năm đầu th ậ p n iên 70, ngơn ngữ SQL có tê n gọi S E Q U E L - S tru c tu re d E n g lish Q u ery Language Lúc SE Q U E L m ột p h ần hệ th ô n g R, c h ín h m ột mơ h ìn h HQTCSDLQH nguyên m ẫu h ã n g IBM Sau đó, từ E nglish bị lược bỏ d ầ n tê n gọi SQL Công ty Oracle, tiề n th â n công ty R elation Softw are, giới th iệ u p hiên b ản thương m ại ngôn ngữ vào năm 1979 Mặc dù hầu h ế t n h cung cấp CSDL hổ trợ SQL/92 ng lại k h ô n g tu ân th ủ h o àn to àn nguyên tắc chuẩn Vì vậy, trê n th ị trường h iện n ay có r ấ t nhiều p h iên b ản SQL N guyên n h â n c h ín h việc m rộng chuẩn n h ằ m tă n g tín h thương m ại cho sản phẩm ; th ế tro n g sách này, chi p dụng chuẩn SQL/92 k hi có th ể Các m in h họa thực tro n g Pẹscmal O racle 8i, p h iên m áy tín h cá n h ân H QTCSDL O racle Khi gặp n hữ ng p h ầ n mở rộ n g hay th a y đổi so với ngôn ngữ chuẩn, chúng tơi trìn h bày khác b iệt tín h riăng riê n g m ộ t sô p h iên SQL ngôn ngữ khai báo hay cịn gọi ngơn ngữ p h i th ủ tục X ét th eo quan điểm lậ p tr ìn h viên , diều có n ghĩa là: Với SQL họ khơn g cần quan tâm đến th ứ tự công việc m áy tín h cần thực T h ay vào đó, họ đ ịn h k ế t cần đ ạt cho HQTCSDL, để HQTCSDL tự đ ịn h cách h iện thự c n h ằm đ t k ế t m ong muôn Các lện h ngôn ngữ SQL chia th n h hai loại chính, gọi tiểu tập hạp ngôn ngữ d ữ liệu (d ata sub-languages) N g ô n n g ữ đ ịrih n g h ĩa d ữ liệ u (Data Definition Language - DDL), gồm lệnh CREATE, ALTER, DROP định nghĩa, th a y dổi huý bỏ đối tượng sở liệu (CSDL) table (bàng), index (chỉ mục), sequences (trìn h tự) view (khung n h ìn hay nói cho nghĩa view báng liệu ảo [ảo tự th â n khơng chứa liệu] liên kết liệu từ bảng liệu th ậ t theo nhữ ng tiêu chuẩn đ ặ t ra) T ập hợp ngơn ngữ lệnh cịn lại, n g ô n n g ữ v ậ n d ụ n g d ữ liệ u (Data M anipulation Language - D M L), gồm lệnh SELECT, INSERT, D ELETE, UPDATE cho phép bạn thao tác trê n đõi tượng liệu, điểụ quan trọ n g m bạn cần ghi nhớ tấ t đối tượng tạo tro n g CSDL dều dược lưu tro n g t đ iể n d ữ liệ u (data dictionary) hay tro n g d a n h m ụ c (catalog) B ạn có th ê sủ dụng ngơn ngữ SQL d ạn g tương ta c hay d ạn g nhúng S Q L d n g tư n g tá c cho p h ép b ạn gùri trực tiế p câu lện h đến HQTCSDL n h a n h chóng n h ậ n k ết tr ả Đối với S Q L d n g n h ú n g , câu lện h SQ L chứa tro n g chương trìn h viết b ằn g ngơn ngữ cấp cao đa n ăn g n h c , C++, hay COBOL Mục dích c h ín h cúa việc dùng ngôn ngữ SQ L d n g n h ú n g n hằm tậ n dụng tín h n ăng lập trìn h không SQL hỗ trợ Nếu dùng SQL d ạn g nhúng, bạn k h ô n g trực tiế p n h ậ n k ố t trồ từ câu lệnh SQL T h ay vào đó, k ế t truyền vào biến hay th a m sô th ú tục M ột cách tổng quát, nhữ ng lện h SQL có kh ả n ă n g sử dụ n g d ạn g tương tác có th ể dược dùng tro n g tr ìn h ứng dụng Tuy n hiên tro n g m ột số trườ ng hợp, cú p h p h d ạn g có p h ần k hác biệt, bạn cần lưu ý k h i sử dụng T ro n g tậ p sách này, chúng tơi tr ìn h bày câu SQL dạng tương tác Vì SQL áp dụng tro n g HQTCSDL quan hệ, bạn cần có khái niệm b ản CSDL quan hệ để th ấ u h iểu dược tín h n ăn g ngôn ngữ HỆ QUẢN TRỊ c SỞ DỮ LIỆU QUAN HỆ H ệ q u ă n t r ị c s d ữ liệ u (từ sau v iế t t ắ t HQTCSDL) p h ần m ềm cho p h ép b n đ ịn h n g h ĩa, khởi tạo, báo tr ì sở liệu cung câp truy x u ất điều k h iển đến liệu T hô n g thường, th u ậ t ngữ c s d ữ liệ u ám kho liệu lưu trữ; n h iên tro n g hệ CSDL tin học hóa, CSDL bao gồm n h iều th n h p h ầ n k h ác n h p h ầ n cứng, p h ẩ n m ềin, người sử dụng T rong hệ th ô n g này, liệu tru y x u ất th ô n g qua trìn h ứng dụng giao d iện H Q TCSD L cung câ”p Người sử dụng chĩ giao tiế p với HQTCSDL sau k h i đ ăn g n h ậ p (log in) với m ột tê n người sử dụn g ( usern a m e) m ậ t (passw ord) hợp lệ Sau k h i đ ăn g n h ập th n h công, người dùng b ắ t đầu m ột p h i ê n m v iệ c (session) P h iê n làm việc k ế t thúc người th o t khỏi hệ th ố n g (log ou t ) hay ngừng k ế t nối (d isco n n ect) với CSDL B ạn h ãy xem cách thứ c d ăn g n h ậ p vào CSDL phiên O racle P erso n al 8i p h ần phụ lục A cuối sách T ập hợp k iện trìn h bày tro n g CSDL gọi hệ th ố n g d iễ n g iả i (universe o f discourse - UOD) UOD chí bao gồm kiện c h ặ t chẽ phù hợp cho người sử dụng Vì CSDL p h ải th iế t kế, xây dựng p h t tr iể n dựa tr ê n yêu cầu nhữ ng người sử dụng đặc th ù mục đích sử dụng cụ th ể H ệ Q u n t r ị c s d ữ liệ u q u a n h ệ (H QTCSDLQ H) hệ quản tr ị liệu dựa trê n mơ h ìn h liệu q u an hệ Đối với loại *CSDL này, th ô n g tin tạ o n ên UOD gọi q u a n h ệ (re la tio n s ) T h u ậ t ngữ quan hệ sử d ụ n g tro n g r ấ t n h iều lin h vực; n h iên dưđi góc n h ìn CSDL tro n g sách này, quan hệ m ộ t b ả n g liệu hai chiều T ro n g CSDL, b ản g quan h ệ dôi tượng lưu trữ liệu H th u ậ t ngữ có n g h ĩa tương tự n h au , có th ể-sử dụng hốn đổi cho Mỗi quan hệ bao gồm tê n tậ p hợp c ộ t (hay gọi th u ộ c tín h ) Dữ liệu x u ất h iệ n tro n g b ản g tậ p hợp h n g (hay gọi b ộ d ữ liệ u ) T số thuộc tín h chứa q uan hệ th ể h iện m ứ c đ ộ lớ n (b ậ c) c ủ a q u a n h ệ (degree), tổ n g sơ' h n g có tro n g q u an hệ c h í n h sơ c ù a q u a n h ệ (cardinality) Theo chuẩn ANSI, ngôn ngữ địn h n ghĩa liệu - DDL cịn gọi ngơn ngữ đ ịn h n g h ĩa g ián dồ (S chem a D efinition Language) m C h n g 1: Giới thiệu S(ịL cư sư Ill'Ll quan hệ Theo chuẩn ANSI/ISO, quan hệ mỏi cột dược dịnh nghĩa bới tên cột, thoa tín h n h t phạm vi bang du' liệu N ghĩa cột thuộc óng bảng khóng ih é trúnịí tịn Ngối ra, SQL chuấn không đưa b ất kỳ giới h ạn cho tổng số cột hay tổng sô’ hàng mà m ột b an g phép chứa N thòng thường nhã sán xuất qui định giới h ạn cho số cột, sò’ h àng th i không Điều cho p hép b ang dử liệu khóng chứa híing nao cá (báng rỗng) b buộc phái có ít, n h ấ t m ột cột B ạn h ãy xem cách trìn h bàv quan hệ CUSTOMER ORDER dạng báng hai chiêu tro n g hình 1-1 VÍ DỤ 1.1 Định độ lớn tổng sô’ yếu tô quan hộ CUSTOMER ORDER Các thuộc lính Id Date Ordered Date Shipped Payment Type 08/11/19V9 08/1 2/1')')') ( (tsh ■4 10 08/12/1999 08/1 2/1 Lưu ý tốn tử lựa chọn tốn từ ngơi (unary operator), nghĩa thời điểm chí áp dụng cho m ộ t quan hệ m thơi Sau dây ví dụ m inh họa cách thực cùa phép lựa chọn VÍ DỤ 1.6 Xét lại Iquan hệ EM PLO YEE cùa ví dụ trước, tim thông lin cúa nhân viên làm việc lại phịng ban có mã 10 Để th u th ậ p th ô n g tin nhãn viên phịng ban có mả 10, bạn xác định phép chọn ƠEMP_DE/1T = io(EM P LO YE E) N hư vậy, điều kiện để tìm liệu thích hợp quan hệ EMPLOYEE t(EMP_DEPT) = 10 Sau đày k ế t ƠEMP DEPT = ^ (EM PLO YEE) E M P ID 1045 9876 ' E M P MGR 4567 1045 EM P NAME Rose Sm ith T IT L E D irector A ccountant EM P D EPT 10 10 5.2 T o n tử c h iế u (P r o je c tio n ) T oán tử chiếu to án tứ m ột ngơi Trong tốn tứ lựa chọn thu thập tập hợp h àn g liệu quan hệ th ì tốn ;ử chiếu lại lựa chọn m ột tậ p hợp cột liệu Toán tử định nghĩa sau: Cho quan hệ r tậ p hợp X chứa thuộc tín h cúa r, thực phép chiêu trê n tập X quan hệ r, kí hiệu Itx(r h ta Ịuan hệ tậ p quan hệ r Quan hệ tạo cách loại bó thuộc tín h thuộc r k h ô n g thuộc X, ỉồng thời bỏ liệu trùng lặp t í DỤ DEPARTM ENT ID 10 30 50 105 90 NAME Accounting Computing M arketing LOCA TION New York New York Los Antfoles Manufacturing Miami Sales Miami DEPARTM ENT Jtu* AiKiNlDnPARTMnNT) với r = D E P A R T M E N T X = ILOCATIONI T cổ quan hệ kết sau: LOCATION New York klocatìonCDEPARTMENT) Los Angeles Miami Quan hệ k ế t tr ê n 'chì có m ột thuộc tính LOCATION chứa tên khu vực, đó, hai giá tr ị N ew York M ia m i x uãt n h ấ t m ột lần K ết k h ô n g ch.0 biết tổng sô khu vực khác biệt có bảng DEPARTMENT, giá tr ị trù n g lắp bị loại bỏ Do đó, k ế t chí gồm t a khu vực, quan hệ DEPARTMENT lại có tấ t năm khu vực VÍ DỤ 1.8 Vần dùng bảng D EP A R TM EN T ví dụ trước, bạn hăy tìm liệu (phịng ban, khu vực) khác bảng LOCATION NAME New York Accounting Computing New York TĨname location( DEPARTMENT) Los Angeles M arketing M anufacturing Miami Sales Miami Quan hệ k ết qu.ắ Ikhiơmg chứa giá trị trùng lắp kết hợp giừa tên khu vực n h â t Hai dòng (M anufacturing, M iam i) (Sales, M ianui) lài hai dừ liệu khác Tương tự, trường hợp hai phòng ban Accounting C om puting có văn phịng N e w Y o rk cũnig llà liệu khác T ốn tử hựa chọn cịn Cíó ttêm gọi tốn tứ giới h ạn (R estrict), dây, không (lùng từ Select nhằm giúp b ạn đọc trá n h lẫn lộn gTÍữa ttốín tứ với ilệinh Select cù.a SQL BI PHỤ LỤC c : Sơ 146 đồ thực th ể quan hệ E-R đoạn kịch b ả n sớ liệu c h a r (1) E a stw est ); insert values insert values insert values insert values insert values insert values insert values insert values insert values insert values insert values insert values insert values insert values insert values insert values insert values in to W o rld _ C itie s (C ity ,C o u n try ,C o n tin e n t,L a titu d e , NorthSouth,Longi tude ,EastWest) N ' ,84.23,'W'); into World_Cities (City,Country,Continent,Latitude KorthSouth,Longitude ,EastWest) DALLAS' , 'UNITED STATES' , 'NORTH AMERICA' ,32.47, 'N , 96.47,'W'); into World_Cities (City,Country,Continent,Latitude N o r t h S o u t h , L o n g i t u d e ,EastWest) NASHVILLE' , 'UNITED S T A T E S N O R T H AMERICA' , 09 'N',86.46,'W'); into World_Cities (City,Country,Continent,Latitude N o r t h S o u t h , L o n g i t u d e ,EastWast) 'VICTORIA' , 'CANADA', 'NORTH AMERICA' ,48.25, 'N', 123.21, 'W') into World_Cities (City,Country,Continent,Latitude N o r t h S o u t h , L o n g i t u d e ,EastWest) PETERBOROUGH' , 'CANADA' , 'NORTH AMERICA' ,44.18, 'N' 79.18,'W'); into World_Cities (City,Country,Continent,Latitude N o r t h S o u t h , L o n g i t u d a ,EastWest) VANCOUVER' , 'CANADA' , 'NORTH AMERICA' , 49.18, 'N' , 123.04, ’W ) ; into World_Cities (City,Country,Continent,Latitude N o r t h S o u t h , L o n g i t u d e ,EastWest) ' T O L E D O ' , ' U N I T E D S T A T E S ' , 'N O R T H A M E R I C A ' , , 1N , 83.82,'W'i; into World_Cities (City,Country,Continent,Latitude N o r t h s o u t h , L o n g i t u d e ,EastWest) 'A T L A N T A ' , ' U N I T E D S T A T E S ' , 'N O R TH A M E R I C A ’ , 3 , ' W A R S A W , ' P O L A N D ' E U R O P E ' , , 1N ' , 0 , ' E 1) ; into World_Cities (City,Country,Continent,Latitude insert values insert values insert values insert values insert values insert values insert values insert values insert values insert values insert values insert values insert values N o r t h S o u t h , L o n g i t u d e ,EastWest) • L I M A ’ , ' P E R U ' , 'S O U T H A M E R I C A ’ , , 1s ' , 7 , ' W into World_Cities (City,Country,Continent,Latitude NorthSouth,Longi tude ,EastWest) RIO DE JANEIRO' , 'BRAZIL' , 'SOUTH AMERICA' ,22 43, 43.13,'W'); into World_Cities (City,Country,Continent,Latitude NorthSouth,Longitude ,EastWest) S A N T I A G O C H I L E S O U T H AMERICA' ,33 27 , ' ', 70 40 , 'W'); into World_Cities (City,Country,Continent,Latitude NorthSouth,Longitude ,EastWest) s ’ BO G O T A ' C O L O M B IA 'S O U T H A M ERICA' , , ' N ' , , 'W'i; into World_Cities (City,Country,Continent,Latitude Nor thSouth,Longi tude ,EastWest) BUENOS AIRES' , 'ARGENTINA' , 'SOUTH AMERICA' , 34 36 , S', 58.28,'W'); in to W o rld _ C itie s (C ity ,C o u n try , C o n tin e n t,L a titu d e NorthSouth,Longitude ,EastWest) ■QUITO', ' E C U A D O R * S O U T H AMERICA',00.13,'s •,78 30 •w ) ; into World_Cities (City,Country(Continent,Latitude NorthSouth,Longitude ,EastWest) 'CARACAS' , ’VENEZUELA', 'SOUTH AMERICA' ,10 30 , ’N 1,66 56, 'W' ) ; into World_Cities (City,Country,Continent,Latitude NorthSouth,Longitude ,EastWest) MAD R A S' , ' I N D I A ' , ' A S I A ' , , ' N ' , , ' E • ) ; insert into World_Citios (City,Country,Continent,Latitude values 'NEW DELI' , 'INDIA1, 'ASIA' ,28.36, 'N' ,77.12, 'E 1) ; insert into World_Cities (City,Country,Continent,Latitude v a lu s a N o r th S o u th , L o n g itu d e , E a stW est) ATHENS','GREECE', ‘EUROPE',37.59,'N',23 44, E ) ; into World_Cities (City,Country,Continent,Latitude NorthSouth , Longitude,EastWest) NorthSouth,Longitude,EastWest) ■ B O M B A Y ', ' I N D I A ' , ' A S I A ' , , ' N ' , , ' X ' ) ; into World_Cities (City,Country,Continent,Latitude N o r th S o u th , L o n g i t u d e , E as tw e s t ) MANCHESTER1, 'ENGLAND' , 'EUROPE' , 53 30, ' N' , 15, ' w ) ; into World_Citios (City,Country,Continant,Latitude LONDON', 'ENGLAND','EUROPE',51.30,'N',0.0,N U L L ) ; into World_Cities (City,Country,Continent,Latitude M O S C O W ,'RUSSIA', 'EUROPE',55.45,’N •,37.35,'E •); into World_Cities (City,Country,Continent,Latitude PARIS', 'FRANCE','EUROPE',48.52,'N',2.20,'E '); into World_Citi.es (City,Countiry,Continent,Latitude 'SHENYANG1 , ’CHINA' , 'ASIA' ,41.48, 'N' ,123.27, 'E ') ; into World_Cities (City,Country,Continent,Latitude 'CAIRO', 'EGYPT', 'AFRICA',30.03,'N ’,31.15’ 'E '); into World_Cities (City,Country,Continent,Latitude Northsouth,Longitude,EastWest) NorthSouth,Longitude,EastWest) N o rth S o u th ,L o n g itu d e ,E a stw est) N o r th S o u th , L o n g itu d e , E a stW est) N o r th S o u th ,L o n g itu d e , E a stW est) N o r th S o u th , L o n g i t u d e , E as tw e s t ) T R I P O L I ' , 1L Y B I A , ' A F R I C A ' , , • N ' , 1 , 1E ' ) ; into World_Cities (City,Country,Continent,Latitude NorthSouth,Longitude,EastWest) B E I J I N G ' , 'C H IN A * , ' A S I A ' , , ' N ' , 1 , ' E 1) ; into World_Cities (City,Country/Continent,Latitude ROME', 1ITALY 1, 'EUROPE',41.54, 'N',12.29 'E'); into World_Cities (Cxty,Country,Continent,Latitude NorthSouth,Longitude,EastWest) N o r th S o u th ,L o n g itu d e , E astW est) TO K Y O ’ , ' J A P A N ' , ' A S I A ' , , 1N ' , , 1E ’ ) ; into World_Cities (City,Country,Continent,Latitude N o r t h S o u t h , L o n g i t u d e , E a s t W e s t ) •SYDNEY' , 'AUSTRALIA' , 'AUSTRALIA' ,33.52, 'S' ,151.13 'E •) ; into World_Cities (City,Country,Continent,Latitude NorthSouth, Longitude,EastWest) 'S P A R T A , 'G R E E C E ', 'E U R O P E ', , ' N ' , 2 into World_Cities E'); (City,Coiintry,Continent,Latitude, N o r t h S o u t h , L o n g i t u d e , E a s t w e s t ) ( 'M A D R I D ', ' S P A I N ' , 'E U R O P E ', , ' N ' , , ' W ) ; P H Ụ L Ụ C D : T ạo b o b iể u t r o n g S Q L * P lu s PHỤ LỤC D TẠO BÁO B IỂ U TRO NG SQ L*PLU S T rong chương dã khảo s t m ột sô" biến hệ th ô n g cách dùng lện h COLUMN th a y đổi tiêu dề cột h iển th ị Với tín h Iiăng hổ trợ SQL*Plus, bạn có th ể tạo báo biểu tr ìn h bày tiêu đề nội dung tro n g cột th eo đ ịn h d ạng xác định T rong p h ầ n phụ lục này, hướng d ẫ n b ạn cách tạ o báo biểu b ằn g SQL*Plus phụ lục A, bạn b iế t cách dùng lện h SF.T gán tr ị cho biến hệ th ố n g biến m ôi trườ ng (sysuars) B D -l sau liệ t kê m ột số biến hệ thông th ô n g dụng giúp tạo báo biểu câu truy vân B iế n h ệ th ố n g Q u i d ịn h LIN ESIZE Sô’ ký tự đa trê n m ột dòng, giá trị mặc đ ịn h 80 PAGESIZE Số dịng h iển th ị tơi da trê n m ột tra n g m àn h ìn h , giá tr ị m ặc đ ịn h 24 NEW PAGE S ố dòng trước dòng dầu tiê n m ột tra n g Giá tr ị m ặc d in h NUM W IDTH C hiều rộ n g cột m ặc đ ịn h cho giá tr ị sô SPACE Sô' k h o ản g tr ắ n g cột tro n g báo biểu G iá tr ị lđn n h ấ t cho p h ép 10 Cú pháp gán tr ị cho biến hệ th ô n g n h sau: SET biến-hệ-thống giá-trị-mới CÁC LỆNH ĐỊNH DẠNG Bên cạnh biến hệ thơng, SQ L*Plus cịn cung cấp m ộ t sơ” lện h hữu ích cho việc tạo báo biểu (report), b ạn xem b ản g D-2 Tuy n h iên , để lện h có hiệu lực, chúng p h ải đ ặ t trước câu truy vấn đ ịn h n g h ĩa báo biểu r i z r \ L ệnh _ I ~ L f r \ i * n l _ J * „ L • _I í „ L ! M tả Đ ặt tiêu đề biến hệ th ô n g cuô"i trang B TITLE [title 1system var\ T TITL E [title 1system var ] BREAK COM PUTE Đ ặt tiêu dề biến hệ th ố n g đầu tran g Xác đ ịn h vị tr í cách địn h d ạn g báo biểu, b n xem giải th íc h b ên T ín h to án in tóm tắ t trê n tậ p m ẩu tin , b ạn xem giải th íc h b ên V Í DỤ Hiển th j kết quà câu truy vấn bên vói tiêu đề " Sains Representatives n f the SG Compart/' đầu írang S E L E C T f i r s t _ n a m e , l a s t _ n a m e , d e p t _ i d AS FROM s e m p W H E R E t i tl e = 'Sales R e p r e s e n t a t i v e ’ ; "D p t” Để tạo tiêu đề yÊu cầu, bạn dùng lệnh T T IT L E trước câu truy vấn Chú ý, tiêu đề phải chứa cặp dấu nháy đơn SET L IN E S IZ E 80 T T IT LE 'S a l e s R e p r e s e n ta tiv e s o f th e SELECT f i r s t _ n a m e , l a s t _ n a m e , d e p t _ i d FROM s _ e m p WHERE t i t l e = ' S a l e s R e p r e s e n t a t i v e ' ; SG C o m p a n y ' AS " D p t " H iệ u ứ n g TTITLE W eb F e b page 09 S a le s R ep rese n ta tiv es FIRST_NAM E LAST_NAME Dpt C o lin Sam Jason A ndre H enderson G ilso n S anders D am eron 31 32 33 35 of th e SG C o m p a n y B ên cạnh tiêu đề, lện h T T ITL E h iể n th ị ngày hệ th ô n g sơ’ tra n g tạ i góc p h ăi góc tr i tr ê n tran g LỆNH BREAK 12 L ệnh BREAK kiểm so át cách tr ìn h bày nội dung báo biểu L ệnh n ày cho phép đ ịn h n g h ĩa n gắt điều kliiển (control break) tr ê n cột Khi giá t r ị cột điều kh iển (control colum n) th a y dổi (giá tr ị dòng h iện tạ i k h ác h ẳ n giá t r ị dịng trước đó), th ì n g ắ t điều k h iển xảy h n h dộng tương ứng cho tá c động n ày dược thực Cú p h áp câu lộnh BREAK n h sau: BREAK ON thành-phần-của-báo-biểu [hành-động [ hành-động] ] T ro n g đó, tliành-phần-của-báo-biểu m ộ t tro n g nh ữ n g giá tr ị sau: { cột I biểu-thức I báo-biếu } hàn h -đ ộ n g là: [SKIP n l SKIP PA G E] [ NO D U P LIC A TES I D U PLIC A TES] M ột đ ịn h nghĩa, câu lệ n h BREAK có tác dụng k h i đ ịn h n g h ĩa lạ i b ằ n g m ộ t lện h BREAK khác bị vơ hiệu hóa lện h C L E A R B R E A K S Sau m ộ t sô’ nguyên tắc cần lưu ý k hi dùng lệ n h BREAK: B ạn n ê n làm lại CSDL SG trước k hi thực th i câu tru y v ấn ví dụ n ày ví dụ tiế p theo A s 148 P H Ụ LỤC D: Tạo báo biểu tro n g SQ L*Plus L ện h BREAK hiệu n h ấ t k hi liên k ế t với m ệnh dề ORDER BY p h t biểu SELEC T C âu tru y vấn phải dược xếp th ứ tự (ORDER BY) theo cột d ịn h tro n g câu lện h BREAK m õi th i điểm , có n h ấ t m ột câu lện h BREAK có tác dụng Tuy n h iên , m ộ t lệ n h BREAK có th ể th iế t lập lúc nhiều ngắt đ iể u k h iển (control break) VÍ DỤ Hiển th ị tên tất khách hàng, với thành phố, quốc gia khu vực họ sở liệu SG Nhóm khách hàng theo khu vực C âu tru y vấn k ế t n h sau: T T IT LE ' L o c a t i o n o f t h a c u s t o m e r s o f t h e SG C o m p a n y ' B TIT LE ' I n t e r n a l I n f o r m a t i o n ' ^ _ S ự tư n g ứ n g BREAK o n c o u n t r y S K I P g iữ a tê n th u ộ c tín h tr o n g lệ n h BREAK m ện h đ ề O R D ER BY SELECT r e g i o n _ i d , c o u n t r y , FROM s _ c u s t o m e r ORDER BY r e g i o n _ i d , c o u n t r y ; Thu Feb REG 10 \ L o c a tio n COUNTRY Uf B n q u a n s t th ứ tự tư n g ứ n g g iữ a c c c ộ t tr o n g c â u tr u y vấn v 1t r o n g b o b iể u C ITY H a rriso n b u rg ■ R a stiso n b u rg H ar r i so n B trrạ^^_ H a rriso n b u rg H a rriso n b u rg H a rriso n b u rg L a n c a ste r S e a ttle L a n c a ste r ^ B u i f a l o - -S a a -rfan c isC O L a n c a ste r L a n c a ste r of th e cu sto m ers of th e NAME S p o rts , Inc Tom s S p o r t i n g G o o d s A th le tic A ttire ftth ie ^ ic s For A ll Shoes fo r -S p o tts BJ A th le tic s -Ladv -S íố a t A th le te s S p o rts K a ta il S p o r t E m p o riu m A t h l e t i c s Tw o A th le te s A ttic B razil Sao P a o lo One page T ác d ụ n g c ủ a v iệ c sắ p x ế p k ế t q u ả th e o k h u v ự c lư u tr ú (r e g io n ) rồ i th e o q u ố c g ia T c d ụ n g c ủ a tu ỳ c h ọ n S K I P c h è n h a i d ị n g t r n g k h i n g ắ t đ iề u k h iể n x ả y r Ỵ SG c o m p a n y Sport K h i t ê n q u ấ c g ia tr o n g m ẩ u tin h iệ n ■ v t i k h c h ẳ n m ẩ u tin trư c đ ó , th ì n g ắ t đ iề u k h iể n x ả y „ _ , BTITLE h iê n th ị t iê u d ề c u ố i tr a n g In te rn a l In fo rm a tio n T c d ụ n g c ủ a lệ n h TTITLE, tr a n g th ứ Thu F eb 10 ^ L o c a tio n REG COUNTRY CITY of th e cu sto m ers NAME of th e page SG c o m p a n y T ắ c d ụ n g c ủ a lệ n h BREAK tr ê n th u ộ c tín h c o u n tr y Q u a n h ệ k ế t q u ả dược x ế p th e o th ứ tự c ủ a q u ố c g ia C ác q u ô c g ia k h c n h a u đ ợ c g Ị ỉá p c c h b ằ n g h a i d ò n g tr ố n g V e n1e z u se l a Z C air a c a s fin D ep o rtiv o In te rn a l 25 row s C aracas In fo rm a tio n se le c te d Đ ể hiểu r õ tín h n ăn g lện h , sau khảo T T IT LE ' L o c a t i o n o f t h a c u s t o m e r s o f t h e SG C o m p a n y ' B TIT LE ' In te rn a l In fo rm a tio n ' BREAK o n c o u n t r y S K I P SELECT r e g i o n _ i d , c o u n t r y , c i t y , nam e FROM s _ c u s t o m e r ORDER BY r e g i o n _ i d , c o u n t r y ; T ác d ụ n g c u ô i tr a n g BTITLE tạ i s t chi tiế t từ ng câu lệnh: L ệnh TTITLE yêu cầu hệ th ô n g in chuỗi tiêu đề chứa tro n g cập dâu nháy đơn irê n đ ỉn h tran g Bên cạnh tiêu dề, lện h cịn in ngày hệ th n g góc trá i trê n in sô tra n g tạ i góc phăi trê n tran g • L ệnh BTITLE in th n g điệp chứa tro n g cặp dấu nháy đơn ci tra n g m iễn trước dó bạn định sơ dịng tối đa cho tra n g lện h P A G E SIZE PHỤ LỤC D: Tạo báo biểu SQL*Plus 149 E Lệnh B R E A K o n c o u n tr y S K IP định country cột ngắt (break-column) h ành động giá trị cột th ay đổi Tùy chọn SK IP yêu cầu hệ thống bỏ qua hai dòng trắn g ứng với ngắt N gắt xảy giá trị cột n g ắ t th a y đổi • P h t biểu SELECT yêu cầu hệ th ố n g thu th ậ p th ô n g tin tro n g bảng S_EMP M ệnh đề ORDER BY xếp th ứ tự m ẩu tin thf :0 giá tr ị chứa tro n g cột n g ắ t country Bạn k ế t hợp dùng lện h BREAK với ORDER BY nhằm giúp k ế t h iể n th ị rõ rà n g có nghĩa Để báo biểu rõ rà n g dễ đọc, tro n g m ệ n h đề SELECT, bạn nên d ặt cột từ trái san g theo trìn h tự Lit cấp cao đến cấp th â p Ví dụ trường hợp này, khu vực (region ) thuộc tín h cấp cao n h ấ t tro n g khu vực có nhiều quốc gia c ấ p k ế tiẽ p qc jjia (country ) q’c gia thư ng có n h iề u th n h phố Cấp cuối th n h phơ (city) B ạn có th ể chọn cấp k ế tiế p quận, khu phô, dưỡng th n h phô” CSDL bạn có lưu trữ thơng tin • T ín h to n tr o n g b o b iể u Lệnh C O M P U T E giúp b ạn thực h iệ n phép tín h tron g báo biểu Lệnh k ế t hợp với lện h BREAK nhằm thực th i phép tính trô n cột Iigắt giá tr ị tro n g cột n ày th a y đổi L ệnh COM PUTE khơng có nghĩa bạn dùng lện h m ột cách riê n g lẻ B ảng D-3 liệt kê h m kèm với lện h COMPUTE D ạng băn câu lệnh n h sau: CO M PU TE [hàm] OF {bí-danh-cột} ON {cột-ngắt I REPORT} ] Bàng D -3 Danh sách hàm thông dụng dùn s câu lệnh COM PUTE T ê n hàm AVG COUNT MAXIMUM MIXIMUM SUM Bạn xác lập huỷ bỏ p hép K iể u d ữ liệ u đ ợ c c h ấ p n h ậ n X c d in h NUM BER T ru n g b ìn h cộng trị khác null Mọi kiểu liệu Sô giá tr ị khác null NUM BER / CHARACTER Giá tr i lớn n h ấ t NUM BER / CHARACTER G iá tr i nhỏ n h ấ t NUMBER T giá tr ị khác null tín h th n g qua hai câu lện h sau dâu nhắc sequel: COM PUTE CLEA R COM PUTES VÍ DỤ Ciả sử bạn thiết lập mơi trường hình D-1, hiển thị nghề nghiệp, họ mức lương nhân viên chứa bảng S_EM P tính tổng lương tùlig nhóm nghề TT IT LE 'E m p l o y e e S a l a r i e s b y T i t l e ' BTTTLS ' F o r I n t e r n a l U s o O n l y ' COLUMN s a l a r y HEADING ' S a l a r y ' FORMAT $ 9 , 9 9 Hình D -1 C c thiết lập môi trường Lưu ý, có thêm giải thích cho lệnh nơn kết bôn định dạng lại cho vừa với kích thước trang CLE AR COMPUTES BREAK ON t i t l e S K I P COMPUTE SUM O F s a l a r y o n SELECT t i t l e , l a s t _ n a m e , ORDER BY t i t l e , Thu F eb TITLE sa la ry la s t_ n a m e , 10 FROM s _ e m p sa la ry ; page E m p lo y ee by T itle Tống S a la ry LAS T_ NAME T ITL E S a la rie s lư n g củ a từ n g lo i n g h ề n g h iệ p P resid e n t ^ — - M artin * * * * * * * * * * * * * * * * * * *ĨTF——— p ? ” N g xảy trê n sum c ộ t title k h i g iá trị S a le s R e p re se n ta tiv e sum S to ck C le rk tr o n g c ộ t th a y đ ổ i D am eron G ilso n H enderson S anders $ ,5 0 0 $ ,5 0 0 • $ ,4 0 $ ,4 0 $ ,4 0 0 $ ,5 0 $ ,8 5 0 $ 0 $ 0 $ 0 0 $ 0 vConnQ ' X X j ' b j \ '-''.I.'> .5ÍÌỈ > o ^3*1 Dd*«bé«e 'v Quwy I ẽ M ySQ lfront {KewC«nn«HM> /Kị] Bie S Q L ^ u o ry o n D ataba** * * z ỵ3& & t'ýp$Ll; ô cMỏằ|cựbg *x 35 lỏ ã VAHCHARớ3) HOT mnx, rỳ- name VAttCHAR;3Ỡ) KOT NULL, - s p a i i i i r A B C t t i i i E O i HOT m a x ; tt-MWrm VAKCII*R - > R e fre aenu TT o o ls fr e sh sh N bạn thấy thây 10 tab le với số sô record table đ tạo nên hình trê n bạn th n h cóng vic s ng dySQL ffij MySQL-front ã|NôWConnection /sg SỬ DỤNG MYSQLFRONT CHẠY TIIỬ CÁC VÍ D ự VỚI MYSQL 25? Fte Cdtt Tools Im-/Cxport Window Help i ^ s a l b fc i* & Hall Q Dsutaie Gọi tập tin m ysqlfront điều chỉnh m àn h ìn h hiển th ị để :ó th ể th â y k ết thực th i câu lệnh SQL tạo ra: B ạn thử chọn L o a d S Q L , chọn tập tin sq l thư TMtsc^j 2ÍK0H s nục C H vả chọn R u n (hay bấm F ) bạn có k ế t hình ;rên (bạn phải nhớ điều h cửa sổ m ysqlfront để có th ể ;hấy k ế t trê n m àn hình) B ạn nên chạy tậ p tin SỬ DỰNG MYSQLGUI CHẠY THỬ CÁC v í DỤ VỚI MYSQL ~ ~ ■static mục pơte MịđiHơđ LKB SpwdUal iu a am ufeSai SfMySQU,* □ mysqlgul.ẹxe Type: SpeedDial Date Modified: 08/09/200 Size: 672 bytes g readme*versfonih , ;'2KB ằF*I reâdmố.'ôstorijt.6*1 u KB File ■ịkB File 1KB File rnmm 3/09/20012U y09/aằli:ô ! v**ãã>,< O ÍO /itìú l Vsjm V ,.4H> File ]readme,versỉon_l ? |readme,v w * » U ‘W ]readme,versfonj 7.5-1 Ịreadme.v*r*on_vA*n32J ,5' 1readme*.YỸ1siũfi_wlr.32J >6 )r e d m e ^ ^ J ,?"I Vreadme.Y?^ jw M j ,7 ►Ruturei : BSIjwJSOL y s«v«5UL igsFuncforo v o r ld c ì tie s s q l đề tạo tab le w orldcities cho tậ p :hương bạn có th ể chạy th tấ t tậ p tin *.sql th mục C H (trong th mục M Y S Q L s c r ip t) trê n đĩa CD-ROM dành :ho MySQL Mở tập tin nén rnysqlgui- tliy I S U L U ueif a n U atabatP tg : ■' 2KB File " ; ■' 08/09/3X11*1! ; : KB 7Fite • ■ ,; ;■ 08/09/Mill ::!• ềầ P H Ụ L Ụ C E : Sử dụng MYS( Chọn OK xem m ậ t (p.asisword) rỗng (vì mặc dịnh MySQL có user tê n root có m ật k hẩu rỗng), ta có giao d iện sau: Chọn sở liệu sg, dịng cũì ; C RE A TE U N IQ U E INDEX s _ d e p t _ n a m e _ r e g i o n _ i d _ u k ON s _ d e p t ( n a m e , re g io n _ id ); Với P i create table s_ d ep t (id VARCHAR2 ( ) C O N S T R A IN T s _ d e p t _ i d _ n n NOT N U L L , nam e V A R C H A R ( ) C O N S T R A IN T s _ d e p t _ n a m a _ n n NOT N U L L , re g io n _ id V A R C H A R 2(3), C O N S T R A IN T s _ d e p t _ i d _ j p k PRIM ARY KEY ( i d ) , C O N S T R A IN T s _ d e p t _ n a m e _ r e g i o n _ i d _ u k U N IQ U E ( n a m e , re g io n _ id ) ); C húng ta ý khác b iệ t UNIQ UE INDEX mà M ySQL tạo so với rà n g buộc U NIQ UE P ersonal Oracle 8i Các b ạn có th ể tìm hiểu th êm nhữ ng trường hợp khác n h au SQL P SQL MySQL qua tập th í dụ ủ n lại Các bạn có th ể đọc th ê m p h ầ n b ân sở liệu MySQL tro n g sách “Xây dựng ứng dụng Web P H P & đySQ L” tác giả P h ạm Hữu K hang MK PƯB p h t h àn h N ếu b ạn muốn sâu th êm vào MySQL th ì xin th am khảo thường :uyên tà i liệu tr ê n tra n g W eb www m ysql.com M P H Ụ LỤC F: Sứ dụng dĩa CD-ROM kèm th 158 PHỤ LỤC F SỬ DỤNG ĐĨA CD-ROM KÈM THEO Đĩa CD-ROM kèm theo sách có hai th mục ba tậ p tin liệt kê sau: Tập tin m ysq l-4 15-w in zip mở nén cho source đé' cài đ ặ t MySQL version 4.0.15 (đây version chạy ổn định n h ấ t vào thời điểm này) Tập tin niysqlfront.zip mở nén cho source để chạy chương trìn h m ysqlfront k ết nôi với d atab ase serv er MySQL mô tả phụ lục E T ập tin m y s q lg u i-w in -sta tic -l.7.5 -2 zip mở nén cho source chạy chương trìn h m ysqlgui k ế t nối với database serv er MySQL với giao diện đồ hoạ r ấ t đẹp m ắ t đế’ bạn dùng th so sán h với m ysqựront T hư mục O RAscript chứa scrip t chạy tro n g môi trường Personal Oracle 8i hầu h ế t ví dụ tấ t cá giãi bi tậ p tương ứng theo chương, quy ước đ ặ t tên sau: tập tin v d s q l chứa câu lệnh SQL cho ví du 3.1 chươi' tậ p tin sq l giãi cho tậ p 3.1 chương Thư mục M YSQ Lscript chứa scrip t chạy mơi trường MySQL ví dụ tấ t giải tậ p tương ứn theo chương 3, tro n g th mục có hai scrip t w orld_cities.sql sg.sql đê tạo sớ liệu th ứ n ghiệm cho ví dụ bi tậ p tro n g chương Vì tập tin dĩa CD-ROM ln có thuộc tín h read-only, nên để dễ hiệu ch ỉn h scrip t tro n g trìn h ch ạy thử cé b ạn có th ể chép đĩa cứng th a y dổi thuộc tín h cách bỏ thuộc tín h read-only đề scrip t cỏ thế' th a y đổi nơi dung đượi Thí dụ bạn chép th mục O RAscript từ đĩa CD-ROM ổ’ dĩa C:, đế' bo thuộc tín h read-only b ạn gõ lện h sau: a t t r i b - R C :\O R A s c rip t\* * / s (nêu bạn chép nơi khác khai báo lại cho đường dẫn đến th mục chép xng) hay b ạn có th ế dùng mơi trường đồ hoạ th ì khơng cần gõ lệnh, nhâp phím phải chuột vào th mục O R A script chọn Properties O R A s c iip t P io p e it ie s 'à'on'dikf l.'.'b MB 11,855,498 byte I FilersVdde.s.CL; , ẳ § j | l ị l i 'CMhave civteen b3 nwfc mtf ffilowtrift September.26.-2003,' 6.0221 AM ễm ũ ẵ B M ềÊm • v zMt fw; S' I' ' Do you want to apply: tfits change tplNs Folder m lyjyt ỳoựy< ■ Hidden • ápplỷ it to all subfolders arid files as ^eli? f t y p p t f c h a n g e ? ,to f t f e ( P Ì d e Ọ r ý ’ " T V ; Khi bạn n h â p chuột vào hộp kiểm để xố thuộc tín h R ead-only, hệ th ô n g đưa hộp thoại đế’ yêu cẩu b ạn chọn cập n h ậ t thuộc tín h cho tồn th mục tập tin bên tro n g cấp hay không B ạn chọn “A p p ly c h a n g e s to th is fo ld e r , s u b fo ld e r s a n d f i l e s ” n h ấp chuột vào n út OK Tương tự bạn th ay đổi thuộc tín h cho th mục M YSQLscript chép ổ đĩa cứng n SÁCH Đ Ã XUẤT B Ả N 55 56 57 58 59 60 61 62 Ạ p T R ÌN H : Bài tậ p nfỊơn ngữ c từ A dến z Giáo trìn h lý th u y ết tậ p ngơn ngữ c [tập & 2] Lập trìn h W indows (Bằng Visual c*') T h iết k ế dồ họa định hướng đối tượng với C” Giáo trin h lý th u y ết I tậ p Pascal [tập & 2] Giáo trìn h lý th u y ế^ v tậ p Foxpro [tập 1] Sử dụng khai th ác Visual Foxpro 6.0 I Visual Foxpro SQL S erver I Access 2000 lập trìn h ứng dụng sở liệu [tập & 2] Giáo trìn h lý th u y ết tậ p Oracle ORACLE 9i Developer: P h t triể n ứng dụng Web với Form s B uilder i‘2 T h àn h th ạo ORACLE 9i - Quản tr ị sở liệu [tập & 2] 13 Giáo tr in h lý th u y ết tậ p Jav a 14 Jav a lập trìn h m ạng 15 Giáo trìn h lý th u y ết tậ p visual J**6 L6 Tự học lập trìn h sỡ liệu với VB6 21 ngày [tập & 2] 17 Visual Basic 6.0 - Lặp trìn h sở liệu 18 Kỹ xảo lặp trìn h VB6 19 20 21 22 23 THIẾT KẾ ĐỒ HỌA Kỹ xảo lặp trìn h VB.Net T ham khảo n h a n h VB6 Các kỹ xáo lập trìn h với VB6 Delphi Giáo tr ìn h lý thuyết tậ p Delphi Hợp ngữ lập trìn h ứng dụng [tậ p l & 2] 24 Lập trìn h Linux [tập 1] 25 Đồ họa vi tín h [tập & 2] 26 Giáo tr ìn h tr í tuệ n h ận tạo - M ạng N ơron phương pháp ứng dụng 27 Giáo tr ìn h trí tuệ n hàn tạo - Cấu trúc liệu + T h u ật giải di truyền = Lặp trìn h tiến hóa 28 Giáo tr ìn h tr í tuệ n h ân tạo - Máy học 29 Tự học lặp trìn h ví dụ vói VISUAL C " MFC 30 Lập trìn h ứng dụng chuyên nghiệp SQL Server 2000 (tập & 2) 31 Từng bước học lập trìn h với VB.NET 32 Lập trìn h W indows với C '.N E T 33 Tự học lập trìn h chuyên sâu với VB.NET tro n g 21 ngày 34 Câu trúc dừ liệu với JAVA 35 Kỹ th u ậ t lập trìn h ứng dụng C '.N e t to àn tậ p [tập 1, 36 Kỷ th u ậ t lập trìn h ứng dụng chuyên nghiệp VisualBasic [tập 2] 37 Từng bước học lập trìn h Visual C'* N et T h iết k ế h o ạt h ìn h cho web với M acrom edia Flash M acromedia F lash MX M acromedia F lash MX 2004 T h iết k ế F lash với th n h p h ần dựng sẩn Các kỹ th u ậ t ứng dụng tro n g F lash D ream w eaver Hướng dẫn th iế t k ế tra n g web tương tác JavaS cript Thực h n h Jav a S c rip t (cho Web) Sử dụng E -m a il tin học văn phòng trê n m ạng với Outlook 2000 63 Modem tru y ền sô liệu 64 Cơ sở kỹ th u ậ t chuyến m ạch tổng đài [tập & 2] 65 XML - N ền tả n g ứng dụng 66 Xây dựng ứng dụng web với JS P , servlet, Javabeans 67 ASP 3.0 / ASP.NET 68 T h iế t k ế tra n g W EB dộng với DHTML 69 Lập trìn h ứng dụng W EB với JS P / Servlet 70 Kỹ th u ậ t tru y ền số liệu 71 T h iết k ế web với M acrom edia D ream w eaver 4.0 72 M acrom edia D ream w eaver MX 73 Kỹ th u ậ t điện thoại qua IP & In te rn e t 3] N et 38 Từng bước học lập trìn h Visual C‘.Net 39 Tự học M icrosoft Access 2002 tro n g 21 ngày 40 Xây dựng ứng dụng W indows với C**.Net [tập & 2] 41 P h t tr iể n ứng dụng b ằn g M icrosoft Access 2002 [tập & 2] 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 Vẽ m in h họa với C orelD raw 9.0 Vẽ m inh họa với CorelD raw 10.0 [tập 1, & 3] CorelD raw 11 Autocad 2000 [tập & 2] T h iết k ế chiều với 3D Studio Max 3.0 T h iết k ế chiều với 3D Studio Max 4.0 T h iết k ế chiều với 3DS Max 5.0 3DS Max Adobe Photoshop 5.5 Im ageReady 2.0 Adobe P hotoshop 6.0 Im ageReady 3.0 Adobe P hotoshop Im ageR eady 7.0 [tập & 2] Adobe Photoshop tậ p kỹ xảo Adobe Photoshop c s & Im ageReady - tậ p Adobe Illu stra to r 8.0 Adobe Illu stra to r với kỹ th u ậ t th iế t kê nâng cao Adobe InD esign Dàn tra n g với Q uarkX Press Sử dụng 3DS Max th iế t kê mơ h ìn h n h â n vật Sử dụng 3DS Max th iế t k ế h o t h ìn h n h ân vật Các kỹ th u ậ t tiê n tiế n tro n g D irector 8.5 (tập 1) T h iết k ế k iến trú c với A utodesk A rchitectural Desktop 2004 (tập 1) HỆ ĐIỀU HÀNH VÀ MẠNG 95 Vận h n h k h th ác W indow s 98 96 Làm chủ W indow s 2000 S erv er [tập & 2] 97 Làm chủ M icrosoft W indow s XP professional [tập & 2] 98 Làm chù W indow s S erv er 2003 [tập & 2] 99 W indows 2000s - Cài d ặ t & Quản trị 100 Giáo tr ìn h m ạng Novel N etw are 5.0 42 Giáo trìn h SQL Server 2000 (tủ sách dễ học) 101 Giáo trình cấu trúc máy tính 43 Xây dựng ứng dụng Web b ằn g P H P MySQL 102 Vi m ạch m ạch tạo sóng 103 Họ vi điều k h iển 8051 104 Tìm hiểu câu trúc hướng dẫn sửa chữa, bảo trì m áy PC [tập 1, & 3] 105 Giáo trìn h hệ thõng m ạng máy tín h CCNA [Sem ester & 2] 106 M ạng m áy tín h 107 Giáo trìn h lý th u y ết thực h n h Linux [tập 1] 108 Xử lý tín hiệu sô’ - Lý th u y ết tậ p 109 Bảo m ậ t ưu hóa Linux 110 Tự học SQL S erv er 2000 tro n g 21 ngày 44 Ja v a [tập & 2] 45 Giáo tr ìn h n h ậ p môn UML 46 Xây dựng & triển khai ứng dụng thương mại điện tử [tập & 2] 47 L ập tr ìn h SQL 48 Giáo tr ìn h SQL Server 2000 (tủ sách dễ học) 49 Giáo tr ìn h lý th u y ết thực h àn h tin học vàn phòng - T ập 1: W indow s XP 50 Lập tr ìn h m ạng M icrosoft W indows IN T E R N E T & V IẺ N t h ô n g 51 In te rn e t E xplorer toàn tập 52 In te rn e t w orking với T C P /IP [tập - p h ần 1, p h ần 2; tậ p 2] 53 Thực h n h th iế t k ế tra n g web với F ro n ag e 2000 54 F ro n a g e 2000 tồn ta p VÃN PHỊNG 111 M icrosoft W ord 2000 112 Đồ họa m u ltim edia tro n g văn phòng với MS Pow erPoint 2000 LẬP TRÌNH SQL CĂN BẢN Chịu trách nhiệm xuất bản: NGUYỄN ĐÌNH THIÊM Chịu trách nhiệm nội dung: NGUYỀN BÁ NGỌC Biên tập: ĐOÀN THIỆN NGÂN Sửa in: NGỌC AN Thiết kế bìa: HUỲNH THẢO Tổng phát hành NH À SÁ C H M INH KHAI 249 Nguyễn Thị Minh Khai - Q l - TP HCM ĐT: (08) 9250590 - 9250591 FAX: (08) 8331124 E-mail: mk.book @ minhkhai.com.vn mk.pub @ minhkhai.com.vn Website: www.minhkhai.com.vn In 1.000 khổ 21 X 29 XN In Machinco - 21 Bùi Thị Xuân, Q.I Giấy phép xuất số: 12-335/ XB-QLXB ngày 19/03/2004, mã sô 1214/20-2 In xong nộp lưu chiểu tháng 12/2004 ... S_EMP M ã bảnR S_DEPT M ã bảng S_TITLE M ă b ản ? S_EMP M ã b S_REGION M ã bảng s CUSTOMER M ã bảng S_EMP M ã cua bang S_ORD M ã cúa bảng S_PRODUCT Mã bảng s EMP M ã bảng S_REGION M ã bảng S.PRO...s § ĐỒN THIỆN NGÂN (Chủ biên) ĐỒN THỊ THANH DIEM HỒNG ĐỨC HẢI LẬP TRÌNH ■ SQL CĂN BẢN NHÀ XUẤT BẢN LAO ĐỘNG Xà HỘI LỜI NÓI ĐẨU LỜI NÓI ĐẦU Quyển sách... C T bàngl cột 1, bảngl cộtN, bảng2.cột1, bảng2.cộtN FROM b án g l, bảng2 W H E R E bảngl tẻn-cột (+) = bàng2.tên-cộl; Hình 2-3a Phép nơì ngồi hiển thị thơng tin liệu thuộc bảng hai bất chấp