Tổng quan về ngôn ngữ SQL

-SQL là viết tắt của Structure Query Language,nó là một công

cụ quản lý dữ liệu đ-ợc sử dụng phổ biến ở nhiều lĩnh vực

.Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ SQL nh-

Visual BASic,Oracle,Visual C.

Trong Oracle tất cả các ch-ơng trình và ng-ời sử dụng phải

sử dụng SQL để truy nhập vào dữ liệu trong CSDL của Oracle.

Các ch-ơng trình ứng dụng và các công cụ Oracle cho phép

ng-ời sử dụng truy nhập tới CSDL mà không cần sử dụng trực

tiếp SQL. Nh-ng những ứng dụng đó khi chạy phải sử dụng SQL.

2>.Lịch sử phát triển:

-SQL đ-ợc phát triển từ ngôn ngữ SEQUEL2 bởi IBM theo mô

hình Codd tại trung tâm nghiên cứu của IBM ở California ,vào

những năm 70 cho hệ thống QTCSDL lớn.

-Đầu tiên SQL đ-ợc sử dụng trong các ngôn ngữ quản lý CSDL

và chạy trên các máy đơn lẻ. Song do sự phát triển nhanh

chóng của nhu cầu xây dựng những CSDL lớn theo mô hình khách

chủ( trong mô hình này toàn bộ CSDL đ-ợc tập trung trên máy

chủ (Server)). Mọi thao tác xử lý dữ liệu đ-ợc thực hiện

trên máy chủ bằng các lệnh SQL máy trạm chỉ dùng để cập nhập

hoặc lấy thông tin từ máy chủ). Ngày nay trong các ngôn ngữ

lập trình bậc cao đều có sự trợ giúp của SQL. Nhất là trong

lĩnh vực phát triển của Internet ngôn ngữ SQL càng đóng vai

trò quan trọng hơn. Nó đ-ợc sử dụng để nhanh chóng tạo các

trang Web động.

pdf9 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 2070 | Lượt tải: 1download
Tóm tắt nội dung Tổng quan về ngôn ngữ SQL, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
a ra những ng-ời có đia_chỉ ở Hà nội và Hà tây. 
 SELECT * FROM R1 WHERE đia_chỉ in (‘Hà nội’,’Hà tây’); 
+Toán tử Between..and..(not ..) : kiểm tra giá trị nằm giữa 
(không nằm giữa) một phạm vi đ-ợc chỉ ra. 
VD :đ-a ra những ng-ời có l-ơng nằm trong khoảng (500.000-:-
1.000.000). 
 SELECT * FROM R1 WHERE l-ơng between 500.000 and 
1.000.000; 
+Toán tử like (not like):dùng để kiểm tra những giá trị 
giống (không giống) với giá tri sau like,th-ờng sử dụng với 
xâu ký tự và khi ta không biết chính xác giá trị cần tìm 
kiếm hoặc giá trị cần tìm kiếm giống một mẫu nào đó.Trong 
SQL người ta sử dụng ký hiệu % cho xâu con và ‘_’cho 1 ký tự 
bất kỳ. 
VD:Tìm những ng-ời có tên mà có ký tự đầu tiên bất kỳ,ký tự 
tiềp theo là OA và tiếp theo là dãy ký tự bất kỳ: 
 SELECT *FROM R1 WHERE hoten=’_OA%’; 
+Toán tử Is Null (not is Null):kiểm tra cho các giá trị 
rỗng (không rỗng); 
VD:Đ-a ra tất cả những nhân viên mà đã cập nhật địa chỉ 
 SELECT *FROM R1 WHERE Dia_chi Not Is Null; 
-Các hàm hay đ-ợc sử dụng trong mệnh đề SELECT: 
+AVG:tính giá trị trung bình của một hoặc nhiều tr-ờng bỏ 
qua các giá trị rỗng. 
VD:tính l-ơng TB của cơ quan: 
 SELECT AVG(l-ơng) FROM R1; 
+Count:đ-ợc dùng để đếm các bộ (hàng) 
VD:ĐIểm tổng số bản ghi từ R1 có l-ong>500.000 
 SELECT count(*) FROM R1 WHERE l-ơng>500.000 
+Hàm Max:tìm giá trị lớn nhất của biểu thức: 
 VD:tìm ng-ời có l-ơng lớn nhát trong R1 có địa chỉ ở Hà 
Tây 
 SELECT Max(lương) FROM R1 WHERE địa_chỉ=’Hà_tây’; 
+Hàm Min:tìm giá trị nhỏ nhất của biểu thức: 
 VD:tìm ng-ời có l-ơng nhỏ nhát trong R1 có địa chỉ ở Hà 
Tây 
 SELECT Min(l-ơng) FROM R1 WHERE địa_chỉ=’Hà_tây’; 
+Hàm Sum:tính tổng giá trị bỏ qua giá trị rỗng. 
 VD:Tính tổng l-ơngcủa cơ quan 
 SELECT Sum(l-ơng) FROM R1; 
