1. Trang chủ
  2. » Công Nghệ Thông Tin

giáo trình cơ sở dữ liệu ngành công nghệ thông tin trung cấp

49 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Cơ sở dữ liệu
Tác giả Lờ Thị LưÂng, Trần Thị MÂ
Trường học Trưòng Cao đẳng Xõy dựng số 1
Chuyên ngành Cụng nghò thụng tin
Thể loại Giỏo trỡnh
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 49
Dung lượng 660,49 KB

Nội dung

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

Trang 1

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

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

Trang 3

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

Trang 4

MĀC LĀC

CH¯¡NG 1: TàNG QUAN VÀ SQL 5

1.1 SQL là ngôn ngā c¢ sở dā liáu quan há 6

1.2 Vai trò của SQL 7

1.3 Táng quan vÁ c¢ sở dā liáu quan há 7

1.3.1 Mô hình dā liáu quan há 7

CH¯¡NG 3: NGÔN NGĀ THAO TÁC DĀ LIàU 33

3.1 Truy xuÁt dā liáu với câu lánh SELECT 33

3.1.1 Mánh đÁ FROM 34

3.1.2 Danh sách chọn trong câu lánh SELECT 35

3.1.3 Chß đánh điÁu kián truy vÁn dā liáu 37

3.1.4 Tạo mới b¿ng dā liáu từ k¿t qu¿ của câu lánh SELECT 41

3.1.5 Sắp x¿p k¿t qu¿ truy vÁn 41

Trang 5

CH¯¡NG TRÌNH MÔN HàCTê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

II 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

Trang 7

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

Trang 8

1.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

1.3 Tßng quan vÁ c¢ sã dā liáu quan há

1.3.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ā

Trang 9

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)

Trang 10

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

1.3.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á Các dòng dā liáu trong mát b¿ng ph¿i có giá trá khác nhau trên khoá B¿ng MONHOC trong hình d°ới đây có khoá là cát MAMH

Mát b¿ng có thể có nhiÁu tập các cát khác nhau có tính chÁt của khoá (tức là giá trá của nó xác đánh duy nhÁt mát dòng dā liáu trong b¿ng) Trong tr°ờng hợp này, khoá đ°ợc chọn cho b¿ng đ°ợc gọi là khoá chính (primary key) và nhāng khoá còn lại đ°ợc gọi là khoá phụ hay là khoá dự tuyển

(candidate key/unique key)

1.3.4 Mối quan hệ và khoá ngoại

Các b¿ng trong mát c¢ sở dā liáu không tßn tại đác lập mà có mối quan há mật thi¿t với nhau

vÁ mặt dā liáu Mối quan há này đ°ợc thể hián thông qua ràng buác giá trị dÿ lißu xuất hißn á bảng

này phải có xuất hißn trước trong một bảng khác Mối quan há giāa các b¿ng trong c¢ sở dā liáu

nhằm đàm b¿o đ°ợc tính đúng đắn và hợp lá của dā liáu trong c¢ sở dā liáu

Trang 11

Hai b¿ng GIANGDAY và LOP có mối quan há với nhau Mối quan há này đòi hỏi giá trá cát MALOP của mát dòng (tức là mát lớp) trong b¿ng GIANGDAY ph¿i đ°ợc xác đánh từ cát MALOP của b¿ng LOP

Mối quan há giāa các b¿ng trong mát c¢ sở dā liáu thể hián đúng mối quan há giāa các thăc thể trong th¿ giới thăc Mối quan há giāa hai b¿ng GIANGDAY và LOP không cho phép mát MALOP nào đó tßn tại mà lại thuác vào mát MONHOC không có thật

Khái niám khoá ngoại (Foreign Key) trong c¢ sở dā liáu quan há đ°ợc sÿ dụng để biểu dißn

mối quan há giāa các b¿ng dā liáu Mát hay mát tập các cát trong mát b¿ng mà giá trá của nó đ°ợc xác đánh từ khóa chính của mát b¿ng khác đ°ợc gọi là khoá ngoại Cát MALOP của b¿ng

GIANGDAY đ°ợc gọi là khoá ngại của b¿ng GIANGDAY, khoá ngoài này tham chi¿u đ¿n khoá chính của b¿ng LOP là cát MALOP

1.4 S¢ l°ÿc vÁ SQL

1.4.1 Câu lệnh SQL

SQL chuẩn nhiÁu câu lánh th°ờng đ°ợc sÿ dụng để truy vÁn và qu¿n lý há c¢ sở dā liáu Trong các há qu¿n trá c¢ sở dā liáu khác nhau, mặc dù các câu lánh đÁu có cùng dạng và cùng mục đích sÿ dụng song mßi mát há qu¿n trá c¢ sở dā liáu có thể có mát số thay đái nào đó ĐiÁu này đôi khi dẫn đ¿n cú pháp chi ti¿t của các câu lánh có thể sẽ khác nhau trong các há qu¿n trá c¢ c¢ sở dā liáu khác nhau

Trang 12

Câu lánh

Thao tác dữ liệu

SELECT INSERT UPDATE DELETE TRUNCATE

Định nghĩa dữ liệu

CREATE TABLE DROP TABLE ALTER TABLE CREATE VIEW ALTER VIEW DROP VIEW CREATE INDEX DROP INDEX CREATE SCHEMA DROP SCHEMA CREATE

PROCEDURE ALTER PROCEDURE

Chức năng

Truy xuÁt dā liáu Bá sung dā liáu Cập nhật dā liáu Xoá dā liáu Xoá toàn bá dā liáu trong b¿ng Tạo b¿ng

Xoa b¿ng Sÿa đái b¿ng Tạo khung nhìn Sÿa đái khung nhìn Xoá khung nhìn Tạo chß mục Xoá chß mục Tạo l°ợc đß c¢ sở dā liáu Xoá l°ợc đß c¢ sở dā liáu Tạo thủ tục l°u trā

Sÿa đái thủ tục l°° trā

DROP PROCEDURE Xoá thủ tục l°u trā CREATE FUNCTION Tạo hàm (do ng°ời sÿ dụng đánh ngh*a) Các câu lánh của SQL đÁu đ°ợc bắt đầu bởi các từ lánh, là mát từ khoá cho bi¿t chức năng của câu lánh (chẳng hạn SELECT, DELETE, UPDATE) Sau từ lánh là các mánh đÁ của câu lánh Mßi mát mánh đÁ trong câu lánh cũng đ°ợc bắt đầu bởi mát từ khoá (chẳng hạn FROM,

WHERE, )

Ví dā : Câu lánh:

SELECT mahv, hoten, ngaysinh, gioitinh,lop FROM hocvien

Trang 13

WHERE malop=902ct19 dùng để truy xuÁt dā liáu trong b¿ng HOCVIEN đ°ợc bắt đầu bởi từ lánh SELECT, trong câu lánh bao gßm hai mánh đÁ: mánh đÁ FROM chß đánh tên của b¿ng cần truy xuÁt dā liáu và mánh đÁ WHERE chß đánh điÁu kián truy vÁn dā liáu

1.4.2 Qui tắc sử dụng tên trong SQL

Các đối t°ợng trong c¢ sở dā liáu dăa trên SQL đ°ợc xác đánh thông qua tên của đối t°ợng Tên của các đối t°ợng là duy nhÁt trong mßi c¢ sở dā liáu Tên đ°ợc sÿ dụng nhiÁu nhÁt trong các truy vÁn SQL và đ°ợc xem là nÁn t¿ng trong c¢ sở dā liáu quan há là tên b¿ng và tên cát

Trong các c¢ sở dā liáu lớn với nhiÁu ng°ời sÿ dụng, khi chß đánh tên của mát b¿ng nào đó trong câu lánh SQL, há qu¿n trá c¢ sở dā liáu hiểu đó là tên của b¿ng sở hāu (tức là b¿ng do ng°ời dùng tạo ra) Thông th°ờng, trong các há qu¿n trá c¢ sở dā liáu này cho phép nhāng ng°ời dùng khác nhau tạo ra nhāng b¿ng trùng tên với nhau mà không gây ra xung đát vÁ tên N¿u trong mát câu lánh SQL ta cần chß đ¿n mát b¿ng do mát ng°ời dùng khác sở hāu (hiển nhiên là ph¿i đ°ợc phép) thì tên của b¿ng ph¿i đ°ợc vi¿t sau tên của ng°ời sở hāu và phân cách với tên ng°ời sở hāu bởi dÁu chÁm: tên_ng°ời_sở_hāu.tên_b¿ng

