Professional Documents
Culture Documents
Chuong 2 - Ngon Ngu Truy Van Co Cau Truc
Chuong 2 - Ngon Ngu Truy Van Co Cau Truc
1
Nội dung
1. Giới thiệu.
2. Ngôn ngữ T-SQL.
3. Ngôn ngữ thao tác dữ liệu
4. Ngôn ngữ định nghĩa dữ liệu
2
Giới thiệu ngôn ngữ truy vấn có cấu trúc
Structured Query Language – SQL
Tạo cơ sở dữ liệu
Thao tác trên dữ liệu: lưu trữ dữ liệu, sửa hoặc xóa dữ
liệu
Được ANSI (American National Standards Institute –
Viện Tiêu Chuẩn Quốc Gia Hoa Kỳ) và ISO
(International Organization for Standardization – tổ
chức chuẩn hoác quốc tế) chuẩn hóa.
Hầu hết các hệ quản trị cơ sở dữ liệu quan hện sử
dụng (PL/SQL – Oracle, MS SQL Server, …)
3
Giới thiệu ngôn ngữ truy vấn có cấu trúc
Có 4 nhóm lệnh SQL
Truy vấn dữ liệu (Data Query Language - DQL): các
lệnh lựa chọn để lấy thông tin mà không làm thay đổi
dữ liệu trong các bảng (select) .
Định nghĩa dữ liệu (Data Definition Language - DDL):
Các lệnh tạp hoặc thay đổi các bảng dữ liệu (create,
drop, alter, …)
Thao tác dữ liệu (Data Manipulation language - DML):
các lệnh làm thay đổi dữ liệu trong các bảng (insert,
delete, update, …).
Điều khiển dữ liệu (Data Control Language - DCL):
quản lý quyền truy cập dữ liệu (grant, revoke, …).
4
Giới thiệu ngôn ngữ truy vấn có cấu trúc
Tên ban đầu là SEQUEL (Structured English Query
Language) bời IBM năm 1982.
Năm 1986: ANSI công bố chuẩn SQL-86
Năm 1987: ISO phê chuẩn SQL-87
Đặc điểm của SQL:
Không phân biệt chữ hoa và chữ thường
5
Ngôn ngữ T-SQL
Transact-SQL – T-SQL.
Là một hệ mở rộng của SQL được Microsoft sử dụng.
Mang lại khả năng kiểm soát cao cho người lập trình.
như các phần tử lập trình thủ tục và một biến cục bộ
để cung cấp khả năng kiểm soát linh hoạt hơn về cách
ứng dụng chạy.
T-SQL cho phép chèn nhiều hàng vào một bảng bằng
6
Ngôn ngữ T-SQL
Biến trong T-SQL.
Biến cục bộ:
Được sử dụng để
liệu
7
Ngôn ngữ T-SQL
Biến trong T-SQL.
Biến toàn cục:
Có thể truy vấn giá trị của biến này bằng lệnh select.
8
Ngôn ngữ T-SQL
Kiểu dữ liệu trong T-SQL.
9
Ngôn ngữ T-SQL
Kiểu dữ liệu trong T-SQL.
10
Ngôn ngữ T-SQL
Kiểu dữ liệu trong T-SQL.
11
Ngôn ngữ T-SQL
Kiểu dữ liệu trong T-SQL.
12
Ngôn ngữ T-SQL
Các hàm xử lý số trong T-SQL:
SUM: Trả về tổng của tất cả các giá trị của các dòng
ALL: là giá trị mặc định, có tác dụng với tất cả các giá trị.
DISTINCT: Cho biết AVG chỉ làm việc với một giá trị duy
nhất của trường được chỉ ra, bất kể các giá trị này xuất hiện
bao nhiêu lần.
Biểu thức: có thể là bất kỳ biểu thức SQL Server nào,
thường là tên trường dữ liệu.
Ví dụ: SELECT AVG(Amount) AS ‘Average Amount’
FROM Invoice; 14
Ngôn ngữ T-SQL
Các hàm xử lý số trong T-SQL:
COUNT: Đếm tất cả các giá trị khác NULL của các dòng dữ
Cú pháp:
15
Ngôn ngữ T-SQL
Các hàm xử lý số trong T-SQL:
MAX: trả về giá trị lớn nhất trong biểu thức. Có thể
được dùng với các kiểu dữ liệu số, chuỗi, và ngày
tháng.
Cú pháp:
16
Ngôn ngữ T-SQL
Các hàm xử lý số trong T-SQL:
MIN: trả về giá trị nhỏ nhất trong biểu thức. Hàm này có
thể được dùng với các trường số, chuỗi và ngày tháng.
Cú pháp:
17
Ngôn ngữ T-SQL
Các hàm xử lý chuỗi trong T-SQL:
UPPER(chuỗi): chuyển đổi chuỗi sang kiểu chữ hoa
LOWER(chuỗi): chuyển đổi chuỗi sang kiểu chữ thường
LEN(chuỗi): trả về chiều dài của chuỗi;
LTRIM(chuỗi): loại bỏ khoảng trắng bên trái của chuỗi.
RTRIM(chuỗi): loại bỏ khoảng trắng bên phải của chuỗi
LEFT(chuỗi, n): trả về chuỗi bên trái tính từ đầu cho
đến vị trí thứ n.
RIGHT(chuỗi, n): trả về chuỗi bên phải tính từ cuối cho
đến vị trí thứ n.
18
Ngôn ngữ T-SQL
Các hàm toán học trong T-SQL:
SQUARE(số): trả về bình phương của một biểu thức
SQRT(số): trả về căn bậc hai của một biểu thức
ROUND(số): trả về số làm tròn của một biểu thức;
Các hàm về thời gian trong T-SQL:
GETDATE(): trả về ngày tháng năm của hệ thống
DATEPART(): trả về một phần giá trị của một chuỗi
dạng ngày tháng đầy đủ.
DATEDIFF(): trả về số ngày trong khỏang thời gian
giữa ngày.
DAY(): trả về ngày thứ mấy trong tháng
… 19
Ngôn ngữ T-SQL
Các hàm chuyển đổi trong T-SQL:
CAST(số): trả về giá trị có kiểu dữ liệu theo định nghĩa
Ví dụ: Print cast(getDate() as varchar(11))
CONVERT(số): chuyển đổi giá trị có kiểu dữ liệu này
sang kiểu dữ liệu khác nếu cho phép.
Ví dụ: Print convert(int, ‘12’)
20
Ngôn ngữ T-SQL
Các toán tử trong T-SQL:
22
Ngôn ngữ thao tác dữ liệu
Câu lệnh INSERT: thêm dữ liệu mới vào một bảng
Cú pháp:
INSERT [INTO] <table_name> VALUES <values>
Ví dụ:
INSERT INTO jobs VALUES (‘Graphics Artist’, 25, 100)
Thêm dữ liệu từ một bảng vào một bảng khác
Cú pháp:
INSERT <table_name> SELECT <column list>
FROM <tablename2>
Ví dụ:
INSERT author_details SELECT authors.au_id,
authors.au_lname
FROM authors 23
Ngôn ngữ thao tác dữ liệu
Câu lệnh UPDATE: cập nhật dữ liệu trong một bảng
Cú pháp:
đổi.
Ví dụ:
UPDATE titles SET price=price+(25/100*price)
WHERE title_id=’TC7777’ 24
Ngôn ngữ thao tác dữ liệu
Câu lệnh DELETE: xoá một hàng từ một bảng
Cú pháp:
DELETE FROM <table_name> [WHERE <search_condition>]
<table_name> là tên của bảng chứa mẫu tin muốn
xoá.
WHERE được sử dụng để xác định điều kiện.
Ví dụ:
DELETE FROM pub_info WHERE pub_id=9999
25
Ngôn ngữ thao tác dữ liệu
Câu lệnh SELECT: chọn dữ liệu từ các bảng
Cú pháp:
SELECT <columnname(s)> FROM <tablename>;
<columnname(s)> là các cột, là thành phần kế tiếp
trong câu query.
FROM phải là từ kế tiếp trong câu query của chúng ta.
Ví dụ 1:
SELECT hosv, tensv
FROM sinhvien
26
Ngôn ngữ thao tác dữ liệu
Câu lệnh SELECT: chọn dữ liệu từ các bảng
Ví dụ 2:
SELECT hosv, tensv
FROM sinhvien WHERE masv=”ltt200603”;
Mệnh đề WHERE: xác định một điều kiện
Ví dụ 3:
SELECT masv, hosv, tensv
FROM sinhvien
GROUP BY masv;
Mệnh đề GROUP BY: được sử dụng khi kết quả của query
phải được nhóm dựa trên điều kiện
27
Ngôn ngữ thao tác dữ liệu
Câu lệnh SELECT: chọn dữ liệu từ các bảng
Ví dụ 4:
SELECT * FROM sinhvien
WHERE masv=”ltt200603”
ORDER BY hosv;
Mệnh đề ORDER BY: sắp xếp các hàng theo thứ tự
28
Ngôn ngữ định nghĩa dữ liệu
Câu lệnh tạo database – CREATE DATABASE:
Cú pháp:
29
Ngôn ngữ định nghĩa dữ liệu
Câu lệnh tạo bảng – CREATE TABLE:
Cú pháp:
Ví dụ:
30
Ngôn ngữ định nghĩa dữ liệu
Câu lệnh tạo bảng – CREATE TABLE:
Tạo khóa ngoại:
31
Ngôn ngữ định nghĩa dữ liệu
Câu lệnh tạo bảng – CREATE TABLE:
Tạo ràng buộc duy nhất:
32
Ngôn ngữ định nghĩa dữ liệu
Câu lệnh sửa bảng – ALTER TABLE:
Cú pháp:
34
Ngôn ngữ định nghĩa dữ liệu
Câu lệnh xóa bảng – DROP TABLE:
Cú pháp:
Ví dụ 1:
DROP TABLE Employee
35
Index – View
Index:
Một chỉ mục trên một thuộc tính A của bảng T sẽ giúp tăng tốc
quá trình tìm kiếm các giá trị cố định trên thuộc tính A
Khi ta khai báo khóa chính hay UNIQUE trên một hoặc nhiều
thuộc tính thì HQTCSDL tự động tạo chỉ mục trên các thuộc tính
đó
Khi lựa chọn chỉ mục cần xem xét tính cân bằng của các yếu tố
Hai yếu tố quan trọng cần xem xét
- Tạo chỉ mục trên một thuộc tính giúp tăng tốc quá trình truy
vấn có liên quan đến thuộc tính đó (tìm kiếm, phép kết, ,,,)
- Việc tạo chỉ mục sẽ khiến các thao tác thêm, sửa, xóa phức
tạp và tốn nhiều thời gian hơn.
36
Index – View
Index:
Tạo chỉ mục
Ví dụ
CREATE INDEX ID_PHG ON NHANVIEN (PHG)
37
Index – View
Index:
Xoá chỉ mục
Ví dụ
DROP INDEX ID_PHG ON NHANVIEN
DROP INDEX ID_PHANCONG ON PHANCONG
38
Index – View
View:
Là một đối tượng đặc biệt trong SQL, có một số đặc điểm:
- View là bảng ảo (không tồn tại vật lý)
- View được định nghĩa thông qua truy vấn
- View được truy vấn như một bảng bình thường
- Một số view cho phép thay đổi dữ liệu ngược vào bảng vật
lý
Sử dụng view nhằm:
- Tập trung trên dữ liệu mà người sử dụng quan tâm
- Giới hạn số lượng cột, dòng
- Dấu tên cột đối với người dùng
- Dễ dàng bảo mật, phân quyền
39
Index – View
View:
Tạo View
CREATE VIEW <Tên_view> [(Cột1 [,,,,)] AS <Câu
truy vấn>
Ví dụ
CREATE VIEW DS_NHANVIEN_DEAN ([Họ và tên],[Tên đề án], [Thời gian])
AS
SELECT HONV+ ‘ ’+ TENLOT+‘ ’ + TENNV, TENDA , THOIGIAN
FROM NHANVIEN A, PHANCONG B, DEAN C
WHERE MANV=MA_NVIEN AND SODA=MADA
40
Index – View
View:
Ví dụ
CREATE VIEW DS_NHANVIEN_DEAN AS
SELECT HONV+ ‘ ’+ TENLOT+‘ ’ + TENNV AS [Họ và tên],
TENDA AS [Tên đề án], THOIGIAN AS [Thời gian]
FROM NHANVIEN A, PHANCONG B, DEAN C
WHERE MANV=MA_NVIEN AND SODA=MADA
SELECT *
FROM DS_NHANVIEN_DEAN
41
Index – View
View:
CREATE VIEW NV_P5 AS
SELECT MANV, HONV, TENLOT, TENNV
FROM NHANVIEN
WHERE PHG=5
42
Index – View
View:
Có thể viết câu truy vấn dữ liệu từ khung nhìn và bảng
43
Index – View
View:
Sửa view
ALTER VIEW <Tên_view> [(Cột1 [,,,,)]
AS <Câu_lệnh_Select>
Ví dụ
ALTER VIEW DS_NHANVIEN_DEAN
AS
SELECT TOP (100) HONV+ ‘ ’+ TENLOT+‘ ’ + TENNV AS [Họ và tên],
TENDA AS [Tên đề án], THOIGIAN AS [Thời gian]
FROM NHANVIEN A, PHANCONG B, DEAN C
WHERE MANV=MA_NVIEN AND SODA=MADA
ORDER BY [Tên đề án]
44
Index – View
View:
Xóa view
Ví dụ
DROP VIEW DS_NHANVIEN_DEAN
45