Chương 1: Tổng quan về SQL Chương 2: Ngôn ngữ định nghĩa dữ liệu Chương 3: Ngôn ngữ thao tác dữ liệu Trong quá trình biên soạn, nhóm giảng viên Bộ môn Công nghệ Thông tin của Trường Cao đẳng Xây dựng Số 1 - Bộ Xây dựng, đã được sự động viên quan tâm và góp ý của các đồng chí lãnh đạo, các đồng nghiệp trong và ngoài trường. Mặc dù có nhiều cố gắng, nhưng trong quá trình biên soạn, biên tập và in ấn khó tránh khỏi những thiếu sót. Chúng tôi xin được lượng thứ và tiếp thu những ý kiến đóng góp. Trân trọng cảm ơn! Hà Nái, ngày&&tháng&&năm&&& Chủ biên Ths.
Lê Thá L°¢ng 2 MĀC LĀC CH¯¡NG 1: TàNG QUAN VÀ SQL .1 SQL là ngôn ngā c¢ sở dā liáu quan há .2 Vai trò của SQL .3 Táng quan vÁ c¢ sở dā liáu quan há .1 Mô hình dā liáu quan há .3 Khoá của bÁng .4 Mối quan há và khoá ngoài .1 Câu lánh SQL .2 Qui tắc sÿ dụng tên trong SQL .4 Giá trá NULL. 14 CH¯¡NG 2: NGÔN NGĀ ĐàNH NGH)A DĀ LIàU .1 Ràng buác CHECK .2 Ràng buác PRIMARY KEY.3 Ràng buác UNIQUE.4 Ràng buác FOREIGN KEY. Cập nhật, bá sung và xoá dā liáu.1 Cập nhật, bá sung dā liáu. 30 CH¯¡NG 3: NGÔN NGĀ THAO TÁC DĀ LIàU .1 Truy xuÃt dā liáu với câu lánh SELECT .2 Danh sách chọn trong câu lánh SELECT .3 Chß đánh điÁu kián truy vÃn dā liáu .4 T¿o mới bÁng dā liáu từ k¿t quÁ của câu lánh SELECT .5 Sắp x¿p k¿t quÁ truy vÃn.
44 3 CH¯¡NG TRÌNH MÔN HàC (Kèm theo Quyết định số 308/QĐ-CĐXD1 ngày 25/7/2023 của Hiệu trưởng Trường Cao đẳng Xây dựng số 1) Tên môn hác: Hà QUÀN TRÞ C¡ Sä DĀ LIàU VàI SQL SERVER Mã sá môn hác: MH22 Thãi gian thăc hián môn hác: 75 giờ (Lý thuy¿t: 15 giờ; Thăc hành, thí nghiám, thÁo luận, bài tập: 57 giờ; Kiểm tra 03 giờ) (Trong đó: Tổng số giờ giảng dạy và học tập trực tuyến: 30 giờ) I. Vß trí, tính ch¿t của môn hác - Vá trí: + Môn học đ°ợc bố trí ở kỳ học thứ 03. + Môn học tiên quy¿t: MH12-C¢ sở dā liáu - Tính chÃt: là môn học chuyên môn cung cÃp các ki¿n thức c¢ bÁn vÁ các thành phÅn há quÁn trá c¢ sở dā liáu, các khái niám vÁ c¢ sở dā liáu quan há h°ớng đối t°ợng và c¢ sở dā liáu quan há, ngôn ngā MS SQL, các ki¿n trúc của há quÁn trá c¢ sở dā liáu MS SQL Server, cách làm viác và t°¢ng tác giāa các thành phÅn ki¿n trúc trong há thống. VÁ ki¿n thức: - Trình bày đ°ợc ki¿n thức c¢ bÁn vÁ ngôn ngā c¢ sở dā liáu và các mô hình quan há; - Trình bày đ°ợc ki¿n thức vÁ há c¢ sở dā liáu, các ràng buác khóa, t¿o và cập nhật dā liáu; - Trình bày đ°ợc cách truy xuÃt đ°ợc c¢ sở dā liáu, sắp x¿p l¿i c¢ sở dā liáu.
VÁ kỹ năng: - Xác đánh đ°ợc khóa, xây dăng đ°ợc mối quan há giāa các bÁng; - T¿o đ°ợc các bÁng, khóa và mối quan há liên k¿t giāa các bÁng; - T¿o, cập nhật và xóa đ°ợc dā liáu; - Thăc hián đ°ợc các thao tác quÁn trá c¢ sở dā liáu với há thống MS SQL Server. VÁ năng lăc tă chủ và trách nhiám: Rèn luyán lòng yêu nghÁ, t° th¿ tác phong công nghiáp, tính kiên trì, sáng t¿o trong công viác. 4 CH¯¡NG 1: TÞNG QUAN VÀ SQL Māc tiêu bài hác 1. Trình bày đ°ợc các khái niám trong c¢ sở dā liáu; 2.
Trình bày đ°ợc vai trò của SQL; 3. Trình bày đ°ợc táng quan vÁ c¢ sở dā liáu quan há; 4. Trình bày đ°ợc các s¢ l°ợc vÁ SQL. 5 CH¯¡NG 1: TÞNG QUAN VÀ SQL 1.1 SQL là ngôn ngā c¢ så dā liáu quan há SQL, vi¿t tắt của Structured Query Language (ngôn ngā hỏi có cÃu trúc), là công cụ sÿ dụng để tá chức, quÁn lý và truy xuÃt dā liáu đuợc l°u trā trong các c¢ sở dā liáu.
SQL là mát há thống ngôn ngā bao gßm tập các câu lánh sÿ dụng để t°¢ng tác với c¢ sở dā liáu quan há. Tên gọi ngôn ngữ hỏi có cấu trúc phÅn nào đã liên t°ởng đ¿n mát công cụ (ngôn ngā) dùng để truy xuÃt dā liáu trong các c¢ sở dā liáu, khÁ năng của SQL v°ợt xa so với mát công cụ truy xuÃt dā liáu, mục đích ban đÅu khi SQL đ°ợc xây dăng nên và truy xuÃt dā liáu là mát trong nhāng chức năng quan trọng của nó. SQL đ°ợc sÿ dụng để điÁu khiển tÃt cÁ các chức năng mà mát há quÁn trá c¢ sở dā liáu cung cÃp cho ng°ời dùng bao gßm: • Đßnh ngh*a dā liáu: SQL cung cÃp khÁ năng đánh ngh*a các c¢ sở dā liáu, các cÃu trúc l°u trā và tá chức dā liáu cũng nh° mối quan há giāa các thành phÅn dā liáu. • Truy xu¿t và thao tác dā liáu: Với SQL, ng°ời dùng có thể dß dàng thăc hián các thao tác truy xuÃt, bá sung, cập nhật và lo¿i bỏ dā liáu trong các c¢ sở dā liáu.
• ĐiÁu khiển truy cập: SQL có thể đ°ợc sÿ dụng để cÃp phát và kiểm soát các thao tác của ng°ời sÿ dụng trên dā liáu, đÁm bÁo să an toàn cho c¢ sở dā liáu • ĐÁm bÁo toàn vẹn dā liáu: SQL đánh ngh*a các ràng buác toàn vẹn trong c¢ sở dā liáu nhờ đó đÁm bÁo tính hợp lá và chính xác của dā liáu tr°ớc các thao tác cập nhật cũng nh° các lßi của há thống. Nh° vậy, có thể nói rằng SQL là mát ngôn ngā hoàn thián đ°ợc sÿ dụng trong các há thống c¢ sở dā liáu và là mát thành phÅn không thể thi¿u trong các há quÁn trá c¢ sở dā liáu. Mặc dù SQL không phÁi là mát ngôn ngā lập trình nh° C, C++, Java song các câu lánh mà SQL cung cÃp có thể đ°ợc nhúng vào trong các ngôn ngā lập trình nhằm xây dăng các ứng dụng t°¢ng tác với c¢ sở dā liáu. 6 Khác với các ngôn ngā lập trình quen thuác nh° C, C++, Java.
SQL là ngôn ngā có tính khai báo. Với SQL, ng°ời dùng chß cÅn mô tÁ các yêu cÅu cÅn phÁi thăc hián trên c¢ sở dā liáu mà không cÅn phÁi chß ra cách thức thăc hián các yêu cÅu nh° th¿ nào. Chính vì vậy, SQL là ngôn ngā dß ti¿p cận và dß sÿ dụng.2 Vai trò của SQL Trong hÅu h¿t các há quÁn trá c¢ sở dā liáu quan há, SQL có nhāng vai trò nh° sau: • SQL là ngôn ngā hßi có tính t°¢ng tác: Ng°ời sÿ dụng có thể dß dàng thông qua các trình tián ích để gởi các yêu cÅu d°ới d¿ng các câu lánh SQL đ¿n c¢ sở dā liáu và nhận k¿t quÁ trÁ vÁ từ c¢ sở dā liáu • SQL là ngôn ngā lập trình c¢ så dā liáu: Các lập trình viên có thể nhúng các câu lánh SQL vào trong các ngôn ngā lập trình để xây dăng nên các ch°¢ng trình ứng dụng giao ti¿p với c¢ sở dā liáu • SQL là ngôn ngā quÁn trß c¢ så dā liáu: Thông qua SQL, ng°ời quÁn trá c¢ sở dā liáu có thể quÁn lý đ°ợc c¢ sở dā liáu, đánh ngh*a các cÃu trúc l°u trā dā liáu, điÁu khiển truy cập c¢ sở dā liáu. • SQL là ngôn ngā cho các há tháng khách/chủ (client/server): Trong các há thống c¢ sở dā liáu khách/chủ, SQL đ°ợc sÿ dụng nh° là công cụ để giao ti¿p giāa các trình ứng dụng phía máy khách với máy chủ c¢ sở dā liáu.
• SQL là ngôn ngā truy cập dā liáu trên Internet: Cho đ¿n nay, hÅu h¿t các máy chủ Web cũng nh° các máy chủ trên Internet sÿ dụng SQL với vai trò là ngôn ngā để t°¢ng tác với dā liáu trong các c¢ sở dā liáu. • SQL là ngôn ngā c¢ så dā liáu phân tán: Đối với các há quÁn trá c¢ sở dā liáu phân tán, mßi mát há thống sÿ dụng SQL để giao ti¿p với các há thống khác trên m¿ng, gởi và nhận các yêu cÅu truy xuÃt dā liáu với nhau. • SQL là ngôn ngā sÿ dāng cho các cßng giao ti¿p c¢ så dā liáu: Trong mát há thống m¿ng máy tính với nhiÁu há quÁn trá c¢ sở dā liáu khác nhau, SQL 7 th°ờng đ°ợc sÿ dụng nh° là mát chuẩn ngôn ngā để giao ti¿p giāa các há quÁn trá c¢ sở dā liáu.3 Tßng quan vÁ c¢ så dā liáu quan há 1.1 Mô hình dữ liệu quan hệ Mô hình dā liáu quan há đ°ợc Codd đÁ xuÃt năm 1970 và đ¿n nay trở thành mô hình đ°ợc sÿ dụng phá bi¿n trong các há quÁn trá c¢ sở dā liáu th°¢ng m¿i. Nói mát cách đ¢n giÁn, mát c¢ sở dā liáu quan há là mát c¢ sở dā liáu trong đó tÃt cÁ dā liáu đ°ợc tá chức trong các bÁng có mối quan há với nhau.
Mßi mát bÁng bao gßm các dòng và các cát: mßi mát dòng đ°ợc gọi là mát bÁn ghi (bá) và mßi mát cát là mát tr°ờng (thuác tính). - Ví dụ: BÁng CBQL - Ví dụ 2: BÁng GVCN - Ví dụ 3: BÁng CVHT 8 1.2 Bảng (Table) Trong c¢ sở dā liáu quan há, bÁng là đối t°ợng đ°ợc sÿ dụng để tá chức và l°u trā dā liáu. Mát c¢ sở dā liáu bao gßm nhiÁu bÁng và mßi bÁng đ°ợc xác đánh duy nhÃt bởi tên bÁng. Mát bÁng bao gßm mát tập các dòng và các cát: mßi mát dòng trong bÁng biểu dißn cho mát thăc thể (mßi mát dòng trong bÁng HOCVIEN t°¢ng ứng với mát Học viên); và mßi mát cát biểu dißn cho mát tính chÃt của thăc thể (chẳng h¿n cát NGAYSINH trong bÁng HOCVIEN biểu dißn cho ngày sinh của các học viên đ°ợc l°u trā trong bÁng).
Nh° vậy, liên quan đ¿n mßi mát bÁng bao gßm các y¿u tố sau: • Tên của bÁng: đ°ợc sÿ dụng để xác đánh duy nhÃt mßi bÁng trong c¢ sở dā liáu. • C¿u trúc của bÁng: Tập các cát trong bÁng. Mßi mát cát trong bÁng đ°ợc xác đánh bởi mát tên cột và phÁi có mát kiểu dā liáu nào đó (chẳng h¿n cát NGAYSINH trong bÁng HOCVIEN có kiểu là SMALLTIME). Kiểu dā liáu của mßi cát qui đánh giá trá dā liáu có thể đ°ợc chÃp nhận trên cát đó.
• Dā liáu của bÁng: Tập các dòng (bÁn ghi) hián có trong bÁng.3 Khoá của bảng Trong mát c¢ sở dā liáu đ°ợc thi¿t k¿ tốt, mßi mát bÁng phÁi có mát hoặc mát tập các cát mà giá trá dā liáu của nó xác đánh duy nhÃt mát dòng trong mát tập các dòng của bÁng. Tập mát hoặc nhiÁu cát có tính chÃt này đ°ợc gọi là khoá của bÁng. Viác chọn khoá của bÁng có vai trò quan trọng trong viác thi¿t k¿ và cài đặt các c¢ sở dā liáu quan há.