Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 64 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
64
Dung lượng
2,5 MB
Nội dung
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com P H ẦN CƠ SỞ DỮ L IỆ U II NGÔN NGỮ SQL ♦♦♦♦♦♦♦♦♦♦ ◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊ o Giới thiệu o Ngôn ngữ định nghĩa liệu o Ngôn ngữ quản trị liệu o Ngôn ngữ điểu khiển liệu o Ngôn ngữ truy vấn liệu o Bài tập tổng hợp GV Phạm Thị Hoàng Nhung Bộ môn Công nghệ phần mềm Đại học Thủy lợi Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com MỤC LỤC Chương GIỚI THIỆU 1.1 Lịch sử phát triển 1.2 Chuẩn SQL 1.3 Đặc điểm SQL 1.4 Các loại lệnh SQL Chương CÁC LỆNH ĐỊNH NGHĨA DỮ LIỆU (DDL) 2.1 Tạo sở liệu 2.2 Tạo bảng 2.2.1 Cú pháp 2.2.2 Tên bảng 2.2.3 Xác định thuộc tính 2.3 Các loại liệu 2.3.1 Các loại liệu sử dụng MS Access 2.3.2 Các loại liệu sử dụng Oracle: 2.3.3 Các loại liệu sử dụng SQL SERVER 12 2.4 Các loại ràng buộc bảng liệu 12 2.4.1 NOT NULL- Không rỗng 12 2.4.2 UNIQUE-Duy 12 2.4.3 PRIMARY KEY- Khoá 13 2.4.4 FOREIGN KEY-Khoá ngoại 13 2.4.5 CHECK- Ràng buộc kiểm tra giá trị 14 2.4.6 DEFAULT-Mặc định 14 2.5 Sửa đổi cấu trúc 15 2.6 Xoá đối tượng 17 Chương CÁC LỆNH QUẢN TRỊ DỮ LIỆU 17 3.1 Thêm hàng (INSERT) 17 3.2 Xóa hàng (DELETE) 18 3.3 Sửa đổi giá trị hàng (UPDATE) 18 Chương NGÔN NGỮ ĐIỂU KHIỂN (DCL) 19 4.1 Lệnh GRANT 19 4.2 Lệnh REVOKE 20 Chương TRUY VẤN DỮ LIỆU (SELECT) 21 5.1 Cú pháp 21 5.2 Ví dụ: 21 5.3 Đưa cột 22 5.3.1 Đưa tất cột 22 5.3.2 Đưa số cột 22 5.3.3 Tránh giá trị trùng lặp (DISTINCT) 23 5.3.4 Đưa giá trị biểu thức 23 5.3.5 Sử dụng bí danh cột 23 5.3.6 Sắp xếp thứ tự (ORDER BY) 24 5.4 Đưa hàng 24 PHẦN II- NGÔN NGỮ SQL http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com MỤC LỤC 5.4.1 Sử dụng phép so sánh 24 5.4.2 Sử dụng phép logic: AND, OR, NOT 25 5.4.3 Các toán tử SQL 25 5.5 Sử dụng hàm 27 5.5.1 Hàm số học 27 5.5.2 Một số hàm kiểu số tham khảo khác: 27 5.5.3 Các hàm ký tự 29 5.5.4 Các hàm ngày 33 5.5.5 Các hàm chuyển đổi kiểu 35 5.5.6 Hàm nhóm 37 5.5.7 Sử dụng hàm nhóm 37 5.5.8 Mệnh đề GROUP BY 37 5.5.9 Mệnh đề HAVING 38 5.6 Lấy thông tin từ nhiều bảng 39 5.6.1 Nối (Equi-Join) 39 5.6.2 Bí danh bảng 40 5.6.3 Nối không (Non Equi-Join) 40 5.6.4 Nối bảng với 41 5.6.5 Thực kết nối thông qua từ khóa Join 41 5.7 Thực phép toán tập hợp 43 5.8 Các câu hỏi lồng 44 5.8.1 Lệnh SELECT bên cho kết hàng 44 5.8.2 Lệnh SELECT bên cho kết nhiều hàng 45 5.8.3 Mệnh đề HAVING SELECT lồng 48 5.8.4 Mệnh đề ORDER BY SELECT lồng 49 5.9 Các lệnh lồng liên kết 49 THỰC HÀNH TỔNG HỢP 51 6.1 Hướng dẫn thực hành 51 6.2 Bài số 52 6.3 Bài số 54 6.4 Bài số 58 PHẦN II- NGÔN NGỮ SQL http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương GIỚI THIỆU Chương GIỚI THIỆU 1.1 Lịch sử phát triển SQL (Structured Query Language, đọc "sequel") tập lệnh truy xuất CSDL quan hệ Ngôn ngữ SQL IBM sử dụng hệ quản trị CSDL System R vào năm 70, hệ ngôn ngữ SQL (SEQUEL2) IBM công bố vào tháng 11 năm 1976 Năm 1979, tập đoàn ORACLE giới thiệu thương phẩm SQL, SQL cài đặt hệ quản trị CSDL DB2 IBM SQL/DS Ngày nay, SQL sử dụng rộng rãi đuợc xem ngôn ngữ chuẩn để truy cập CSDL quan hệ 1.2 Chuẩn SQL Năm 1989, viện tiêu chuẩn quốc gia Hoa kỳ (ANSI) công nhận SQL ngôn ngữ chuẩn để truy cập CSDL quan hệ văn ANSI SQL89 Năm 1989, tổ chức tiêu chuẩn quốc tế (ISO) công nhận SQL ngôn ngữ chuẩn để truy cập CSDL quan hệ văn ISO 9075-1989 Tất hệ quản trị CSDL lớn giới cho phép truy cập SQL hầu hết theo chuẩn ANSI 1.3 Đặc điểm SQL - Ngôn ngữ gần với ngôn ngữ tự nhiên (tiếng Anh) - SQL ngôn ngữ phi cấu trúc, tức lệnh SQL người sử dụng CHỈ CẦN đưa yêu cầu hệ thống CÁI GÌ không cần phải làm THẾ NÀO - Ví dụ: Cho cấu trúc liệu để quản lý học sinh sau HOCSINH(MaHS, TenHS, ĐTB, Xeploai) Đưa TenHS, ĐTB học sinh có ĐTB>=8.0 Pascal Type Hocsinh=Record MaHS: String[5]; TenHS: String[30]; ĐTB: Real; Xeploai: String[30]; End; HS: Array[1 100] Of Hocsinh; Begin … For i:=1 to n If HS[i].ĐTB>=8.0 then Writeln(HS[i].TenHS, HS[i].DTB); … End PHẦN II- NGÔN NGỮ SQL SQL - Tạo bảng HOCSINH Sử dụng lệnh SELECT Select TenHS, ĐTB From HOCSINH Where ĐTB>=5.0; http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương GIỚI THIỆU - Ngôn ngữ SQL sử dụng rộng rãi Hệ quản trị sở liệu - SQL chia loại: SQL (ngôn ngữ hỏi) PL/SQL (ngôn ngữ lập trình) 1.4 Các loại lệnh SQL Chia làm nhóm chính: - Cho phép truy vấn sở liệu để đưa thông tin cần thiết (SELECT) - Các lệnh định nghĩa liệu (DDL_ Data Definition Language): Tạo thay đổi cấu trúc đối tượng sở liệu (CREATE, ALTER…) - Các lệnh thực liệu (DML_ Data Manipulation Language): Cho phép thêm, sửa, xóa liệu (INSERT, UPDATE, DELETE…) - Các lệnh điều khiển liệu (DCL_Data Control Language): Cho phép gán huỷ quyền truy cập liệu (GRANT, REVOTE) PHẦN II- NGÔN NGỮ SQL http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương CÁC LỆNH ĐỊNH NGHĨA DỮ LIỆU (DDL) Chương CÁC LỆNH ĐỊNH NGHĨA DỮ LIỆU (DDL) 2.1 Tạo sở liệu Cú pháp: Create Database Ví dụ: Tạo sở liệu có tên QLTV _ Quản lý thư viện Create Database QLTV; 2.2 Tạo bảng 2.2.1 Cú pháp CREATE TABLE (Tên_thuộc_tính1 Kiểu_tt1 [NOT NULL], Tên_thuộc_tính2 Kiểu_tt2 [NOT NULL], … Tên_thuộc_tínhn Kiểu_ttn [NOT NULL] [, CONSTRAINT mệnh đề ] ) Trong đó, mệnh đề CONSTRAINT cho phép ta khai báo ràng buộc liệu(chi tiết trình bày phần sau) Ví dụ: Tạo bảng DOCGIA, có thuộc tính: CREATE TABLE DOCGIA( MaDG Text(10) NOT NULL PRIMARY KEY, TenDG Text(30) NOT NULL, DiaChi Text(50) NOT NULL, Tuoi NUMBER) Bảng nhận tên gọi cấu trúc (danh sách tên thuộc tính vài đặc trưng) Khi tạo, bảng chưa có liệu, cấu trúc lôgic tiếp nhận liệu 2.2.2 Tên bảng Tên bảng xác định sau lệnh CREATE TABLE Mỗi HQTCSDL có quy tắc đặt tên riêng Ví dụ : - Tên bảng phải bắt đầu chữ cái, có 30 kí tự (chữ cái, chữ số, dấu ‘_’) PHẦN II- NGÔN NGỮ SQL http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương CÁC LỆNH ĐỊNH NGHĨA DỮ LIỆU (DDL) - Tên bảng phải khác tên gọi khác bảng hay khung nhìn với tên gọi dành riêng SQL - Không phân biệt hoa, thường 2.2.3 Xác định thuộc tính Trong lệnh tạo bảng ta phải xác định cấu trúc bảng Cần phải xác định thuộc tính định nghĩa kết thúc dấu ‘,’ gồm: - Tên thuộc tính - Loại liệu độ dài - Các ràng buộc có liên quan 2.3 Các loại liệu Các loại liệu sử dụng tùy theo HQTCSDL 2.3.1 Các loại liệu sử dụng MS Access Kiểu liệu Miêu tả Kích cỡ Text Sử dụng ký tự kết hợp ký Khả lưu trữ tối đa tự số, địa chỉ, số (FieldSize)là 255 ký tự không yêu cầu tính toán, số điện thoại, mã nước, mã vùng… Memo Sử dụng bạn cần lưu trữ Khả lưu trữ tối đa 65.536 lượng thông tin lớn, ví dụ trường ký tự thông tin ghi cán Number Number: Sử dụng cho liệu Khả lưu trữ 1, 2, 4, cần tính toán (loại trừ tính tiền, sử tuỳ thuộc bào kiểu liệu ta chọn dụng Currency Type) (byte, integer, long integer, single, douple, decimal), riêng kiểu liệu ReplicationID (GUI) thi khả lưu trữ 16 byte Date/Time Lưu trữ thông tin thời gian Sử dụng byte để lưu trữ Currency Sử dụng Currency cho liệu cần tính toán Phần thập phân có từ đến số Khả lưu trữ byte AutoNumber Đây kiểu số tự động tăng với bước Sử dụng byte để lưu trữ Nếu chọn kiểu liệu ReplicationID tăng Ta cập nhật lại PHẦN II- NGÔN NGỮ SQL http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương CÁC LỆNH ĐỊNH NGHĨA DỮ LIỆU (DDL) trường khả lưu trữ lên tới 16 byte Yes/No Kiểu liệu YES/NO chứa giá trị (Yes/No, True/False, On/ Off)Y Sử dụng bite để lưu trữ OLE Object Đối tượng (như văn Sử dụng GB để lưu trữ (tuỳ thuộc Microsoft Word, liệu đồ hoạ, âm vào dung lượng đĩa) thanh, kiểu liệu nhị phân… ) Ngoài loại liệu khác Hyperlink, Lookup Wizard Đối với kiểu liệu Number, ta lựa chọ chi tiết: Kiểu liệu Miêu tả Độ Kích cỡ xác thập phân Byte Lưu trữ số từ đến 255 (không có phân số) Không byte Decimal Lưu trữ tối đa 10^38-1 28 12bytes Integer Lưu trữ số từ -32,768 to 32,767 (không có phân số) Không bytes None bytes Long Integer Lưu trữ số từ -2,147,483,648 tới 2,147,483,647 (không có phân số) Single Lưu trữ số từ -3.402823E38 to -1.401298E- 45 cho giá trị âm từ 1.401298E-45 to 3.402823E38 giá trị dương bytes Double Lưu trữ số từ -1.79769313486231E308 tới - 15 4.94065645841247E-324 cho giá trị âm từ 4.94065645841247E–324 to 1.79769313486231E308 giá trị dương bytes 2.3.2 Các loại liệu sử dụng Oracle: CHAR Kiểu CHAR dùng để khai báo chuỗi có chiều dài cố định, khai báo biến cột kiểu CHAR với chiều dài định tất mục tin biến hay cột có chiều dài định Các mục tin ngắn ORACLE tự động thêm vào khoảng trống cho đủ chiều dài ORACLE không cho phép PHẦN II- NGÔN NGỮ SQL http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương CÁC LỆNH ĐỊNH NGHĨA DỮ LIỆU (DDL) gán mục tin dài chiều dài định kiểu CHAR Chiều dài tối đa cho phép kiểu CHAR 255 byte VARCHAR2 Kiểu VARCHAR2 dùng để khai báo chuỗi ký tự với chiều dài thay đổi Khi khai báo biến cột kiểu VARCHAR2 phải chiều dài tối đa, mục tin chứa biến hay cột kiểu VARCHAR2 có chiều dài thực chiều dài mục tin ORACLE không cho phép gán mục tin dài chiều dài tối đa định kiểu VARCHAR2 Chiều dài tối đa kiểu VARCHAR2 2000 byte VARCHAR Hiện ORACLE xem kiểu VARCHAR2 VARCHAR nhau, nhiên ORACLE khuyên nên dùng VARCHAR2 ORACLE dự định tương lai dùng kiểu VARCHAR để chứa chuỗi với chiều dài biến đổi, phép so sánh định theo nhiều ngữ nghĩa khác NUMBER Kiểu số ORACLE dùng để chứa mục tin dạng số dương, số âm, số với dấu chấm động NUMBER(p, s) Trong đó: p: số chữ số trước dấu chấm thập phân (precision), p từ đến 38 chữ số s: số chữ số tính từ dấu chấm thập phân bên phải (scale), s từ -84 đến 127 NUMBER(p) số có dấu chấm thập phân cố định với precision p scale NUMBER số với dấu chấm động với precision 38 Nhớ scale không áp dụng cho số với dấu chấm động Ví dụ sau cho thấy cách thức ORACLE lưu trữ liệu kiểu số tùy theo cách định precision scale khác nhau: Dữ liệu thực Kiểu Lưu trữ 7456123.89 NUMBER 7456123.89 7456123.89 NUMBER(9) 7456123 7456123.89 NUMBER(9,2) 7456123.89 7456123.89 NUMBER(9,1) 7456123.8 7456123.89 NUMBER(6) Không hợp lệ PHẦN II- NGÔN NGỮ SQL http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương CÁC LỆNH ĐỊNH NGHĨA DỮ LIỆU (DDL) 7456123.8 NUMBER(15,1) 7456123.8 7456123.89 NUMBER(7,-2) 7456100 7456123.89 NUMBER(-7,2) Không hợp lệ FLOAT Dùng để khai báo kiểu số dấu chấm động, với độ xác thập phân 38 hay độ xác nhị phân 126 FLOAT(b) Khai báo kiểu dấu chấm động với độ xác nhị phân b, b từ đến 126 Có thể chuyển từ độ xác nhị phận sang độ xác thập phân cách nhân độ xác nhị phân với 0.30103 LONG Dùng để khai báo kiểu chuỗi ký tự với độ dài biến đổi, chiều dài tối đa kiểu LONG gigabyte Kiểu LONG thường dùng để chứa văn Có số hạn chế dùng kiểu LONG: - Một table chứa nhiều cột kiểu LONG - Dữ liệu kiểu LONG tham gia vào ràng buộc toàn vẹn, ngoại trừ kiểm tra NULL khác NULL - Không thể index cột kiểu LONG - Không thể truyền tham số kiểu LONG cho hàm thủ tục - Các hàm trả liệu kiểu LONG - Trong câu lệnh SQL có truy cập cột kiểu LONG, việc cập nhật khóa bảng cho phép CSDL Ngoài ra, cột kiểu LONG không tham gia thành phần sau câu lệnh SQL: - Các mệnh đề WHERE, GROUP BY, ORDER BY, CONNECT BY với tác tử DISTINCT câu lệnh SELECT - Các hàm sử dụng câu lệnh SQL SUBSTR, INSTR - Trong danh sách lựa chọn câu lệnh SELECT có sử dụng mệnh đề GROUP BY - Trong danh sách lựa chọn câu hỏi con, câu hỏi có sử dụng toán tử tập hợp - Trong danh sách lựa chọn câu lệnh CREATE TABLE AS SELECT DATE PHẦN II- NGÔN NGỮ SQL 10 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương TRUY VẤN DỮ LIỆU (SELECT) SELECT NHANVIEN.HoTen, NHANVIEN.MaDV, NHANVIEN.Luong FROM NHANVIEN WHERE ((NHANVIEN.Luong)> (Select AVG(Luong) From NHANVIEN NV1 Where NV1.MaDV= NHANVIEN.MaDV)) PHẦN II- NGÔN NGỮ SQL 50 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP THỰC HÀNH TỔNG HỢP - Phần thực hành thực hệ quản trị sở liệu Microsoft Aaccess - Tất thao tác phải thực ngôn ngữ SQL thông qua Query 6.1 Hướng dẫn thực hành Mỗi yêu cầu ghi vào query Các bước thao tác với Query sau: Bước 1: Mở Microsoft Access Bước 2: Tạo sở liệu (New/ Blank Database) Nhập tên sở liệu Bước 3: Tạo truy vấn (Query) - Kích chuột vào Create query in Design view - Chọn SQL - Soạn thảo câu lệnh SQL - Ghi đặt tên cho Query - Thực câu lệnh cách nhấn vào ! công cụ PHẦN II- NGÔN NGỮ SQL 51 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP - Chọn Save, nhập tên Query - Chú ý: o Tất yêu cầu thực hành thực lệnh SQL thông qua Query o Mỗi yêu cầu ghi lại Query Đặt tên Query theo tên câu hỏi Ví dụ: Cau1, Cau2,… 6.2 Bài số 1 Tạo sở liệu có tên Thuchanh Tạo bảng có tên DOCGIA, có thuộc tính sau: CREATE TABLE DOCGIA( MaDG Text(10) NOT NULL PRIMARY KEY, TenDG Text(30) NOT NULL, DiaChi Text(50) NOT NULL, Tuoi NUMBER); Thêm thuộc tính có tên Ghichu cho bảng DOCGIA ALTER TABLE DOCGIA PHẦN II- NGÔN NGỮ SQL 52 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP ADD COLUMN GhiChu Text(50)); Thay đổi kiểu liệu thuộc tính Ghichu thành kiểu liệu Memo ALTER TABLE DOCGIA ALTER COLUMN GhiChu Memo; Xóa thuộc tính Ghichu bảng DOCGIA ALTER TABLE DOCGIA DROP COLUMN GhiChu; Thực lệnh sau đây, lệnh cho kết nào? Nêu khác chúng Câu 1: INSERT INTO DOCGIA VALUES(‘DHTL05’,’Nguyễn Công Thành’,’Lớp 41NC’,22 ); Câu 2: INSERT INTO DOCGIA(MaDG, TenDG, DiaChi) VALUES(‘DHTL06’,’Nguyễn Phương Lan’,’Lớp 41NC’ ); Xóa ghi có MaDG= ‘DHTL01’ bảng DOCGIA DELETE FROM DOCGIA WHERE MaDG=’DHTL01’; Xóa độc giả có địa là: 41NC bảng DOCGIA DELETE FROM DOCGIA WHERE Diachi=’41NC’; Sửa địa độc giả có MaDG TD001 thành địa CVK3I UPDATE DOCGIA SET (Diachi=’CVK3I’) WHERE MaDG=’TD001’; PHẦN II- NGÔN NGỮ SQL 53 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP 6.3 Bài số Tạo sở liệu (CSDL) dùng để quản lý nhân viên, lấy tên CSDL QLNhanVien Cấu trúc CSDL gồm bảng với quan hệ sau: a NHANVIEN Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng MaNV Ký tự Chữ hoa +số HoTen Ký tự 30 Congviec Ký tự 50 Luong Số MaDV Ký tự MaPT Ký tự Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng MaDV Ký tự Chữ hoa +số TenDV Ký tự 50 b Chữ hoa + số (Mã người phụ trách) DONVI PHẦN II- NGÔN NGỮ SQL 54 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP c BACLUONG Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng MaBac Ký tự 50 Chữ hoa +số BacCao Số BacThap Số Chú ý: Mỗi câu lệnh tạo bảng viết Query, đặt tên 21, 2b, 2c Thêm liệu (bằng lệnh INERT) cho bảng NHANVIEN để có kết sau: NHANVIEN MaNV HoTen CongViec Luong MaDV NV001 Phạm Thị Nhàn Thư ký 500 0001 NV002 Hoàng Thanh Vân Giáo viên 600 0001 NV003 Hoàng Thị Lan Giáo viên 200 0002 NV004 Đỗ Trung Dũng Thư ký 700 0003 Thêm liệu (bằng lệnh INERT) cho bảng DONVI để có kết sau: DONVI MaDV TenDV 0001 KHTN 0002 DHTL 0003 DHQG Thêm liệu (bằng lệnh INERT) cho bảng BACLUONG để có kết sau: BACLUONG MaBac BacThap BacCao 400 500 501 600 601 800 Dùng câu lệnh truy vấn liệu, đưa tất thông tin nhân viên Đưa Hoten, Congviec, Luong tất nhân viên PHẦN II- NGÔN NGỮ SQL 55 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP Đưa toàn công việc nhân viên, giá trị không trùng Đưa Hoten, LuongQuy tất nhân viên, với LuongQuy= Luong*3 10 Đưa Hoten, Luong xếp theo thứ tự tăng dần/ giảm dần Luong 11 Đưa Hoten, Luong nhân viên có Luong>300 12 Đưa Hoten, Luong nhân viên có Luong>300 làm công việc Giáo viên 13 Đưa nhân viên có lương 200, 300, 600 14 Đưa nhân viên có Lương khoảng 300 đến 600 15 Đưa Hoten, Congviec nhân viên có Họ tên bắt đầu chữ ‘Hoàng’ 16 Đưa lương trung bình, lương lớn nhất, nhỏ tất nhân viên bảng NHANVIEN 17 Đưa Côngviệc, Lương trung bình loại công việc 18 Đưa Côngviệc, Lương trung bình tất nhân viên có Luong>200 theo loại công việc 19 Đưa tổng lương nhóm công việc đơn vị 20 Đưa Congviec trung bình lương công việc có trung bình lương >=300 21 Đưa đơn vị lương lớn đơn vị có lương lớn >=300 22 Đưa Hoten, Congviec, TenDV tất nhân viên 23 Câu lệnh sau cho kết SELECT HoTen, CongViec, TenDV FROM NHANVIEN NV, DONVI DV WHERE NV.MaDV= DV.MaDV; 24 Đưa Hoten, Congviec, MaBac tất nhân viên 25 Đưa HoTen, Congviec, TenDV, Luong nhân viên có Luong>=500 26 Câu lệnh sau cho kết SELECT NV.MaNV, NV.Hoten, PT.MaNV, PT.Hoten FROM NHANVIEN NV, NHANVIEN PT WHERE (NV.MaNV=PT.MaPT) AND (NV.Luong>PT.Luong); 27 Đưa công việc đơn vị có MaDV 0001 đơn vị có MaDV 0002 PHẦN II- NGÔN NGỮ SQL 56 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP 28 Đưa Hoten, TenDV, Congviec, Luong người có lương lớn lương trung bình toàn nhân viên 29 Đưa nhân viên có lương lớn người có lương lớn đơn vị có tên DHTL 30 Đưa Hoten, MaDV, Luong nhân viên có Luong=Luong thấp đơn vị họ 31 Đưa Hoten, MaDV, Luong nhân viên có Luong=Luong thấp đơn vị 32 Đưa Hoten, Luong nhân viên có Luong lớn đơn vị có mã đơn vị 0002 33 Đưa MaDV, AVG(Luong) đơn vị có trung bình lương lớn lương nhỏ đơn vị có mã đơn vị 0003 PHẦN II- NGÔN NGỮ SQL 57 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP 6.4 Bài số Thực thao tác sau cho Cơ sở liệu dùng để quản lý cửa hàng kinh doanh I ĐỊNH NGHĨA DỮ LIỆU Tạo sở liệu Tạo sở liệu dùng để quản lý cửa hàng đặt tên QLCH bao gồm bảng có mối quan hệ sau: Cấu trúc bảng sau: KHACH Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng Ma_khach Ký tự Chữ hoa +số Ten_kh Ký tự 30 Chữ đầu viết hoa Diachi_kh Ký tự 30 Chữ đầu viết hoa Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng Ma_hang Ký tự Chữ hoa+số Ten_hang Ký tự 15 Chữ đầu viết hoa Mota_hang Ký tự 30 Chữ đầu viết hoa HANG PHẦN II- NGÔN NGỮ SQL 58 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP Don_vi Ký tự 10 Chữ thường Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng So_don Ký tự Chữ hoa +số Ma_khach Ký tự 15 Chữ hoa +số Ngay_don Ngày Dd/mm/yy Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng So_don Ký tự Chữ hoa +số Ma_hang Ký tự Chữ hoa +số So_luongd Số Số nguyên Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng So_phieu Ký tự Chữ hoa +số Ma_khach Ký tự Chữ hoa +số Ngay_giao Ngày 30 Dd/mm/yy Noi_giao Ký tự 30 Tong_tien Số DONHANG DONGDON PHIEUGIAO Số thực DONGPHIEU Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng So_phieu Ký tự Chữ hoa+ số Ma_hang Ký tự Chữ hoa + số Don_gia Số Số thực So_luonggi Số Số thực Sửa đổi cấu trúc: Thêm thuộc tính: - Trong bảng KHACH, thêm thuộc tính SoThich nhằm lưu vào bảng KHACH sở thích khách hàng PHẦN II- NGÔN NGỮ SQL 59 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP - Trong bảng HANG, thêm hai thuộc tính NoiCungCap NoiSanXuat nhằm lưu vào bảng HANG thông tin nơi cung cấp hàng hóa nơi sản xuất chúng Thay đổi kiểu thuộc tính - Trong bảng KHACH, thay đổi kiểu liệu cho trường SoThich, từ kiểu Text thành kiểu Memo - Trong bang HANG, thay đổi kiểu liệu cho trường NoiCungCap, từ kiểu Text thành kiểu Number Xóa thuộc tính - Trong bảng HANG, xóa thuộc tính NoiCungCap NoiSanXuat - Trong bảng KHACH, xóa thuộc tính SoThich II QUẢN TRỊ DỮ LIỆU Thêm giá trị vào dòng bảng - Thêm vào bảng KHACH giá trị sau: KHACH Ma_khach Ten_kh K001 Đào Minh Thư K002 Nguyễn Liên Dung K003 Phạm Hoàng Nhung - diachi_kh Đại học Quốc Gia BNC Đại học Thủy Lợi Thêm vào bảng DONHANG giá trị sau: DONHANG - so_don DH001 Ma_khach K001 ngay_don 3/22/2002 DH002 DH003 K001 K002 7/13/2003 12/24/2002 Thêm vào tất bảng, bảng số giá trị phù hợp Chú ý: Hãy thử trường hợp thêm ma_khach K0010 vào bảng DONHANG kết nào? Tại sao? Thêm giá trị cho số thuộc tính - Thêm giá trị vào bảng KHACH để giá trị sau: PHẦN II- NGÔN NGỮ SQL 60 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP KHACH Ma_khach Ten_kh Diachi_kh K001 Đào Minh Thư Đại học Quốc Gia K002 Nguyễn Liên Dung BNC K003 Phạm Hoàng Nhung Đại học Thủy Lợi K004 Trịnh Hồng Cường K005 Nguyễn Văn Hải Đại học Thủy Lợi - Thêm giá trị vào bảng HANG để giá trị sau: HANG ma_hang ten_hang Mota_hang don_vi H001 Hoa loa kèn Hoa trắng, to Bông H002 Hoa hồng Nhiều mau Bông H003 Hoa lan Cành Xóa hàng - Xóa hàng có ma_hang = ‘H001’ bảng HANG - Xóa tất khách hàng có Diachi_kh = ‘Đại bảng KHACH - Xóa khách hàng có tên Trịnh Hồng Cường học Thủy Lợi ‘ Sửa đổi giá trị hàng - Sửa đổi địa khách hàng thành địa Đại học Quốc Gia với ma_khach K002 - Sửa đổi tất tên hàng “Hoa lan” thành “Hoa phong lan” mô tả hàng “Hàng nhập từ Đà Lạt” III CÁC LỆNH TRUY VẤN DỮ LIỆU Xem toàn nội dung bảng KHACH Xem toàn nội dung bảng HANG Xem toàn nội dung bảng DONHANG Đưa Tên Địa tất Khách hàng bảng KHACH Đưa Tên hàng, Mô tả hàng Đơn vị tính tất mặt hàng bảng HANG Đưa tất đơn vị tính dùng để tính hàng hóa Đưa tất tên hàng bảng HANG Đưa tất địa khách hàng PHẦN II- NGÔN NGỮ SQL 61 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP Đưa so_phieu, ma_hang, don_gia, soluonggi Thành tiền (don_gia*so_luong) tất hàng bảng PHIEU_GIAO 10 Đưa so_phieu, ma_hang, don_gia, soluonggi Thành tiền (don_gia*so_luong), sử dụng bí danh la thanh_tien tất hàng bảng PHIEU_GIAO 11 Đưa tất giá trị bảng HANG theo thứ tự giảm dần ma_hang 12 Đưa tất giá trị bảng PHIEUGIAO theo thứ tự tăng dần (giảm dần) tổng tiền (tong_tien) 13 Đưa tất khách hàng có địa Đại học Quốc Gia bảng KHACH 14 Đưa So_phieu, Ma_khach bảng PHIEUGIAO với điều kiện Tong_ tien>=100.000, xếp theo điều kiện giảm dần Tong_tien 15 Đưa ten_hang, mota_hang hàng hóa có don_vi tính theo bảng HANG 16 Đưa danh sách ghi bao gồm so_phieu, ma_khach, ngay_giao bảng PHIEUGIAO với điều kiện Noi_giao Hà Nội Tong_tien>50.000 17 Đưa danh sách ghi bao gồm Ma_khach, Ten_khach bảng KHACH với điều kiện địa khách Đại học Quốc Gia Đại học Thủy Lợi 18 Đưa mặt hàng bảng HANG có đơn vị tính Bông, Cành Bó 19 Đưa danh sách khách hàng (Ma_khach, Tong _tien) nằm bảng PHIEUGIAO có Noi_giao nằm số địa điểm sau: Hà Nội, Hồ Chí Minh, Hải Phòng 20 Đưa tất thông tin bảng PHIEUGIAO với điều kiện tong_tien nằm khoảng từ 100.000 đến 500.000 21 Đưa ma_kh, ten_kh bảng KHACH khách hàng có họ Nguyễn 22 Đếm số lần mua hàng khách hàng có ma_kh K001 bảng PHIEUGIAO Thuộc tính đặt tên SoLanMua 23 Tính tổng tiền trung bình PHIEUGIAO Thuộc tính đặt tên TrungBinhPG 24 Tính tổng tiền bảng PHIEUGIAO khách hàng có ma_khach = ‘K002’ PHẦN II- NGÔN NGỮ SQL 62 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương THỰC HÀNH TỔNG HỢP 25 Tính tổng số khách hàng bảng KHACH có địa (diachi_KH) Đại học Thủy Lợi 26 Đưa ma_khach, ngay_giao, noi_giao bảng PHIEUGIAO có tong_tien toán lớn 27 Đưa ma_khach, ngay_giao, noi_giao bảng PHIEUGIAO có tong_tien toán nhỏ PHẦN II- NGÔN NGỮ SQL 63 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Date, C.J., and Darwen, H.: A Guide to the SQL Standard, 3rd ed., AddisonWesley Tiện ích Book Online SQL Server 2000 Tiện ích Help Microsoft Access 2000 Tiện ích Help Oracle 9i Nguyễn Văn Vỵ, SQL2, NXB Thống kê Elmasri & Navathe: Fundamentals of Database Systems, International Edition PHẦN II- NGÔN NGỮ SQL 64 http://www.ebook.edu.vn [...]... value>) WHERE Ví dụ: UPDATE DOCGIA SET (Diachi= ‘Khoa Cong trinh’) WHERE MaDG= ‘TD001’ PHẦN II- NGÔN NGỮ SQL 18 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương 4 NGÔN NGỮ ĐIỂU KHIỂN (DCL) 4 Chương 4 NGÔN NGỮ ĐIỂU KHIỂN (DCL) Ngôn ngữ điều khiển được sử dụng trong việc cấp phát hay huỷ bỏ quyền của người sử dụng 4.1 Lệnh GRANT Câu lệnh... bắt đầu từ vị trí n, lần xuất hiện thứ m - LENGTH(char): Cho chiều dài của chuỗi char Ví dụ hàm LOWER(char) SELECT LOWER(DNAME), LOWER( SQL COURSE’) FROM DEPT; LOWER(DNAME) -accounting research sales operations LOWER( 'SQL -sql course sql course sql course sql course Ví dụ hàm UPPER(char) SELECT ENAME FROM EMP WHERE ENAME = UPPER(‘Smith’); ENAME -SMITH Ví dụ hàm INITCAP(char) SELECT INITCAP(DNAME),... được cấp phát cho người sử dụng Các câu lệnh có thể cấp phát là: o CREATE DATABASE o CREATE TABLE o CREATE VIEW o CREATE PROCEDURE PHẦN II- NGÔN NGỮ SQL 19 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương 4 NGÔN NGỮ ĐIỂU KHIỂN (DCL) o CREATE RULE o CREATE DEFAULT o BACKUP DATABASE o BACKUP LOG Ví dụ 1: Câu lệnh sau sẽ 3 cấp quyền SELECT, UPDATE, INSERT... SELECT LENGTH( SQL COURSE’), LENGTH(DEPTNO), LENGTH(DNAME) FROM DEPT; LENGTH('SQLCOURSE') LENGTH(DEPTNO) LENGTH(DNAME) - 10 2 14 10 2 14 10 2 14 10 2 14 Ví dụ hàm TRANSLATE(char, from, to) SELECT ENAME, TRANSLATE(ENAME,'C','F'), JOB, TRANSLATE(JOB,'AR','IT') FROM EMP WHERE DEPTNO = 10; ENAME -KING CLARK MILLER TRANSLATE( -KING FLARK MILLER PHẦN II- NGÔN NGỮ SQL JOB PRESIDENT... của SQL - [NOT] BETWEEN x AND y: [Không] nằm giữa giá trị X và Y - IN (danh sách): thuộc bất kỳ giá trị nào trong danh sách - x [NOT] LIKE y: Đúng nếu x [không] giống khung mẫu y Các ký tự dùng trong khuôn mẫu: Dấu gạch dưới ( _ ) : Chỉ một ký tự bất kỳ Dấu phần trăm ( % ) : Chỉ một nhóm ký tự bất kỳ - IS [NOT] NULL: kiểm tra giá trị rỗng - EXISTS: Trả về TRUE nếu có tồn tại Ví dụ: PHẦN II- NGÔN NGỮ SQL. .. Memo Xóa một thuộc tính Cú pháp: ALTER TABLE DROP Ví dụ: ALTER TABLE NHANVIEN DROP GhiChu Chú ý: Trong một số HQTCSDL ta cần phải thêm từ khoá COLUMN như sau: PHẦN II- NGÔN NGỮ SQL 16 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương 2 CÁC LỆNH ĐỊNH NGHĨA DỮ LIỆU (DDL) Cú pháp: ALTER TABLE DROP COLUMN Tên_cột... để tuổi không xác định: INSERT INTO DOCGIA(MaDG,TenDG,DiaChi) VALUES(‘DHTL06’,’Nguyễn Phương Lan’, ‘Khoa May’ ) - Ngoài ra chúng ta còn có thêm dữ liệu cho bảng từ giá trị của bảng khác: PHẦN II- NGÔN NGỮ SQL 17 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương 3 CÁC LỆNH QUẢN TRỊ DỮ LIỆU Cú pháp: INSERT [INTO] (Column1, Column2, …, Columnn)... ký tự của CSDL và tập ký tự của các ứng dụng 9 ROWID Mỗi mẫu tin trong CSDL có một địa chỉ có kiểu ROWID ROWID gồm block.row.file, trong đó: block : chuỗi hệ hexa cho biết block chứa row PHẦN II- NGÔN NGỮ SQL 11 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương 2 CÁC LỆNH ĐỊNH NGHĨA DỮ LIỆU (DDL) row : chuỗi hệ hexa cho biết row trong block file... Giá trị null là cho phép nêu UNIQUE dựa trên một cột Ví dụ: CREATE TABLE NHANVIEN ( MaNV NUMBER(10) NOT NULL, TenNV CHAR(30), DiachiNV CHAR(50) CONSTRAINT UNQ_Ten_Diachi UNIQUE(Ten,Diachi)) PHẦN II- NGÔN NGỮ SQL 12 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương 2 CÁC LỆNH ĐỊNH NGHĨA DỮ LIỆU (DDL) 2.4.3 PRIMARY KEY- Khoá chính - Chỉ ra ràng buộc... ,accountN] Dạng 2: Huỷ quyền thực hiện các đối tượng: REVOKE ALL | permission [, ,permissionN]} ON table_name | view_name [(column [, ,columnN])] | stored_procedure FROM account [, ,accountN ] PHẦN II- NGÔN NGỮ SQL 20 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương 5 TRUY VẤN DỮ LIỆU (SELECT) 5 Chương 5 TRUY VẤN DỮ LIỆU (SELECT) - Mệnh đề SELECT cho ... http://www.simpopdf.com Chương GIỚI THIỆU - Ngôn ngữ SQL sử dụng rộng rãi Hệ quản trị sở liệu - SQL chia loại: SQL (ngôn ngữ hỏi) PL /SQL (ngôn ngữ lập trình) 1.4 Các loại lệnh SQL Chia làm nhóm chính: - Cho... CSDL lớn giới cho phép truy cập SQL hầu hết theo chuẩn ANSI 1.3 Đặc điểm SQL - Ngôn ngữ gần với ngôn ngữ tự nhiên (tiếng Anh) - SQL ngôn ngữ phi cấu trúc, tức lệnh SQL người sử dụng CHỈ CẦN đưa... II- NGÔN NGỮ SQL 18 http://www.ebook.edu.vn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương NGÔN NGỮ ĐIỂU KHIỂN (DCL) Chương NGÔN NGỮ ĐIỂU KHIỂN (DCL) Ngôn ngữ