Mát số đối t°ợng c¢ sở dā liáu khác (nh° khung nhìn, thủ tục, hàm), viác sÿ dụng tên cũng t°¢ng tă nh° đối với b¿ng

Sÿ dụng tên cát mát cách bình th°ờng trong các câu lánh SQL bằng c¿ch chß cần chß đánh tên của cát trong b¿ng Tuy nhiên, n¿u trong câu lánh có liên quan đ¿n hai cát trở lên có cùng tên trong các b¿ng khác nhau thì bắt buác ph¿i chß đánh thêm tên b¿ng tr°ớc tên cát; tên b¿ng và tên cát đ°ợc phân cách nhau bởi dÁu chÁm

Ví dā: Ví dụ d°ới đây minh hoạ cho viác sÿ dụng tên b¿ng và tên cát trong câu lánh SQL

SELECT mahv, hoten, ngaysinh, gioitinh,magv FROM hocvien

WHERE giangday.malop = lop.malop

1.4.3 Kiểu dữ liệu

Chuẩn ANSI/ISO SQL cung cÁp các kiểu dā liáu khác nhau để sÿ dụng trong các c¢ sở dā liáu dăa trên SQL và trong ngôn ngā SQL Dăa trên c¢ sở các kiểu dā liáu do chuẩn ANSI/ISO SQL

Trang 14

cung cÁp, các há qu¿n trá c¢ sở dā liáu th°¢ng mại hián nay có thể sÿ dụng các dạng dā liáu khác nhau trong s¿n phẩm của mình D°ới đây liát kê mát số kiểu dā liáu thông dụng đ°ợc sÿ dụng trong SQL

CHAR (n) Kiểu chußi với đá dài cố đánh

NCHAR (n) Ki¿u chußi với đá dài cố đánh hß trợ UNICODE

VARCHAR (n) Kiểu chußi với đá dài chính xác

NVARCHAR (n) Kiểu chußi với đá dài chính xác hß trợ UNICODE INTEGER Số nguyên có giá trá từ -231 đ¿n 231 - 1

TINYTINT Số nguyên có giá trá từ 0 đ¿n 255 SMALLINT Số nguyên có giá trá từ -215 đ¿n 215 – 1 BIGINT Số nguyên có giá trá từ -263 đ¿n 263-1

NUMERIC (p,s) Kiểu số với đá chính xác cố đánh

DECIMAL (p,s) T°¢ng tă kiểu Numeric FLOAT Số thăc có giá trá từ -1.79E+308 đ¿n 1.79E+308 REAL Số thăc có giá trá từ -3.40E + 38 đ¿n 3.40E + 38

BIT Kiểu bit (có giá trá 0 hoặc 1) DATETIME Kiểu ngày giờ (chính xác đ¿n phần trăm của giây) SMALLDATETIME Kiểu ngày giờ (chính xác đ¿n phút)

BINARY Dā liáu nhá phân với đá dài cố đánh (tối đa 8000 bytes) VARBINARY Dā liáu nhá phân với đá dài chính xác (tối đa 8000 bytes) IMAGE

Dā liáu nhá phân với đá dài chính xác (tối đa 2,147,483,647 bytes) TEXT

Dā liáu ki¿u chußi với đá dài lớn (tối đa 2,147,483,647 ký tă)

Trang 15

NTEXT Dā liáu ki¿u chußi với đá dài lớn và hß trợ UNICODE (tối đa

1,073,741,823 ký tă)

Ví dā: Câu lánh d°ới đây đánh ngh*a b¿ng với kiểu dā liáu đ°ợc qui đánh cho các cát trong b¿ng

CREATE TABLE GIAOVIEN

( MAGV char(6), HOTEN varchar(50), GIOITINH varchar(3), NLV smalldatetime )

1.4.4 Giá trị NULL

Mát c¢ sở dā liáu là să ph¿n ánh của mát há thống trong th¿ giới thăc, do đó các giá trá dā liáu tßn tại trong c¢ sở dā liáu có thể không xác đánh đ°ợc Mát giá trá không xác đánh đ°ợc xuÁt hián trong c¢ sở dā liáu có thể do mát số nguyên nhân sau:

• Giá trá đó có tßn tại nh°ng không bi¿t • Không xác đánh đ°ợc giá trá đó có tßn tại hay không • Tại mát thời điểm nào đó giá trá ch°a có nh°ng rßi có thể sẽ có • Giá trá bá lßi do tính toán (tràn số, chia cho không, )

