Bài 4:
NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Hệ thống bài cũ
Giới thiệu ngôn ngữ SQL
Giới thiệu Oracle SQL
Giới thiệu các nhóm ngôn ngữ của SQL
Tìm hiểu nhóm ngôn ngữ truy vấn dữ liệu với mệnh đề
SELECT
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
2
Mục tiêu bài học hôm nay
Tìm hiểu câu lệnh SELECT trên nhiều bảng
Tìm hiểu 3 nhóm lệnh SQL:
Nhóm định nghĩa dữ liệu (DDL): Gồm các lệnh tạo, thay đổi các
bảng dữ liệu(Create, Drop, Alter, …)
Nhóm thao tác dữ liệu (DML): Gồm các lệnh làm thay đổi dữ liệu
(Insert, Delete, Update,…) lưu trong các bảng
Nhóm điều khiển dữ liệu (DCL): Gồm các lệnh quản lý quyền truy
nhập vào dữ liệu và các bảng (Grant, Revoke, …)
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
3
Mệnh đề SELECT trên nhiều bảng
Khi truy vấn trên nhiều bảng, phải kết nối các bảng
Có hai kiểu kết nối:
Kết nối trong: mệnh đề WHERE chỉ ra các trường khóa của các
bảng cần kết nối phải như nhau hoặc dùng từ khóa JOIN trong
mệnh đề FROM
Kết nối ngoài: sử dụng từ khóa LEFT/RIGHT OUTER JOIN trong
mệnh đề FROM
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
4
Kết nối trong
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
5
Kết nối ngoài
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
6
So sánh kết quả hai kiểu kết nối
Kết nối trong trả về 106 bộ dữ liệu
Kết nối ngoài trả về 107 bộ dữ liệu
Giải thích:
Kết nối trong chỉ trả về kết quả khi tìm được DEPARTMENT_ID
tương ứng của nhân viên trong bảng DEPARTMENT
Kết nối ngoài trả về kết quả ngay cả khi không tìm được
DEPARTMENT_ID của nhân viên trong bảng DEPARTMENT
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
7
Các hàm truy vấn nhóm (Aggregate
Functions)
Hàm truy vấn nhóm thực hiện trên một cột của bảng
Một số hàm nhóm như:
Tìm Max(column) - Tìm giá trị lớn nhất trong cột column
Min(column) - Tìm giá trị nhỏ nhất trong cột column
Avg(column) - Tìm giá trị trung bình của cột column
Count – Hàm đếm số bộ
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
8
Ví dụ: Hàm nhóm đơn giản
Tìm mức lương nhỏ nhất, lớn nhất, lương trung bình (được làm
tròn), và số bộ có trong bảng EMPLOYEES
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
9
Hàm nhóm cùng với mệnh đề GROUP BY
Tìm lương nhỏ nhất, lớn nhất, tiền lương trung bình cho các bộ
phận và đếm số lượng nhân viên trong từng bộ phận
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
10
Ngôn ngữ thao tác dữ liệu (DML)
Ngôn ngữ thao tác dữ liệu (DML – Data Manipulation
Language) gồm các truy vấn cho phép thêm, sửa, xóa
dữ liệu trong các bảng
Bao gồm các truy vấn bắt đầu bằng từ khóa:
INSERT INTO - thêm dữ liệu mới vào bảng
UPDATE - cập nhật/sửa đổi dữ liệu trong bảng
DELETE - xóa dữ liệu trong bảng
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
11
Thêm dữ liệu mới vào bảng
Cú pháp:
INSERT [INTO] TableName VALUES(val1,val2,…)
INSERT [INTO] TableName(column1,…,columnN) VALUES
(val1,…,valN)
Ví dụ:
INSERT INTO EMPLOYEES (EMPLOYEE_ID, FIRST_NAME, LAST_NAME,
EMAIL, PHONE_NUMBER, HIRE_DATE, JOB_ID, SALARY,
COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID)
VALUES (921, 'Werdna', 'Leppo', '
[email protected]', null, SYSDATE,
'IT_PROG', 15000, 0.0, 103, 60);
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
12
Thêm dữ liệu mới vào bảng
Chương trình thực hiện thêm dữ liệu và thông báo kết quả như sau:
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
13
Thêm dữ liệu mới vào bảng
Dòng dữ liệu mới được thêm vào trong bảng EMPLOYEES
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
14
Cập nhật dữ liệu trong bảng
Cú pháp:
UPDATE TableName
SET columnName= val
[WHERE condition];
Ví dụ:
UPDATE EMPLOYEES
SET PHONE_NUMBER = '301.555.1212'
WHERE EMPLOYEE_ID = 921;
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
15
Cập nhật dữ liệu trong bảng
Kết quả:
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
16
Xóa dữ liệu trong bảng
Cú pháp:
DELETE FROM TableName
[WHERE condition];
Có thể xóa toàn bộ nội dung bảng với cú pháp:
DELETE FROM TableName ;
Ví dụ:
DELETE FROM EMPLOYEES
WHERE EMPLOYEE_ID = 921;
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
17
Ngôn ngữ định nghĩa dữ liệu
Ngôn ngữ định nghĩa dữ liệu (DDL – Data Definition
Language) gồm các lệnh cho phép tạo ra, thay đổi hoặc
xóa các bảng
Chúng ta cũng có thể định nghĩa các khoá (key), chỉ
mục (index), chỉ định các liên kết giữa các bảng và thiết
lập các quan hệ ràng buộc giữa các bảng trong CSDL
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
18
Ngôn ngữ định nghĩa dữ liệu
Các lệnh:
CREATE TABLE: tạo một bảng mới trong CSDL
ALTER TABLE: thay đổi cấu trúc của một bảng trong CSDL
CREATE VIEW: tạo một View mới
CREATE INDEX: tạo chỉ mục ( khóa để tìm kiếm)
DROP INDEX: xóa chỉ mục đã được tạo
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
19
Lệnh CREATE TABLE
CREATE TABLE table_name (
column_name1
data_type[option],,
column_name2 data_type[option],,
.......);
Trongđó:
table_name là tên bảng cần tạo,
column_name là tên các trường cần tạo,
data_type là kiểu dữ liệu tươngứng.
option là một số ràng buộc như giá trị mặc định, not null,…
Slide 4 - Ngôn ngữ truy vấn có cấu trúc (SQL)
20