Tổng hợp Bài tập về SQL - pdf 17

Link tải luận văn miễn phí cho ae Kết nối

MỤC TIÊU CỦA BÀI NÀY GIÚP NGƯỜI HỌC
 Hiểu và phân biệt 3 nhóm lệnh của ngôn ngữ SQL
 Giải một số bài tập thao tác trên quan hệ có sử dụng 3 nhóm lệnh trên.
 Vận dụng giải quyết các bài toán tổng hợp.

A/ NHẮC LẠI LÝ THUYẾT
I. CÁC NHÓM LỆNH CỦA NGÔN NGỮ SQL

Phân biệt các nhóm câu lệnh sau:

- Các lệnh DDL: CREATE, ALTER, DROP.
a. Lệnh CREATE
Lệnh này dùng để tạo ra các quan hệ như TABLE,VIEW,INDEX
CREATE TABLE
-Bảng là một cấu trúc c bn để cất giữ trong hệ thống quan hệ.Có khuôn dạng hai chiều gồm có các cột và hàng.Nó là yếu tố cơ bản cho các thao tác khác nhau.Có thể nói việc tạo bảng là bước đầu tiên quan trọng nhất để thiết lập CSDL.

-Cú pháp của lệnh này:
CREATE TABLE table-name(colom_name type(size)..)
Khi tạo ra bảng chúng ta phải chỉ ra kiểu dữ liệu của cột và mỗi cột chỉ có thể có môt kiểu dữ liệu duy nhất.Khi tạo bảng ta có thể đưa ra các ràng buộc
Các ràng buộc của các trường có thể là : primary key,foreign key ,unique,not null ...

VD:Tạo bảng nhân viên
CREATE TABLE NHAN_VIEN (#NV varchar(4) constraint NV_Primary key,ho_tên Varchar(25),Ng_sinh date,chứcvụ varchar(20),đia_chỉ varchar(30).lưng number(7));
trong VD trên ta tạo ra một ràng buộc là #NV được định nghĩa là primary key
-Ta cũng có thể tạo ra bảng mới với cấu trúc và dữ liệu từ 1 bảng khác.
Cú pháp:
CREATE TABLE TABLE_name[(colum_name..)]AS
SELECT statement;
VD:Tạo ra 1 bảng mới có tên là NVN (#NV,họ_tên) từ bảng NHAN_VIEN
CREATE TABLE NVN AS SELECT #NV,họ_tên FROM NHAN_VIEN;

b. Lệnh ALTER
-Dùng để hay là thêm một hay nhiều trường vào bng hay sửa đổi một cột hiện
tại.SQL ANSI chuẩn không cho phép huỷ bỏ các cột.
-Cú pháp:
ALTER TABLE TABLE_name ADD | MODIFY | DROP option (colum Datatype..)
+ADD:thêm cột mới
+MODIFY:sửa đổi cột
+DROP option xoá bỏ các ràng buộc
VD1:thêm trường gia đình kiểu char(1) vào R1
ALTER TABLE R1 ADD gia đình char(1);
VD2:Thay đổi trường Địa_chỉ Varchar(30) trong R1 thành Địa_Chỉ(20):
ALTER TABLE R1 MODIFY Địa_Chỉ varchar(20);
VD3:Huỷ bỏ ràng buộc trường khoá #NV trong R1
ALTER TABLE R1 DROP constraint NV_prim
c. Lệnh DROP
-Dùng để xoá bỏ một quan hệ,khi ta xoá bỏ một bng c sở thì tất c các VIEW,INDEX được định nghĩa trên bng đó sẽ bị xoá bỏ .
Cú phap:
DROP TABLE/VIEW/INDEX Name;
VD:Xoá bỏ Nhân_viên_id;
DROP INDEX Nhân_viên_id;

- Các lệnh DML: SELECT, UPDATE, INSERT, DELETE, …

a. Lệnh SELECT
Mệnh đề SELECT tương ứng với toán tử project(phép chiếu p) của đại số quan hệ. Khối lệnh SELECT gồm có ba mệnh đề chính:
+SELECT:xác định nội dung của các cột cấn đưa ra.
+FROM:danh sách các quan hệ được quét qua
+WHERE:ứng với một khẳng định lựa chọn của đại số quan hệ.
-Lệnh SELECT thường có dạng:
SELECT [distinct]*/A1..An FROM R1, R2 ...,Rm
[WHERE p];
Trong đó :
Ai là các thuộc tính
Rj là các quan hệ (có thể là các TABLEs,VIEWs..)Ta có thể dùng các bí danh cho các Ai,rj.
p:là điều kiện ràng buộc.
ở đây WHERE có thể có hay không.
Dùng *để chỉ tất cả các thuộc tính của các quan hệ được chọn
-Hỏi đáp này tương đưng với biểu diễn sau trong đại số quan hệ:
pA1..An[S p(r1..rm)]
-Để loại bỏ các bộ giá trị (các hàng) trùng nhau ta thêm từ khoá Distinct vào sau SELECT (trước đây SQL thêm từ khoá unique).
-Trong khẳng định p:ta có thể dùng các liên từ logic and,or,not khi kết hợp nhiều điều kiện
VD1:Để hiện các thông tin về một nhân viên nào đó gồm(#,Họ_tên,N_sinh,Chức_vụ,địa_chỉ,lưng)
SELECT Distinc * FROM R1;
Đưa ra (họ_tên,Nsinh,chức_vụ,địa_chỉ,lưng,tên_phòng) với điều kiện lưng. 500.000 và đia_chỉ không ở Hà nội
SELECT Ho_tên,Nsinhn,chức_vụ,địa_chỉ,lưng,tên_phòng
FROM Nhânviên R1,Liênkêt R2,Phong R3
WHERE (R1.lưng. 500.000) and (not R1.địa_chỉ=’Hà nội’) and
(R1.#NV=R2.#NV) and (R2.#MP=R3.#MP);
-Trong lệnh trên ta đã dùng R1,R2,R3 làm bí danh cho Nhânviên, Liênkêt,Phong
Các bí danh đó chỉ có tác dụng trong một câu lệnh

b. Nhóm lệnh INSERT,UPDATE,DELETE:

Thêm một bộ vào quan hệ
Cú pháp: INSERT INTO Tên_Bảng(Danh sách tên cột)
VALUES(Danh sách các trị) [câuu hỏi con]
VD:chèn 1 hàng (‘020’,’Nguyễn trọng Nghĩa’,Bảo vệ’,’Hà nội’,’800.000’) vào R1
INSERT INTO R1 VALUES(‘020’,’Nguyễn trọng Nghĩa’,Bảo vệ’,’Hà nội’,800.000);

Xó́a các bảng

Dùng để xoá bỏ 1 hay nhiều bộ trong quan hệ

DELETE FROM R[WHERE P]

Những bộ nào tho mãn đk P thì mới bị huỷ bỏ khỏi quan hệ R
VD: DELETE FROM R1 WHERE ng_sinh. ’01-01-1935’;
Xoá bỏ tất cả các nhân viên ta dùng lệnh:
DELETE FROM R1;

f856Rg0z5k9a4Fb

xem thêm
ĐỀ THI SQL CÓ LỜI GIẢI
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status