Nhāng giá trá không xác đánh đ°ợc biểu dißn trong c¢ sở dā liáu quan há bởi các giá trá NULL Đây là giá trá đặc biát và không nên nhầm lẫn với chußi rßng (đối với dā liáu kiểu chußi) hay giá trá không (đối với giá trá kiểu số) Giá trá NULL đóng mát vai trò quan trọng trong các c¢ sở dā liáu và hầu h¿t các há qu¿n trá c¢ sở dā liáu quan há hián nay đÁu hß trợ viác sÿ dụng giá trá này

Trang 16

Há tháng ki¿n thức Ch°¢ng 1 1 Yêu cÁu vÁ lý thuy¿t

 Trình bày đ°ợc các khái niám trong c¢ sở dā liáu;  Trình bày đ°ợc vai trò của SQL;

 Trình bày đ°ợc táng quan vÁ c¢ sở dā liáu quan há;

 Trình bày đ°ợc các s¢ l°ợc vÁ SQL 2 Yêu cÁu vÁ bài tập: Xác đánh đ°ợc các khóa 3 Há tháng các công thức đã hác:

 Táng quan vÁ SQL SQL là 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, 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

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

Trang 17

• 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

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

 S¢ l°ợc vÁ SQL - 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

- Khóa: 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

4 Các bài tập ch°¢ng 1

Cho C¢ sở dā liáu qu¿n lý gi¿ng dạy gßm có các quan há sau

HOCVIEN (MAHV, HO, TEN, NGAYSINH, GIOITINH, NOISINH, MALOP)

Tân từ: mßi học viên phân biát với nhau bằng mã học viên, l°u trā họ, tên, ngày sinh, giới tính, n¢i

sinh, thuác lớp nào

Trang 18

LOP (MALOP, TENLOP, LOPTRG, SISO, MAGVCN, MACVHT, MACBQL)

Tân từ: mßi lớp gßm có mã lớp, tên lớp, lớp tr°ởng của lớp, sß số lớp , mã giáo viên chủ nhiám, mã cố

vÁn học tập, mã cán bá qu¿n lý

MONHOC (MAMH, TENMH, SOTC)

Tân từ: mßi môn học cần l°u trā tên môn học, tên số tín chß

GIAOVIEN (MAGV, HOTEN, GIOITINH, NLV)

Tân từ: mã giáo viên để phân biát giāa các giáo viên, cần l°u trā họ tên, giới tính, năm làm viác

GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM)

Tân từ: mßi học kỳ của năm học sẽ phân công gi¿ng dạy: lớp nào học môn gì do giáo viên nào phụ

trách

Yêu cầu:

1 Xác đánh các khóa chính của từng b¿ng 2 Xác đánh các mối quan há giāa các b¿ng

Trang 19

CH¯¡NG 2: NGÔN NGĀ ĐÞNH NGH)A DĀ LIàU

Māc tiêu bài hác

 Trình bày đ°ợc cách tạo, xóa b¿ng dā liáu;  Trình bày đ°ợc cách xóa b¿ng dā liáu;  Trình bày đ°ợc cập nhật c¢ sở dā liáu;

Trang 20

CH¯¡NG 2: NGÔN NGĀ ĐÞNH NGH)A DĀ LIàU

Các câu lánh SQL đã đÁ cập đ¿n trong ch°¢ng 1 đ°ợc sÿ dụng nhằm thăc hián các thao tác bá sung, cập nhật, loại bỏ và xem dā liáu Nhóm các câu lánh này đ°ợc gọi là ngôn ngā thao tác dā liáu (DML) Trong chu¢ng này tìm hiểu nhóm các câu lánh đ°ợc sÿ dụng để đánh ngh*a và qu¿n lý các đối t°ợng CSDL nh° b¿ng, khung nhìn, chß mục, và đ°ợc gọi là ngôn ngā đánh ngh*a dā liáu (DLL)

VÁ c¢ b¿n, ngôn ngā đánh ngh*a dā liáu bao gßm các lánh: • CREATE: đánh ngh*a và tạo mới đối t°ợng CSDL • ALTER: thay đái đánh ngh*a của đối t°ợng CSDL • DROP: Xoá đối t°ợng CSDL đã có

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) 2.1 T¿o c¢ sã dā liáu

