Chương 6 Ngôn ngữ SQL • Giới thiệu • Định nghĩa dữ liệu • Truy vấn dữ liệu • Cập nhật dữ liệu • Tính đầy đủ của SQL • Khung nhìn (view) Giới thiệu • Ngôn ngữĐại số quan hệ – Cách thức truy vấn dữ liệu – Khókhăn cho người sử dụng • SQL (Structured Query Language) – Ngôn ngữ cấp cao – Người sử dụng chỉ cần đưa ra nội dung cần truy vấn – Được phát triển bởi IBM (1970s) – Được gọi làSEQUEL – Được ANSI công nhận và phát triển thành chuẩn • SQL86 • SQL92 • SQL99 • SQL gồm – Định nghĩa dữ liệu (DDL) – Thao tác dữ liệu (DML) – Định nghĩa khung nhìn – Ràng buộc toàn vẹn – Phân quyền và bảo mật – Điều khiển giao tác • SQL sử dụng thuật ngữ – Bảng ~ quan hệ – Cột ~ thuộc tính – Dòng ~ bộ
Lý thuyết CSDL 1 GI GI Á Á O VIÊN: O VIÊN: B B Ộ Ộ MÔN: MÔN: C C Á Á C H C H Ệ Ệ TH TH Ố Ố NG THÔNG TIN NG THÔNG TIN KHOA: KHOA: CÔNG NGH CÔNG NGH Ệ Ệ THÔNG TIN THÔNG TIN CƠ SỞ DỮ LIỆU Lý thuyết CSDL 2 CHƯƠNG 6 Ngôn ng Ngôn ng ữ ữ SQL SQL Lý thuyết CSDL 3 Nội dung chi tiết • Giới thiệu • Định nghĩa dữ liệu • Truy vấn dữ liệu • Cập nhật dữ liệu • Tính đầy đủ của SQL • Khung nhìn (view) Lý thuyết CSDL 4 Giới thiệu • Ngôn ngữ Đại số quan hệ – Cách thức truy vấn dữ liệu – Khó khăn cho người sử dụng • SQL (Structured Query Language) – Ngôn ngữ cấp cao – Người sử dụng chỉ cần đưa ra nội dung cần truy vấn – Được phát triển bởi IBM (1970s) – Được gọi là SEQUEL – Được ANSI công nhận và phát triển thành chuẩn • SQL-86 • SQL-92 • SQL-99 Lý thuyết CSDL 5 Giới thiệu (tt) • SQL gồm – Định nghĩa dữ liệu (DDL) – Thao tác dữ liệu (DML) – Định nghĩa khung nhìn – Ràng buộc toàn vẹn – Phân quyền và bảo mật – Điều khiển giao tác • SQL sử dụng thuật ngữ – Bảng ~ quan hệ – Cột ~ thuộc tính – Dòng ~ bộ Lý thuyết : Chuẩn SQL-92 Ví dụ : SQL Server Lý thuyết CSDL 6 Nội dung chi tiết • Giới thiệu • Định nghĩa dữ liệu – Kiểu dữ liệu – Các lệnh định nghĩa dữ liệu • Truy vấn dữ liệu • Cập nhật dữ liệu • Tính đầy đủ của SQL • Khung nhìn (view) Lý thuyết CSDL 7 Định nghĩa dữ liệu • Là ngôn ngữ mô tả – Lược đồ cho mỗi quan hệ – Miền giá trị tương ứng của từng thuộc tính – Ràng buộc toàn vẹn – Chỉ mục trên mỗi quan hệ • Gồm – CREATE TABLE (tạo bảng) – DROP TABLE (xóa bảng) – ALTER TABLE (sửa bảng) – CREATE DOMAIN / CREATE TYPE (tạo miền giá trị) – CREATE DATABASE – … Lý thuyết CSDL 8 Kiểu dữ liệu • Số (numeric) – INTEGER – SMALLINT – NUMERIC – DECIMAL – REAL – DOUBLE PRECISION – FLOAT Lý thuyết CSDL 9 Kiểu dữ liệu (tt) • Chuỗi ký tự (character string) – CHARACTER, CHARACTER(n) • Chuỗi bit (bit string) – BIT, BIT(x) • Ngày giờ (datetime) – DATE gồm ngày, tháng và năm – TIME gồm giờ, phút và giây – TIMESTAMP gồm ngày và giờ Lý thuyết CSDL 10 Lệnh tạo bảng • Để định nghĩa một bảng – Tên bảng – Các thuộc tính • Tên thuộc tính • Kiểu dữ liệu • Các ràng buộc toàn vẹn trên thuộc tính (RBTV) • Cú pháp CREATE TABLE <Tên_bảng> ( <Tên_cột> <Kiểu_dữ_liệu> [<RBTV>], <Tên_cột> <Kiểu_dữ_liệu> [<RBTV>], … [<RBTV>] ) [...]... 09/15/1 962 Nam 38000 88 866 555 5 33344555 5 Nguyen 63 8 NVC Q5 Ba Ria VT 7 45345345 3 99988777 Tran Thanh Tam 07/31/1972 Nu 25000 Ngoc Hang 07/19/1 968 Nu 38000 5 33344555 5 98 765 432 5 Bui 543 MTL Q1 33 NTH Q1 7 98 765 432 1 98798798 Le Quynh Nhu 219 TD Q3 Nu 43000 Hong Quang Nam 25000 Pham Van Vinh 11/10/1945 980 LHP 450 Q5 HN TV 1 88 866 555 5 98 765 432 4 Tran 0 762 0/195 1 04/08/1 969 Nam 55000 1 NULL 1 7 88 866 555... 09/15/1 962 Nam 38000 88 866 555 5 33344555 NULL 5 Nguyen 63 8 NVC Q5 Ba Ria VT 7 45345345 3 99988777 Tran Thanh Tam 07/31/1972 Nu 25000 Ngoc Hang 07/19/1 968 Nu 38000 5 33344555 5 98 765 432 NULL 5 Bui 543 MTL Q1 33 NTH Q1 7 98 765 432 1 98798798 Le Quynh Nhu 219 TD Q3 Nu 43000 Hong Quang Nam 25000 Vinh 11/10/1945 980 LHP 450 Q5 HN TV 1 88 866 555 5 98 765 432 4 Tran 0 762 0/195 1 04/08/1 969 Nam 55000 1 NULL 1 7 88 866 555... INSERT INTO NHANVIEN(HODEM, TENNV, MANV) VALUES (‘Le Van’, ‘Tuyen’, 63 563 563 5’) INSERT INTO NHANVIEN(HONV, TENDEM, TENNV, MANV, DCHI) VALUES (‘Le’, ‘Van’, ‘Tuyen’, 63 563 563 5’, NULL) INSERT INTO NHANVIEN VALUES (‘Le’, ‘Van’, ‘Tuyen’, 63 563 563 5’, ’12/30/1952’, ’98 HV’, ‘Nam’, ‘37000’, 4) Lý thuyết CSDL 28 Lệnh INSERT (tt) • Nhận xét – Thứ tự các giá trị phải trùng với thứ tự các cột – Có thể thêm giá... pháp CREATE DOMAIN AS CREATE TYPE FROM • Ví dụ CREATE DOMAIN Kieu_Ten AS VARCHAR(30) CREATE TYPE Kieu_Ten FROM VARCHAR(30) not null Lý thuyết CSDL 24 Nội dung chi tiết • Giới thiệu • Định nghĩa dữ liệu • Cập nhật dữ liệu – Thêm (insert) – Xóa (delete) – Sửa (update) • Truy vấn dữ liệu • Tính đầy đủ của SQL • Khung nhìn (view) Lý thuyết CSDL 25... 04/08/1 969 Nam 55000 1 NULL 1 7 88 866 555 5 MA_NVIEN 33344555 5 88 866 555 10 10.0 20 20.0 5 98798798 7 98798798 Lý thuyết CSDL SODA 10 35.0 30 5.0 7 98 765 432 1 45345345 30 20.0 1 20.0 3 THOIGIAN 35 5 4 4 Lệnh DELETE (tt) TENPHG MAPHG MA_NVIEN Nghien cuu 5 333445555 NG_NHANCHU C 05/22/1988 Dieu hanh 4 987987987 01/01/1995 Quan ly 1 88 866 5555 06/ 19/1981 MANV HONV TENNV NGSINH DCHI PHAI LUONG MA_NQL PHG Nguyen... nhiều dòng vào bảng • Để thêm dữ liệu – Tên quan hệ – Danh sách các thuộc tính cần thêm dữ liệu – Danh sách các giá trị tương ứng Lý thuyết CSDL 26 Lệnh INSERT (tt) • Cú pháp (thêm 1 dòng) INSERT INTO () VALUES () Lý thuyết CSDL 27 Ví dụ INSERT INTO NHANVIEN(HODEM, TENNV, MANV) VALUES (‘Le Van’, ‘Tuyen’, 63 563 563 5’) INSERT INTO NHANVIEN(HONV,... trúc bảng – Tất cả dữ liệu của bảng cũng bị xóa • Cú pháp DROP TABLE • Ví dụ DROP TABLE NHANVIEN DROP TABLE PHONGBAN DROP TABLE PHANCONG Lý thuyết CSDL 22 Lệnh xóa bảng (tt) NHANVIEN HONV TENDEM TENNV MANV NS DCHI GT LUON G MA_NQL PHO NG PHONGBAN TENPHG MAPHO NG Lý thuyết CSDL TRPHO NG NG_NHANCHUC 23 Lệnh tạo miền giá trị • Tạo ra một kiểu dữ liệu mới kế thừa những kiểu dữ liệu có sẳn • Cú... Lệnh sửa bảng • Được dùng để – Thay đổi cấu trúc bảng – Thay đổi RBTV • Thêm cột ALTER TABLE ADD COLUMN [] • Xóa cột ALTER TABLE DROP COLUMN • Mở rộng cột ALTER TABLE ALTER COLUMN Lý thuyết CSDL 18 Lệnh sửa bảng (tt) • Thêm RBTV ALTER TABLE ADD CONSTRAINT , CONSTRAINT ...Ví dụ CSDL • Cho cơ sở dữ liệu CÔNGTY gồm các lược đồ: – NHANVIEN(MANV, HONV, TENNV, NS, GT, DCHI, LUONG, MA_NQL, PHONG) – PHONGBAN(MAPHONG, TENPHONG, TRPHONG, NG_NHANCHUC) – DEAN(MADA, TENDA, DD_DA, PHONG) – THANNHAN(MANV,... PRIMARY KEY, NS DATETIME, DCHI VARCHAR(50), GT CHAR(3) CONSTRAINT NV_GT_CHK CHECK (GT IN (‘Nam’, ‘Nu’)), LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (1000000), MA_NQL CHAR(9), PHONG INT ) Lý thuyết CSDL 16 Ví dụ - Đặt tên cho RBTV CREATE TABLE PHANCONG ( MA_NVIEN CHAR(9), SODA INT, THOIGIAN DECIMAL(3,1), CONSTRAINT PC_MANVIEN_SODA_PK PRIMARY KEY (MA_NVIEN, SODA), CONSTRAINT PC_MANVIEN_FK FOREIGN KEY (MA_NVIEN)