Bà XÂY DĂNG TR¯àNG CAO ĐÀNG XÂY DĂNG Sà 1 GIÁO TRÌNH MÔN HàC: C¡ Sâ DĀ LIàU NGÀNH: CÔNG NGHà THÔNG TIN TRÌNH Đà: TRUNG CÀP Ban hành kèm theo Quyết định số: 368ĐT/QĐ-CĐXD1 ngày 10 tháng 8 năm 2021 của Hißu trưáng Trưßng Cao đẳng Xây dựng số Hà Nội, năm TUYÊN Bà BÀN QUYÀN Tài liáu này thuác loại sách giáo trình nên các ngußn thông tin có thể đ°ợc phép dùng nguyên b¿n hoặc trích dùng cho các mục đích vÁ đào tạo và tham kh¿o. Mọi mục đích khác mang tính lách lạc hoặc sÿ dụng với mục đích kinh doanh thi¿u lành mạnh sẽ bá nghiêm cÁm. LàI NÓI ĐÀU Giáo trình Cơ sở dữ liệu được biên soạn nhằm phục vụ cho giảng dạy và học tập cho trình độ Trung cấp ngành công nghß thông tin á trưßng Cao đẳng Xây dựng số 1. C¡ Sà Dþ LIÞU là môn học c¢ sá ngành nhằm cung cấp các kiến thức về nhÿng kiến thức c¢ bản về c¢ sá dÿ lißu, tạo và quản lý c¢ sá dÿ lißu trên phần mềm SQL Giáo trình C¡ Sà Dþ LIÞU do bộ môn Tin c¢ sá gồm: Ths.
Lê Thị Lư¢ng làm chủ biên và các cô Trần Thị M¢ đã và đang giảng dạy trực tiếp trong bộ môn cùng tham gia biên soạn. Giáo trình này được viết theo đề cư¢ng môn học C¢ sá dÿ lißu. Ngoài ra giáo trình còn bổ sung thêm một số kiến thức mà trong các giáo trình trước chưa đề cập tới. Nội dung gồm 03 chư¢ng 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 Tin học c¢ sá 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 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 .2 Tạo b¿ng 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. 29 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. 41 CH¯¡NG TRÌNH MÔN HàC Tên môn hác: C¡ Sâ DĀ LIàU Mã môn hác: MH09 Thái gian thăc hián môn hác: 30 giờ; (Lý thuy¿t: 28 giờ; Thăc hành, th¿o luận, bài tập: 0 giờ; Kiểm tra: 2 giờ) I.
Vß trí, tính ch¿t của môn hác: 1. Vá trí: Môn C¢ sở dā liáu là môn học bắt buác thuác nhóm các mô đun/ môn học đào tạo ngành Công nghá thông tin há trung cÁp. Tính chÁt: Môn C¢ sở dā liáu là mát trong nhāng nái dung đ°ợc sÿ dụng ráng rãi trong các l*nh văc của đời sống xã hái, góp phần nâng cao chÁt l°ợng đào tạo nghÁ và phát triển ngußn nhân lăc trong thời đại công nghá thông tin. Māc tiêu của môn hác: - VÁ ki¿n thức: Ng°ời học có đ°ợc các ki¿n thức c¢ b¿n vÁ há c¢ sở dā liáu; thi¿t lập CSDL và các câu lánh truy vÁn trên SQL server.
- VÁ kỹ năng: Tạo há c¢ sở dā liáu, thi¿t lập đ°ợc mối quan há giāa các b¿ng trong c¢ sở dā liáu, truy vÁn đ°ợc c¢ sở dā liáu. - 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, có kh¿ năng làm viác đác lập và bi¿t k¿t hợp nhóm. 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. 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. 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 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 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.