- B°ớc 1: Vào SQL Server management studio >> nhập tên server >> connect - B°ớc 2: Click chuát ph¿i vào Databases >> New Database

- B°ớc 3: Tại mục Database name nhập tên c¢ sở dā liáu >> chọn OK

Trang 21

2.2 T¿o bÁng dā liáu

B¿ng dā liáu là cÁu trúc có vai trò quan trọng nhÁt trong c¢ sở dā liáu quan há Toàn bá dā liáu của c¢ sở dā liáu đ°ợc tá chức trong các b¿ng, nhāng b¿ng này có thể là nhāng b¿ng há thống đ°ợc tạo ra khi tạo lập c¢ sở dā liáu, và cũng có thể là nhāng b¿ng do ng°ời sÿ dụng đánh ngh*a

Trong các b¿ng, dā liáu đ°ợc tá chức d°ới dạng các dòng và cát Mßi mát dòng là mát b¿n ghi duy nhÁt trong b¿ng và mßi mát cát là mát tr°ờng Các b¿ng trong c¢ sở dā liáu đ°ợc sÿ dụng để biểu dißn thông tin, l°u giā dā liáu vÁ các đối t°ợng trong th¿ giới thăc và/hoặc mối quan há giāa các đối t°ợng

 Cách 1: Tạo b¿ng bằng giao dián management studio - B°ớc1: Mở c¢ sở dā liáu trong SQL

- B°ớc 2: Mở th° mục Table >> chuát ph¿i vào Table >> New table >> Nhập thông tin các tr°ờng của b¿ng nh° sau:

- B3: L°u thông tin của b¿ng >> SQL yêu cầu nhập tên b¿ng >> gõ tên b¿ng

Ví dụ: Tạo b¿ng HOCVIEN - B°ớc1: Mở c¢ sở dā liáu CTC1 - B°ớc 2: Mở th° mục Table >> chuát ph¿i vào Table >> New table >> Nhập thông tin các tr°ờng

của b¿ng nh° sau:

- B3: L°u thông tin của b¿ng >> SQL yêu cầu nhập tên b¿ng >> gõ tên b¿ng là HOCVIEN  Cách 2: Sÿ dụng câu lánh CREATE TABLE

Trang 22

Câu lánh CREATE TABLE đ°ợc sÿ dụng để đánh ngh*a mát b¿ng dā liáu mới trong c¢ sở dā liáu Khi đánh ngh*a mát b¿ng dā liáu mới, ta cần ph¿i xác đánh đ°ợc các yêu cầu sau đây:

- B¿ng mới đ°ợc tạo ra sÿ dụng với mục đích gì và có vai trò nh° th¿ nào trong c¢ sở dā liáu - CÁu trúc của b¿ng bao gßm nhāng tr°ờng (cát) nào, mßi mát tr°ờng có ý ngh*a nh° th¿ nào trong

viác biểu dißn dā liáu, kiểu dā liáu của mßi tr°ờng là gì và tr°ờng đó có cho phép nhận giá trá NULL hay không

- Nhāng tr°ờng nào sẽ tham gia vào khóa chính của b¿ng B¿ng có quan há với nhāng b¿ng khác hay không và n¿u có thì quan há nh° th¿ nào

- Trên các tr°ờng của b¿ng có tßn tại nhāng ràng buác vÁ khuôn dạng, điÁu kián hợp lá của dā liáu hay không; n¿u có thì sÿ dụng ở đâu và nh° th¿ nào

 Sÿ dụng câu lánh CREATE TABLE có cú pháp nh° sau:

CREATE TABLE tên_bảng

( tên_cột thuộc_tính_cột các_ràng_buộc

[, ,tên_cột_n thuộc_tính_cột_n các_ràng_buộc_cột_n]

[,các_ràng_buộc_trên_bảng]

) Trong đó: tên_b¿ng Tên của b¿ng cần tạo Tên ph¿i tuân theo qui tắc đánh danh và

không đ°ợc v°ợt quá 128 ký tă tên_cát Là tên của cát (tr°ờng) cần đánh ngh*a, tên cát ph¿i tuân theo qui

