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 đủ
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:
bai_giang_co_so_du_lieu_bai_5_ngon_ngu_csdl_sql.pdf

