Bài giảng Cơ sở dữ liệu - Bài 5: Ngôn ngữ CSDL - SQL

Bài 5. Ngô n ngữ CSDL – SQL  
Để người sử dụng có thể giao tiếp được  
với CSDL phải có một hệ thống ngôn ngữ  
giao tiếp bao gồm:  
• Ngôn ngữ định nghĩa dữ liệu .  
• Ngôn ngữ thao tác dữ liệu  
• Ngôn ngữ truy vấn dữ liệu  
• Ngôn ngữ quản lý dữ liệu  
Mỗi hệ quản trị CSDL đều có cách  
cài đặt các ngôn ngữ khác nhau  
nhưng đều dựa trên chuẩn của ngôn  
ngữ truy vấn có cấu trúc SQL (  
Structured- Query Language)  
I. Ngô n ngữ định nghĩa dữ liệu SQL  
Là ngôn ngữ mô tả dữ liệu, cho phép  
người dùng định nghĩa cấu trúc CSDL, sửa  
đổi cấu trúc, liên kết các thành phần trong  
CSDL  
Ngoài ra , nó còn cung cấp các khả năng  
khác như : định nghĩa khung nhìn, kiểm  
soát tính toàn vẹn dữ liệu, cấp phát quyền  
truy cập, …  
Quy ước :  
– Tên tên bảng, thuộc tính đối tượng không chứa dấu  
cách, không trùng tên với nhau.  
– Các phạm trù cú pháp bắt buộc phải điền được đặt  
trong cặp dấu < >  
– Các thành phần tuỳ chọn được viết trong cặp dấu [ ]  
– Mỗi câu lệnh SQL có thể được viết trên nhiều dòng và  
được kết thúc bằng dấu ;  
Cá c kiểu dữ liệu đơn giản trong  
á
SQL  
Kiểu dữ liệu số: integer , float,  
decimal(n,p)- số thực với độ dài tối đa là  
n chữ số với p chữ số thập phân ,  
number(n)- kiểu số có độ dài tối đa là n  
Kiểu dữ liệu chuỗi :  
-varchar (n) - chuỗi có độ dài biến đổi  
từ 0 đến n  
- Char (n): xâu kí tự có độ dài cố định n (  
n<=255)  
Kiểu dữ liệu ngày tháng: date, time  
Kiểu luận lí : boolean  
II. Cá c câ u lệnh tạo cấu trúc  
á â  
bảng  
1. Lệnh tạo bảng tổng quát  
CREATE TABLE <Tên_bảng>  
( <tên_ cột_1> <loại dữ_liệu_1> <  
kích thước 1>,  
………………….  
<tên_ cột_n> <loại dữ_liệu_n> < kích  
thước n>,  
);  
Ví dụ :  
í
Tạo bảng SINH_VIEN có cá c thuộc tí nh:  
á
í
- mã sinh viên ( kiểu số có độ dài <5)  
ã
- họ tên ( kiểu xâ u kí tự có độ dài <25)  
â í  
- ngày sinh (kiểu date)  
- giới tí nh ( kiểu xâ u có độ dài <3)  
í
â
- địa chỉ ( kiểu xâ u có độ dài < 30 )  
â
- điểm TB ( kiểu số thực có độ dài <4, trong đó có  
2 chữ số sau phần thập phâ n)  
â
CREATE TABLE SINH_VIEN  
( ma_sv NUMBER(5) ,  
ho_ten VARCHAR(25),  
ng_sinh DATE,  
gioi_tinh VARCHAR (3),  
đia_chi VARCHAR (30),  
diem_tb DECIMAL (4,2),  
);  
2. Lệnh tạo bảng với một số điều kiện ràng  
buộc  
CREATE TABLE <Tên_bảng>  
( <tên_ cột_1> <loại dữ_liệu_1> < kích thước 1>,  
………………….  
<tên_ cột_n> <loại dữ_liệu_n> < kích thước n>,  
[ CONSTRAINT < tên ràng buộc toàn vẹn>]| NULL|  
NOT NULL|  
Primary Key ( Khoá chính )  
[ Unique ( khoá )]  
[Foreign Key (Khoá _ ngoài) References Tên_bảng]  
[ Check <Điều_ kiện_ràng_buộc>]  
);  
Trong đó :  
NOT NULL : chỉ rằng cột không nhận giá trị rỗng.  
Ngầm định là Null. Thuộc tính khoá ngầm định là Not  
Null.  
COSNTRAINT< tên các ràng buộc toàn vẹn> :  
khai báo các ràng buộc toàn vẹn của CSDL.  
Primary Key ( Khoá chính): Khai báo khoá chính  
của mảng  
Unique ( Khoá ) : Khai báo các khoá khác nếu có  
Foreign Key Khoá_ ngoài References Tên_  
bảng : Khai báo các khoá ngoài của bảng  
Check Điều_kiện_ràng_buộc : Khai báo các ràng  
buộc dữ liệu .  
Ví dụ :  
í
Tạo bảng SINH_VIEN có :  
- khoá chí nh là thuộc tí nh mã sinh viên ( kiểu  
á í í ã  
số)  
- họ tên ( kiểu xâ u kí tự có độ dài <=25) khô ng  
â í  
được để trống,  
- ngày sinh (kiểu date)  
- giới tí nh ( kiểu xâ u có độ dài <=3, mặc định là  
í
â
'Nam')  
- mã lớp là một khoá ngoài, mã lớp thuộc bảng  
ã
á
ã
LOP.  
- điểm TB ( kiểu số thực có độ dài <=4)  
Câ u lệnh :  
â
CREATE TABLE SINH_VIEN  
( ma_sv NUMBER(5) PRIMARY KEY,  
ho_ten VARCHAR(25) NOT NULL,  
ng_sinh DATE,  
gioi_tinh VARCHAR (3) DEFAULT ' Nam',  
ma_lop CHAR (3) ,  
diem_tb DECIMAL (4,2),  
FOREIGN KEY ma_lop REFERENCES LOP  
);  
Hoặc :  
CREATE TABLE SINH_VIEN  
( ma_sv NUMBER(5) ,  
ho_ten VARCHAR(25) NOT NULL,  
ng_sinh DATE,  
gioi_tinh VARCHAR (3) DEFAULT ' Nam',  
ma_lop CHAR (3) ,  
diem_tb DECIMAL (4,2),  
PRIMARY KEY ( ma_sv),  
FOREIGN KEY ma_lop REFERENCES LOP  
);  
3. Bổ sung -xoá một cột trong bảng  
á
a. Bổ sung một cột :  
ALTER TABLE < tên bảng>  
ADD <tên cột> < kiểu dữ liệu > <  
kích thước>;  
VD : Thêm cột số điện thoại vào bảng  
SINH_VIEN ở trên.  
ALTER TABLE SINH_VIEN  
ADD dien_thoai NUMBER(10);  
a.Xoá một cột :  
ALTER TABLE < tên bảng> DROP <tên  
cột> ;  
VD : Xoá cột điểm TB trong bảng SINH_VIEN  
ở trên.  
ALTER TABLE SINH_VIEN DROP  
diem_tb;  
4. Xoá một bảng khỏi CSDL  
á
DROP TABLE < tên bảng>;  
VD : Xoá bảng SINH_VIEN trong CSDL  
DROP TABLE SINH_VIEN;  
Khi đó toàn bộ thông tin về bảng SINH_VIEN(  
gồm cả lược đồ và các bản ghi ) đều bị xoá, khác  
với lệnh  
DELETE FROM SINH_VIEN ;  
chỉ xoá các bản ghi trong bảng, vẫn giữ lại cấu  
trúc (lược đồ ) của bảng  
III. Cá c câ u lệnh truy vấn  
á â  
1. Truy vấn theo câu hỏi đơn giản  
Cấu trúc cơ sở của một biểu thức hỏi ( còn gọi là  
biểu thức truy vấn) SQL gồm :  
SELECT [ DISTINCT | ALL] {* | <cột> AS [<tên  
mới>],..}  
FROM < tên bảng> [ < bí danh >],...  
[WHERE < điều kiện chọn>]  
[GROUP BY < ds tên cột>] [HAVING <điều kiện>]  
[ORDER BY < ds cột> ];  
Trong đó :  
- Từ khoá DISTINCT : để loại bỏ sự trùng lặp ( các bộ trùng  
lặp chỉ giữ lại một bộ)  
- < biểu thức cột>: là tên của một cột hoặc của biểu thức  
- < tên bảng >: là tên của một bảng trong CSDL hay một khung  
nhìn mà ta có thể truy cập vào  
- GROUP BY : dùng để gộp nhóm các bộ cùng giá trị tương ứng  
ở các cột xuất hiện trong ds tên cột.  
- HAVING: dùng để lọc các nhóm thoả điều kiện  
- ORDER BY : quy định thứ tự trong các cột trả ra gồm : ASC  
( tăng dần) và DESC ( giảm dần). Mặc định là ASC  
Ví dụ 1:  
í
Tìm tên các dự án và mã các phòng  
quản lý dự án tương ứng  
SELECT ten_da, ma_p  
FROM DU_AN;  
Kết quả tra ra :  
Ten_da  
Ma_p  
Phần mềm A  
Mạng B  
Giáo trình điện tử  
P2  
P3  
P1  
Chú ý :  
a . Muốn hiển thị tất cả cá c cột trong bảng, ta có  
á
thể dùng dấu * để thay thế  
Ví dụ 2. Cho biết thông tin về nhân viên trong  
công ty .  
C1 : SELECT ma_nv, ho_ten, ng_sinh, gioi_tinh,  
ma_p, luong  
FROM NHAN_VIEN;  
C2: SELECT *  
FROM NHAN_VIEN ;  
b. Trong bảng kết quả, nếu muốn ta  
có thể đặt tên mới cho cột sau từ khoá As  
á
Ví dụ3 : Cho biết tên và lương mới của mỗi nhân  
viên biết họ được tăng 10% .  
Câu lệnh :  
C1:  
SELECT ho_ten, luong + luong*0.1  
FROM NHAN_VIEN;  
C2:  
SELECT ho_ten, luong+luong*0.1 AS  
luong_moi  
FROM NHAN_VIEN;  
Tải về để xem bản đầy đủ
pdf 49 trang Mãnh Khiết 12/01/2024 8161 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu - Bài 5: Ngôn ngữ CSDL - SQL", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_bai_5_ngon_ngu_csdl_sql.pdf