-NgoàI 3 mệnh đề chính trên ta còn có thể : 
+Tìm kiếm theo nhóm nhờ mệnh đề GROUP BYđ-ợc sử dụngđể phân 
chia các bộ thành các nhóm nhỏ . 
VD:Đ-a ra danh sách các nhân viên theo nhóm địa chỉ 
Tổng quan về ngôn ngữ sql 
Phạm Minh Quý - Database 
5 
5 
 SELECT *FROM R1 Group by Đia_chỉ; 
Th-ờng đi với mệnh đề Group by là mệnh đề Having by sử dụng 
để chỉ ra những hạn chế của các nhóm đ-ợc hiển thị.Chú ý 
rằng mệnh đề Having by chỉ đi với Group by và điều kiện của 
nó chỉ tác động đến từng nhóm bản ghi đ-ợc chỉ ra ở mệnh đề 
Group by chứ không tác động đến toàn bảng. 
VD: Đ-a ra danh sách các nhóm nhân viên cùng chức vụ và có 
l-ơng >500.000 
 SELECT * FROM R1 
 Group by chức_vụ 
Having by l-ơng>500.000 
-Sắp xếp theo một hoặc nhiều tr-ờng ta dùng mệnh đề 
 ORDER BY (colum1/[ASc|Desc] ..) 
 +ASc sắp xếp theo chiều tăng (ngầm định) 
 +Desc sắp xếp theo chiều giảm 
 VD Sắp xếp nhân viên theo chiều giảm theo l-ơng 
,nếu cùng mức l-ơng thì theo sắp xếp theo chiều xếp theo 
chiều tăng ho_tên 
 SELECT * FROM R1 ORDER BY 
l-ơng/Desc,ho_tên; 
2>Nhóm lệnh INSERT,UPDATE,DELETE: 
*INSERT: 
 Dùng để chèn dl vào một quan hệ chúng ta có thể tạo ra 
1 bộ để chèn vào hoặc một tập các bộ từ hỏi đáp SELECT để 
chèn vào 
Cú pháp của lệnh: INSERT INTO R[A1..An] VALUES(vl1..) 
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); 
*UPDATE 
Dùng để sử đổi giá trị của một hoăc nhiều bộ đã tồn 
tại trong quan hệ cú pháp cuả lệnh 
 UPDATE R SET..[WHERE p] 
VD:-l-ơng của tất cả các nhân viên của cơ quan cùng tăng 5% 
 UPDATE R1 SET l-ơng=l-ơng*1,05 
 -chỉ tăng l-ơng của những ng-ời có l-ơng<500.000 và 
tăng 10% 
 UPDATE R1 SET l-ơng=l-ơng*1,1 WHERE l-ơng<500.000 
*DELETE: 
Dùng để xoá bỏ 1 hoặc nhiều bộ trong quan hệ 
 Cú pháp: 
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 
Tổng quan về ngôn ngữ sql 
Phạm Minh Quý - Database 
6 
6 
 DELETE FROM R1; 
Chú ý:lệnh DELETE chỉ thao tác với 1 quan hệ.Muốn huỷ các bộ 
từ nhiều quan hệ ta dùng DELETE cho mỗi quan hệ.Lệnh DELETE 
chỉ đánh dấu các bản ghi chứ ch-a thực sự xoá hẳn ,ta có thể 
khôi phục lại đ-ợc .Để xoá hẳn ta dung lệnh COMMIT ,khi đã 
ra lệnh này ta không thể khôi phục lại đ-ợc nữa .Khi ch-a ra 
lệnh COMMIT ta có thể khôi phục lại bằng cách dùng lệnh 
ROLLBACK. 
3>Nhóm lệnh 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ơ bản để 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êụ 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 
ket ,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; 
*CREATE VIEW: 
-VIEWs giống nh- những window mà thông qua những window này 
dữ liệu có thể đ-ợc xem hoặc thay đổi. 
Nó có thể đ-ợc tạo ra dựa trên một hay nhiều bảng trong 
CSDL.Nó là một bảng ảo không tồn tại thực sự trong 
CSDL.Nh-ng nó có thể đ-ợc truy nhập nh- là các bảng thông 
th-ờng.Ta có thể nhận đ-ợc các hàng từ VIEW với các lệnh 
SELECT và trong hầu hết các tr-ờng hợp của việc 
UPDATE,INSERT,DELETE hàng từ CSDL thông qua VIEW.Có một vàI 
tr-ờng hợp không cho phép UPDATE từ CSDL. 
Tổng quan về ngôn ngữ sql 
Phạm Minh Quý - Database 
7 
7 
-Việc sử dụng VIEW có rất nhiều hữu ích trong việc: 
+Hạn chế việc truy nhập CSDL .SELECT từ một VIEW có thể 
hiển thị phần hạn chế của CSDL một cách nhanh chóng. 
+Cho phép ng-ời dùng tạo ra những hỏi đáp đơn giản để 
nhận đ-ợc kết quả từ những hỏi đáp phức tạp mà không cần 
biết cách thức nối các bảng nh- thế nào. 
+Cung cấp các phần tử dữ liệu độc lập cho ng-ời sử dụng 
và các ch-ong trình viết ứng dụng dẫn đến đảm bảo cho việc 
bảo mật dữ liệu ,che dấu dữ liệu nào đó khỏi một user nào 
đó. 
Cú pháp : CREATE [or REPLACE/FORCE] VIEW view_name [colum..] 
 AS Query,[with check option] 
-OR REPLACE:cho phép một VIEW đ-ợc tạo ra thậm chí nếu một 
VIEW đã tồn tại có cùng tên nh- vậy.Do đó nó sẽ thay thế 
VIEW cũ. 
-FORCE:cho phép tạo ra VIEW thậm chí các bảng cơ sở ch-a tồn 
tại nh-ng các bảng phải tồn tại tr-ớc khi VIEW đó đ-ợc sử 
dụng 
 -Mệnh đề WITH CHECK OPTION:chỉ ra rằng việc INSERT,UPDATE 
thực hiện thông qua VIEW là không cho phép. 
VD: Tạo VIEW có tên NV_phong từ R1,R2,R3 gồm các tr-ờng 
Họ_tên,phòng 
 CREATE VIEW NV_phong AS SELECT hotên,tênphong FROM 
R1,R2,R3 WHERE (R1.#NV=R2.#NV)and (R2.#MP=R3.#MP) with check 
option; 
*CREATE INDEX 
 Bảng chỉ số là một đối t-ợng đặc biệt đ-ợc tạo ra để 
cung cấp cho việc truy nhập tới bảng trong CSDL một cách 
nhanh chóng 
Cú pháp: 
CREATE INDEX index_name ON table(colum) 
VD: CREATE INDEX Nhân _ vien_id ON NHAN_VIEN (Họ_tên); 
b> Lệnh ALTER 
-Dùng để hoặc là thêm một hay nhiều tr-ờng vào bảng 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ộ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); 
Tổng quan về ngôn ngữ sql 
Phạm Minh Quý - Database 
8 
8 
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 bảng cơ sở 
thì tất cả các VIEW,INDEX đ-ợc định nghĩa trên bảng đó sẽ 
bị xoá bỏ . 
Cú phap: 
DROP TABLE/VIEW/INDEX Name; 
VD:Xóa bỏ Nhân_viên_id; 
 DROP INDEX Nhân_viên_id; 
4>Tập lệnh GRANT,REVOKE: 
*Để kiểm tra quyền truy nhập CSDL dùng lệnh GRANT 
Cú pháp: 
 GRANT privileges ON object TO (user/public)[WITH 
GRANT OPTION] 
-các quyền (privileges) truy nhập CSDL: 
 +Read(đọc) 
+SELECT(chọn) 
+write(ghi) 
+INSERT(bổ sung) 
+UPDATE(sửa đổi) 
+DELETE,run. 
-Đối t-ợng (object) :là tên các quan hệ hoặc tên các ch-ơng 
trình. 
-Tên nguời sử dụng:Tên của một ng-ời ,một nhóm ng-ời hoặc 
danh sách ng-ời 
public:cho tất cả mọi ng-ời cùng đ-ợc sử dụng. 
-Từ khoá :with grant OPTION:đảm bảo để ng-ời sử dụng có thể 
tiếp tục trao quyền sử dụng cho ng-ời khác. 
VD:cho phép SELECT,INSERT,UPDATE trên bảng R1 cho Nghĩa,Khôi 
GRANT SELECT,INSERT,UPDATE ON R1 TO Nghĩa,Khôi with grant 
option; 
Nghĩa,Khôi có thể trao quyền trên cho ng-ời khác. 
*Để huỷ bỏ quyền truy nhập 
Cú pháp:REVOKE privileges ON object FROM user 
VD:để huỷ bỏ quyền UPDATE từ Nghĩa: 
 REVOKE UPDATE ON R1 FROM Nghĩa; 
Lời kết thúc: 
 Trong bài này tôi muốn trình bày với các bạn về ngôn ngữ 
SQL chuẩn để các nhóm khác có thể tham khảo .Nh-ng do tài 
liệu vê SQL chuẩn không có ,mà tôi chỉ tham khảo các tài 
liệu về SQL sử dụng cho truy nhập CSDL của ORACLE cho nên 
trong khi trình bày có khi " Lạm dụng" về SQL sử dụng trong 
ORACLE . Rất mong các bạn góp ý kiến! 
Tổng quan về ngôn ngữ sql 
Phạm Minh Quý - Database 
9 
9 
Ng-ời trình bầy : Phạm Minh Quý_K40B 
Tài liệu tham khảo : 
 +INTRODUCTION TO ORACLE : SQL 
 PL/SQL AND SQL*PLUS 
 +UNDERSTANDING ORACLE 

File đính kèm:

  • pdfTongQuanSQL.pdf
Tài liệu liên quan