Danh mục

Bài tập về SQL

Số trang: 13      Loại file: doc      Dung lượng: 140.00 KB      Lượt xem: 12      Lượt tải: 0    
Thư viện của tui

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

NHẬP MÔN CSDL QUAN HỆSoạn bởi bộ môn Công nghệ phần mềm4. BµI TËP VÒ sqlMỤ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
Nội dung trích xuất từ tài liệu:
Bài tập về SQLNHẬP MÔN CSDL QUAN HỆ Soạn bởi bộ môn Công nghệ phần mềm 4. BµI TËP VÒ sqlMỤ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ẾTI. CÁC NHÓM LỆNH CỦA NGÔN NGỮ SQLPhân biệt các nhóm câu lệnh sau: - Các lệnh DDL: CREATE, ALTER, DROP.a. Lệnh CREATELệnh này dùng để tạo ra các quan hệ như TABLE,VIEW,INDEXCREATE 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 ồmcó 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 ảnglà 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 ểudữ liệu duy nhất.Khi tạo bảng ta có thể đưa ra các ràng buộcCá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ênVarchar(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 để hoặc là thêm một hay nhiều trường vào bng hoặc 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ộcVD1: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); Trang 1NHẬP MÔN CSDL QUAN HỆ Soạn bởi bộ môn Công nghệ phần mềmVD3:Huỷ bỏ ràng buộc trường khoá #NV trong R1 ALTER TABLE R1 DROP constraint NV_primc. 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 SELECTMệnh đề SELECT tương ứng với toán tử project(phép chi ếu p) của đ ại s ố quan h ệ. Kh ốilệ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ínhRj 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ó hoặc 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 ệnVD1:Để 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ệnhb. Nhóm lệnh INSERT,UPDATE,DELETE:Thêm một bộ vào quan hệCú phap: INSERT INTO Tên_Bang(Danh sach tên cột) ́ ̉ ́ ́ ́ ̣ ̉VALUES(Danh sach cac tri) [câuu hoi con]VD:chèn 1 hàng (‘020’,’Nguyễn trọng Nghĩa’,Bảo vệ’,’Hà nội’,’800.000’) vào R1INSERT 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 hoặc 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ệ RVD: DELETE FROM R1 WHERE ng_sinh. ’01-01-1935’; Trang 2NHẬP MÔN CSDL QUAN HỆ Soạn bởi bộ môn Công nghệ phần mềm Xoá bỏ tất cả các nhân viên ta dùng lệnh: DELETE FROM R1;Sửa dữ liệuCú phap: UPDATE [Tên_bang] ́ ̉SET [Tên_cột=Biểu thức,...] ̉[FROM Tên_Bang][WHERE btđk] - Các lệnh DCL: GRANT, REVOKE.GRANT Quyền truy cập ON Tên_bảng/view TO Tên_User [ with GRANToption]- Các quyền truy nhập CSDL gồm: +Read(đọc)+ SELECT(chọn)+ Write(ghi)+ INSERT(bổ sung)+ UPDATE(sửa đổi)+ DELETE,run.- Tên người sử dụng:Tên của một người ,một nhóm người hoặc danh sách ng ườipublic:cho tất c mọi người cùng được sử dụng.- Từ khoá :with grant OPTION:đm bo để người sử dụng có thể ti ếp t ục trao quy ền s ử d ụngcho người khác.VD:Cho phép SELECT,INSERT,UPDATE trên bảng R1 cho Nghĩa,KhôiGRANT S ...

Tài liệu được xem nhiều: