intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Cơ sở dữ liệu và quản trị cơ sở dữ liệu: Chương 4 - ThS. Nguyễn Vương Thịnh

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:48

20
lượt xem
6
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Cơ sở dữ liệu và quản trị cơ sở dữ liệu: Chương 4 Ngôn ngữ truy vấn có cấu trúc được biên soạn gồm các nội dung chính sau: Tổng quan về ngôn ngữ SQL; ngôn ngữ định nghĩa dữ liệu (DDL); ngôn ngữ thao tác dữ liệu (DML); các dạng thức của câu lệnh select; câu lệnh select và đại số quan hệ. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cơ sở dữ liệu và quản trị cơ sở dữ liệu: Chương 4 - ThS. Nguyễn Vương Thịnh

  1. TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN BÀI GIẢNG HỌC PHẦN CƠ SỞ DỮ LIỆU VÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU Chương 4 NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL – Structured Query Language) Giảng viên: ThS. Nguyễn Vương Thịnh bản ghi môn: Hệ thống thông tin Hải Phòng, 2016
  2. Thông tin về giảng viên Họ và tên Nguyễn Vương Thịnh Đơn vị công tác Bộ môn Hệ thống thông tin – Khoa Công nghệ thông tin Học vị Thạc sỹ Chuyên ngành Hệ thống thông tin Cơ sở đào tạo Trường Đại học Công nghệ - Đại học Quốc Gia Hà Nội Năm tốt nghiệp 2012 Điện thoại 0983283791 Email thinhnv@vimaru.edu.vn Website http://scholar.vimaru.edu.vn/thinhnv 2
  3. Thông tin về học phần Tên học phần Cơ sở dữ liệu và quản trị cơ sở dữ liệu Tên tiếng Anh Database and Database Management Mã học phần 17425 Số tín chỉ 04 tín chỉ (LT: 45 tiết, TH: 30 tiết) Bộ môn phụ trách Hệ thống thông tin PHƯƠNG PHÁP HỌC TẬP, NGHIÊN CỨU  Nghe giảng, thảo luận, trao đổi với giảng viên trên lớp.  Tự nghiên cứu tài liệu và làm bài tập ở nhà. PHƯƠNG PHÁP ĐÁNH GIÁ  SV phải tham dự ít nhất 75% thời gian.  Có 02 bài kiểm tra viết giữa học phần (X2 = (L1 + L2)/2), 01 bài kiểm tra thực hành (X3). Điểm quá trình X = (X2 + X3)/2.  Thi kết thúc học phần bằng hình thức trắc nghiệm khách quan 3 trên máy tính (Z = 0.5X + 0.5Y).
  4. Tài liệu tham khảo 1. Elmasri, Navathe, Somayajulu, Gupta, Fundamentals of Database Systems (the 4th Edition), Pearson Education Inc, 2004. 2. Nguyễn Tuệ, Giáo trình Nhập môn Hệ Cơ sở dữ liệu, Nhà xuất bản Giáo dục Việt Nam, 2007. 3. Nguyễn Kim Anh, Nguyên lý của các hệ Cơ sở dữ liệu, Nhà xuất bản Đại học Quốc gia Hà Nội, 2004. 4
  5. Tài liệu tham khảo 5
  6. NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC 4.1. TỔNG QUAN VỀ NGÔN NGỮ SQL 4.2. NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU (DDL) 4.3. NGÔN NGỮ THAO TÁC DỮ LIỆU (DML) 4.4. CÁC DẠNG THỨC CỦA CÂU LỆNH SELECT 4.5. CÂU LỆNH SELECT VÀ ĐẠI SỐ QUAN HỆ 6
  7.  Được phát triển bởi IBM vào những năm 70 với tên gọi ban đầu là Squel dựa trên mô hình dữ liệu quan hệ của F.Codd.  Viện Tiêu chuẩn quốc gia Hoa Kỳ (ANSI) và Tổ chức tiêu chuẩn quốc tế (ISO) đã công bố các phiên bản chuẩn của SQL: SQL_86, SQL_89, SQL_92, SQL:1999, SQL:2003, SQL:2006, SQL:2008, SQL:2011  Các phần mềm hệ quản trị cơ sở dữ liệu khác nhau sẽ hỗ trợ ngôn ngữ SQL ở các mức độ khác nhau (có thể bổ sung thêm hoặc không hỗ trợ một số câu lệnh hay cú pháp)
  8. NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU (DDL – Data Definition Language) (Định nghĩa (xác lập) hoặc thay đổi cấu trúc tập tin của CSDL, các bảng dữ liệu, các liên kết,...) NGÔN NGỮ THAO TÁC DỮ LIỆU (DML – Data Definition Language) (Cập nhật dữ liệu vào các bảng, truy vấn (đọc) dữ liệu từ các bảng,...)
  9. Khi làm việc với SQL và các hệ quản trị cơ sở dữ liệu thông thường:  Dữ liệu được tổ chức dưới dạng cơ sở dữ liệu (database). Đó là một tập hợp gồm các bảng dữ liệu có liên quan.  Mỗi bảng dữ liệu (data table) là tập hợp các hàng (bản ghi) và cột. Đó chính là một quan hệ (relation) trong mô hình quan hệ. Lưu ý: Một tập hợp các bản ghi là kết quả trả về của một câu lệnh truy vấn SELECT cũng được xem là một quan hệ.  Mỗi cột (column) của bảng là một thuộc tính (attribute) của quan hệ, mỗi bản ghi (record) của bảng là một bộ (tuple) của quan hệ.  Cấu trúc của bảng dữ liệu (danh sách các cột) được xác định (định nghĩa) bởi lược đồ quan hệ tương ứng. 9
  10. Lớp Học Viên Mã Lớp Mã HV Tên Lớp Tên HV Phòng Học Năm Sinh Điểm Thi Mã Lớp Mã Lớp Tên Lớp Phòng học L1 Word T001 P203 L2 Word T002 P204 Mã HV Tên HV Năm Sinh Điểm Thi Mã Lớp HV01 An 1984 5.5 L1 HV02 Bình 1989 7.0 L2 HV03 Cường 1985 6.5 L1 10
  11. STT Kiểu dữ liệu Ý nghĩa 1 char(n) Chuỗi ký tự ASCI độ dài n cố định 2 varchar(n) Chuỗi ký tự ASCI có độ dài biến đổi 3 nchar(n) Chuỗi ký tự Unicode độ dài n cố định 4 nvarchar(n) Chuỗi ký tự Unicode độ dài biến đổi 5 bit Chứa giá trị tương ứng với 01 trong 02 trạng thái 0 hoặc 1 6 tinyint Số nguyên (0 đến 255) 7 smallint Số nguyên (-215 đến 215 – 1) 8 int Số nguyên (-231 đến 231 – 1) 9 bigint Số nguyên (-263 đến 263 – 1) 10 money Tiền tệ (-922,337,203,685,477.5808 to 922,337,203,685,477.5807) 11 smallmoney Tiền tệ (- 214,748.3648 to 214,748.3647) Số thực phần thập phân cố định (p: tổng số chữ số, s: số chữ số phần thập phân) 12 decimal(p,s) Phạm vi biểu diễn: -1038 + 1 đến 1038 – 1. Số thực phần thập phân cố định (p: tổng số chữ số, s: số chữ số phần thập phân) 13 numeric(p,s) Phạm vi biểu diễn: -1038 + 1 đến 1038 – 1. 14 float Số thực dấu phẩy động (từ -1.79E+308 đến 1.79E+308) 15 real Số thực dấu phẩy động (từ -3.40E+38 đến 3.40E+38) 16 datetime Thời gian (gồm ngày/tháng và giờ/phút/giây) (từ 01/01/1753 đến 31/12/9999) 17 smalldatetime Thời gian (gồm ngày/tháng và giờ/phút/giây) (từ 01/01/1900 đến 06/06/2079) 18 date Thời gian (chỉ có ngày/tháng) (từ 01/01/0001 đến 31/12/9999) 19 time Thời gian (chỉ có giờ/phút/giây)
  12. A. Tạo cơ sở dữ liệu CREATE DATABASE Ví dụ 4.1: CREATE DATABASE dbQuanLyBanHang B. Xóa cơ sở dữ liệu DROP DATABASE Ví dụ 4.2: DROP DATABASE dbQuanLyBanHang Lưu ý: Các hệ quản trị CSDL khác nhau có thể đưa thêm vào một số tham số tùy biến khác.
  13. A. Tạo bảng dữ liệu CREATE TABLE ( [NOT NULL], [ [NOT NULL],] [ [NOT NULL],] ... [CONSTRAINT PRIMARY KEY (),] [CONSTRAINT FOREIGN KEY () REFERENCES (),] ... ) B. Xóa bỏ bảng dữ liệu 13 DROP TABLE
  14. C. Sửa đổi cấu trúc bảng dữ liệu  Thêm cột dữ liệu mới ALTER TABLE ADD [NOT NULL]  Xóa cột dữ liệu ALTER TABLE DROP COLUMN  Sửa kiểu dữ liệu của cột ALTER TABLE ALTER COLUMN [NOT NULL]  Thêm một ràng buộc đối với bảng ALTER TABLE ADD CONSTRAINT  Xóa một ràng buộc đối với bảng ALTER TABLE 14 DROP CONSTRAINT
  15. Ví dụ 4.3: Tạo các bảng dữ liệu sau đây: PhongBan(MaPB, TenPB, DiaDiem) NhanVien(MaNV, TenNV, ChuyenMon, Phong) CREATE TABLE PhongBan ( MaPB char(3) NOT NULL, TenPB nvarchar(30) NOT NULL, DiaDiem nvarchar(100), CONSTRAINT PK_PhongBan PRIMARY KEY(MaPB) ) CREATE TABLE NhanVien ( MaNV char(5) NOT NULL, TenNV nvarchar(30) NOT NULL, ChuyenMon nvarchar(100), Phong char(3) NOT NULL, CONSTRAINT PK_NhanVien PRIMARY KEY(MaNV), CONSTRAINT FK_NhanVien FOREIGN KEY (Phong) REFERENCES PhongBan(MaPB) 15 )
  16. Ví dụ 4.4:  Thêm cột NgaySinh vào bảng NhanVien ALTER TABLE NhanVien ADD NgaySinh Date NOT NULL  Đổi kiểu dữ liệu của cột ChuyenMon trong bảng NhanVien từ kiểu nvarchar có độ dài 100 sang kiểu nvarchar có độ dài 150 ALTER TABLE NhanVien ALTER COLUMN ChuyenMon nvarchar(150)  Xóa cột DiaDiem trong bảng PhongBan ALTER TABLE PhongBan DROP COLUMN DiaDiem  Xóa ràng buộc khóa ngoại FK_NhanVien trong bảng NhanVien ALTER TABLE NhanVien 16 DROP CONSTRAINT FK_NhanVien
  17. INSERT INTO [()] VALUES() Ví dụ 4.5: INSERT INTO PhongBan VALUES('PTV', N'Phòng Tài vụ', N'P203 - C3') Ví dụ 4.6: INSERT INTO PhongBan(TenPB, MaPB) VALUES(N'Phòng Tài vụ', 'PTV') UPDATE SET = , = , ... [WHERE ] Ví dụ 4.7: UPDATE PhongBan SET TenPB = N'Phòng Kế hoạch – Tài chính', DiaDiem = N'P302 - Nhà A6' WHERE MaPB = 'PTV'
  18. DELETE FROM [WHERE ] Ví dụ 4.8: DELETE FROM NhanVien WHERE ChuyenMon = N'Kỹ sư tin học' SELECT [DISTINCT] [TOP N] *| FROM [WHERE ] [GROUP BY [HAVING ]] [ORDER BY [ASC|DESC]]  Mệnh đề FROM  Chỉ ra các bảng dữ liệu – nơi nguồn dữ liệu được lấy về. Các bảng có thể được kết nối (join) với nhau theo 1 cách thức nào đấy. 18
  19.  Mệnh đề WHERE  Giới hạn các bản ghi được trả về trong tập kết quả. Chỉ các bản ghi thỏa mãn được chỉ ra sau WHERE mới được trả về.  Mệnh đề GROUP BY Chia tập bản ghi lấy về thành các nhóm sao cho:  Các bản ghi mà có giá trị giống nhau trên các cột trong (chỉ ra sau GROUP BY) sẽ được xếp vào cùng nhóm.  Các hàm thống kê (COUNT, SUM, MAX, MIN, AVG) có thể được áp dụng để tính toán trên từng nhóm.  Mỗi bản ghi trong tập kết quả chứa giá trị đại diện cho một nhóm.  Mệnh đề HAVING  Đi kèm với GROUP BY để lọc ra các nhóm thỏa mãn cho trước. 19
  20.  Mệnh đề ORDER BY [ASC|DESC]  Sắp xếp các bản ghi kết quả theo trật tự tăng dần (ASC) hay giảm dần (DESC) của giá trị trên các cột được chỉ ra trong .  Mệnh đề SELECT *|  Giới hạn các cột được phép hiển thị trong tập kết quả. Dùng ký hiệu dấu * sau SELECT nếu muốn hiển thị tất cả các cột của tập kết quả.  Từ khóa DISTINCT được sử dụng kèm khi muốn loại bỏ những bản ghi trùng lắp trong tập kết quả.  Từ khóa TOP được sử dụng khi chỉ muốn lấy về N bản ghi đầu tiên trong tập kết quả.  Có thể dung từ khóa AS để tạo tên khác (bí danh - alias) cho cột với cú pháp AS . 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
6=>0