tắc đánh danh và không đ°ợc trùng nhau trong mßi mát b¿ng Mßi mát b¿ng ph¿i có ít nhÁt mát cát N¿u b¿ng có nhiÁu cát thì đánh ngh*a của các cát (tên cát, thuác tính và các ràng buác) ph¿i phân cách nhau bởi dÁu phẩy

thuác_tính_cát Mßi mát cát trong mát b¿ng ngoài tên cát còn có các thuác tính

bao gßm: • Kiểu dā liáu của cát Đây là thuác tính bắt buác ph¿i có đối với mßi cát

Trang 23

• Giá trá mặc đánh của cát: là giá trá đ°ợc tă đáng gán cho cát n¿u nh° ng°ời sÿ dụng không nhập dā liáu cho cát mát cách t°ờng minh Mßi mát cát chß có thể có nhiÁu nhÁt mát giá trá mặc đánh

• Cát có tính chÁt IDENTITY hay không? tức là giá trá của cát có đ°ợc tă đáng tăng mßi khi có b¿n ghi mới đ°ợc bá sung hay không Tính chÁt này chß có thể sÿ dụng đối với các tr°ờng kiểu số

• Cát có chÁp nhận giá trá NULL hay không  Ví dụ: CREATE TABLE GIAOVIEN

( MAGV char(6), HOTEN varchar(50), GIOITINH varchar(3), NLV smalldatetime )

2.2.1 Ràng buộc CHECK

Ràng buác CHECK đ°ợc sÿ dụng nhằm chß đánh điÁu kián hợp lá đối với dā liáu Mßi khi có să thay đái dā liáu trên b¿ng (INSERT, UPDATE), nhāng ràng buác này sẽ đ°ợc sÿ dụng nhằm kiểm tra xem dā liáu mới có hợp lá hay không

Ràng buác CHECK đ°ợc khai báo theo cú pháp nh° sau: [CONSTRAINT tên_ràng_buộc]

CHECK (điều_kißn)

Trong đó, điÁu_kián là mát biểu thức logic tác đáng lên cát nhằm qui đánh giá trá hoặc khuôn dạng dā liáu đ°ợc cho phép Trên mßi mát b¿ng cũng nh° trên mßi mát cát có thể có nhiÁu ràng buác CHECK

2.1.2 Ràng buộc PRIMARY KEY

Ràng buác PRIMARY KEY đ°ợc sÿ dụng để đánh ngh*a khoá chính của b¿ng Khoá chính của mát b¿ng là mát hoặc mát tập nhiÁu cát mà giá trá của chúng là duy nhÁt trong b¿ng Hay nói cách khác, giá trá của khoá chính sẽ giúp cho ta xác đánh đ°ợc duy nhÁt mát dòng (b¿n ghi) trong b¿ng dā liáu Mßi mát b¿ng chß có thể có duy nhÁt mát khoá chính và b¿n thân khoá chính không chÁp nhận giá trá

Trang 24

NULL Ràng buác PRIMARY KEY là c¢ sở cho viác đ¿m b¿o tính toàn vẹn thăc thể cũng nh° toàn vẹn tham chi¿u

 Cách tạo khoá Primary Key - B°ớc 1: Mở b¿ng cần xác đánh khoá - B°ớc 2: Chọn tr°ờng cần xác đánh làm khóa >> chuát ph¿i >> chọn Set primary key để làm khóa

Ràng buác UNIQUE đ°ợc sÿ dụng trong câu lánh CREATE TABLE để đánh ngh*a khoá phụ cho b¿ng và đ°ợc khai báo

2.1.4 Ràng buộc FOREIGN KEY

Các b¿ng trong mát c¢ sở dā liáu có mối quan há với nhau Nhāng mối quan há này biểu dißn cho să quan há giāa các đối t°ợng trong th¿ giới thăc VÁ mặt dā liáu, nhāng mối quan há đ°ợc đ¿m b¿o thông qua viác đòi hỏi să có mặt của mát giá trá dā liáu trong b¿ng này ph¿i phụ thuác vào să tßn tại của giá trá dā liáu đó ở trong mát b¿ng khác

Ràng buác FOREIGN KEY đ°ợc sÿ dụng trong đánh ngh*a b¿ng dā liáu nhằm tạo nên mối quan há giāa các b¿ng trong mát c¢ sở dā liáu Mát hay mát tập các cát trong mát b¿ng đ°ợc gọi là

Ngày đăng: 14/09/2024, 21:31

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN