Tải bản đầy đủ (.doc) (7 trang)

Tổng quan về SQL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (80.45 KB, 7 trang )

Tổng quan về ngôn ngữ sql
I_Giới thiệu chung về SQL
1>.SQL là gì?
-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. Nhng 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..
SQL đã đợc viện tiêu chuẩn quốc gia Mỹ (ANSI)và tổ chức
tiêu chuẩn quốc tế (ISO) chấp nhận nh một ngôn ngữ chuẩn
cho CSDL quan hệ .Nhng cho đến nay chuẩn này cha đa ra đủ
100%.Nên các SQL nhúng trong các ngôn ngữ lập trình khác


nhau đã đợc bổ xung mở rộng cho SQL chuẩn cho phù hợp với
các ứng dụng của mình.Do vậy có sự khác nhau rõ ràng giã
các SQL.
3>.Đặc điểm của SQL và đối t ợng làm việc:
a>Đặc điểm:
-SQL là ngôn ngữ tựa tiếng Anh.
-SQL là ngôn ngữ phi thủ tục,Nó không yêu cầu ta cách thức
truy nhập CSDL nh thế nào Tất cả các thông báo của
SQL đều rất dễ sử dụng và ít khả năng mắc lỗi .
-SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp
DL
+Chèn,cập nhật ,xoá các hàng trong một quan hệ
+Tạo,sửa đổi,thêm và xoá các đối tợng trong của CSDL.
+Điều khiển việc truy nhập tới cơ sở dữ liệu và các
đối tợng của CSDL để đảm
Phạm Minh Quý - Database 1
1
Tổng quan về ngôn ngữ sql
bảo tính bảo mật của cơ sở DL
+đảm bảo tính nhất quán và sự ràng buộc của CSDL.
-Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm
vững đợc các cấu trúc CSDL của mình.
b>Đối tợng làm việc của SQL:
-Là các bảng ( tổng quát là các quan hệ )dữ liệu hai
chiêù .Các bảng này bao gồm một hoặc nhiều cột và hàng.Các
cột gọi là các trờng ,các hàng gọi là các bản ghi.Cột với
tên gọi và kiểu dữ liệu (kiểu dl của mỗi cột là duy
nhất)xác định tạo nên cấu trúc của bảng (Ta có thể dùng
lệnh Desc[ribe] TABLE-name để xem cấu trúc của bảng ,phần
tuỳ chọn[] có thể đợc bỏ trong Oracle).Khi bảng đã đợc tổ

chức hệ thống cho một mục đích nào đó có một CSDL
4>.Các kiểu dữ liệu cơ bản của SQL:
-Integer:Số nguyên:-2147483648 đến 2147483647
-Smallinteger:-32768 đến 32767
-Number(n,p):số thập phân độ dài tối đa là n kể cả p chữ số
thập phân(không tính dấu chấm).
-char (n):xâu có độ dàI cố định là n n<=255
-varchar(n):xâu có độ dàI biến đổi (0-:-n)
-long varchar :xâu có độ dài không cố định,độ dài có thể
thay đổi 4Kb-:-32Kb
-Date:Dữ liệu kiểu ngày.
II_Giới thiệu các tập lệnh cơ bản của SQL:
-Tập lệnh SELECT:Đây là lệnh thờng đợc dùng nhiều nhất
trong CSDL ,nó thờng đợc sử dụng để nhận dữ liệu từ CSDL.
-Tập lệnh INSERT,UPDATE,DELETE:các lệnh này thờng hay đợc
dùng để vào một hàng mới,sửa đổi hay xoá bỏ các hàng đã tồn
tại trong các quan hệ của CSDL.
-Tập lệnh CREATE,ALTER,DROP:Ba lệnh này dùng để tạo,thay
đổi,xoá bỏ bất kỳ cấu trúc dữ liệu nào của các quan hệ
nh bảng ,VIEW,INDEX..
-Tập lệnh GRANT,REVOKE:Hai lệnh này đợc sử dụng để cho phép
quyền truy nhập hay không cho phép quyền truy nhập tới CSDL
của Oracle và cấu trúc bên trong nó.
Trong phần giới thiệu các tập lệnh này ta dùng ba bảng quan
hệ sau làm ví dụ minh hoạ:
R1(Nhân viên) (#NV,Ho_tên,Nsinh,nghề nghiệp,Đìa chỉ,l-
ơng)
R2(Liên kết) (#NV,#MP)
R3(phong) (#Mp,Tên_phong,tel)
1>Lệnh SELECT:

*Mệnh đề SELECT tơng ứng với toán tử project(phép chiếu )
của đại số quan hệ.Nó đợc dùng để tạo danh sách các thuộc
Phạm Minh Quý - Database 2
2
Tổng quan về ngôn ngữ sql
tính mà ta mong muốn.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ệ.Nó là một khẳng định liên quan đến các thuộc tính của
quan hệ xuất hiện trong mệnh đề FROM:
-Một hỏi đáp cuả SELECT thờng có dạng:
SELECT [distinct]*/A1..An FROM r1..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ó 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 tong đơng với biểu diễn sau trong quan hệ:
A1..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
Các ví dụ sau này ta dùng R1,R2,R3 để thay cho các bảng
trên cho gọn
Có 4 toán tử hay đợc dùng với các kiểu dữ liệu.Trong mệnh
đề WHERE là:
In (not In)
Between..and..(not between..)
Like(not like)
Is null (not is Null).
Phạm Minh Quý - Database 3
3
Tổng quan về ngôn ngữ sql
+Toán tử In (not In):dùng để kiểm tra giá trị trong(không
nằm trong) một danh sách đợc chỉ ra.
Ví d ụ :đ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ó long>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ỉ
SELECT *FROM R1 Group by Đia_chỉ;
Phạm Minh Quý - Database 4
4
Tổng quan về ngôn ngữ sql
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
Phạm Minh Quý - Database 5

5

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×