Chương 2. Câu lệnh SQL
2- 1/46
Chương 2 CÂU LỆNH SQL
Lý thuyết: 4t
Thực hành: 4t
Chương 2. Câu lệnh SQL
2- 2/46
MỤC TIÊU
Viết được cú pháp lệnh SELECT.
Câu lệnh Select có điều kiện và sắp xếp dữ liệu.
Viết được câu lệnh select lấy dữ liệu từ nhiều bảng.
Áp dụng câu lệnh select giải quyết bài toán cụ thể.
Đánh giá và so sánh câu lệnh select với cách lọc dữ
liệu trong Excel.
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 3/46
2.1 Giới thiệu
Chiết xuất dữ liệu từ cơ sở dữ liệu
câu lệnh SELECT
Giới hạn dữ liệu hiển thị sau khi truy vấn
Môi trường làm việc của iSQL*Plus
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 4/46
2.2 Câu lệnh SELECT cơ bản
truy xuất dữ liệu từ một hay nhiều bảng, khung nhìn
Cú pháp
Câu lệnh SQL
SELECT *|[DISTINCT] column|expression [alias],
FROM table;
Trong đó:
* Lấy tất các các cột trong bảng
DISTINCT Loại bỏ sự trùng lặp các dòng dữ liệu
FROM table Bắt buộc phải có
Chương 2. Câu lệnh SQL
2- 5/46
2.2 Câu lệnh SELECT cơ bản
Ý nghĩa
Chọn lọc những mẫu tin theo những cột quy định
(column) hay những biểu thức (expression) cho cột
đó.
Ví dụ:
SELECT *
FROM Emp;
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 6/46
2.2 Câu lệnh SELECT cơ bản
Chọn tất cả các cột
SELECT * FROM Dept;
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 7/46
2.2 Câu lệnh SELECT cơ bản
Chọn cột chỉ định
SELECT DeptId DEPARTMENT_ID,
DeptName DEPARTMENT_NAME
FROM Dept;
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 8/46
2.3 Viết câu lệnh SQL
Quy tắc viết lệnh
không phân biệt chữ viết hoa hay thường.
một câu lệnh có thể trên nhiều dòng.
từ khoá không được viết tắt, nhiều dòng.
sử dụng các các phép toán: +, -, \, *, để
biểu diễn giá trị trong câu lệnh.
kết thúc lệnh bởi dấu chấm phẩy (;)
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 9/46
2.3 Viết câu lệnh SQL
Các thành phần trong câu lệnh
Biểu thức toán học
Ví dụ:
SELECT Name, Sal *12 FROM Emp;
Tiêu đề của cột (column alias)
Ví dụ: (ANUAL chính là column alias)
SELECT Name, Sal*12 ANNUAL FROM Emp;
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 10/46
2.3 Viết câu lệnh SQL
Các thành phần trong câu lệnh
Ghép tiếp các cột dữ liệu
Ví dụ
SELECT No||Name EmpLoyee FROM Emp;
Ghép tiếp chuỗi ký tự
Ví dụ:
SELECT Name || ‘WORK IN’ || DeptNo FROM Emp;
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 11/46
2.3 Viết câu lệnh SQL
Các thành phần trong câu lệnh
Loại bỏ giá trị dữ liệu trùng lặp
Ví dụ
SELECT DISTINCT DeptNo FROM Dept;
Giá trị rỗng (NULL)
cột chưa được gán giá trị
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 12/46
2.3 Viết câu lệnh SQL
Hàm NVL
NVL (Expr1, Expr2);
Thay thế một giá trị NULL bởi một giá trị khác NULL
Nếu Expr1 là giá trị NULL thì NVL trả về Expr2
Nếu Expr1 khác NULL thì NVL trả về Expr1
Ví dụ:
SELECT Sal*12 + NVL(comm, 0) ANUAL FROM Emp;
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 13/46
2.4 Tương tác giữa SQL và iSQL*Plus
SQL*Plus cho phép tương tác trực tiếp với Oracle
Server thông qua các câu lệnh SQL và PL/SQL
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 14/46
2.4 Tương tác giữa SQL và iSQL*Plus
Khác biệt giữa lệnh SQL và SQL*Plus
Câu lệnh SQL
Không thao tác với dữ
liệu trong cơ sở dữ liệu
Thao tác trên các dữ liệu có
trong các bảng đã được định
nghĩa trong cơ sở dữ liệu
Tùy thuộc vào từng phiên
bản của Oracle
Câu lệnh dựa trên bộ ký tự
chuẩn ASCII
Nhận dạng lệnh SQL và
gửi lệnh lên
Server
Là ngôn ngữ để giao tiếp với
Oracle Server trong việc truy
xuất dữ liệu.
SQL*PlusSQL
Chương 2. Câu lệnh SQL
2- 15/46
2.4 Tương tác giữa SQL và iSQL*Plus
Khác biệt giữa lệnh SQL và SQL*Plus
Câu lệnh SQL
Sử dụng các lệnh định dạng
dữ liệu của chính SQL*Plus
Sử dụng các hàm trong việc
định dạng dữ liệu
Không đòi hỏi phải có ký tự
kết thúc lệnh
Có sử dụng ký tự kết thúc
lệnh khi thực hiện
Câu lệnh có thể viết tắtCâu lệnh không được viết tắt
Câu lệnh được tải trực tiếp
không thông qua bộ đệm
Câu lệnh được nạp vào bộ
nhớ đệm trên một hoặc nhiều
dòng
SQL*PlusSQL
Chương 2. Câu lệnh SQL
2- 16/46
2.4 Tương tác giữa SQL và iSQL*Plus
Phân nhóm câu lệnh trong SQL*Plus
Câu lệnh SQL
Gửi các lệnh SQL có trong bộ đệm lên
server
Thực hiện lệnh
Lưu giữ, nạp và chạy các file scriptsThao tác file
Định dạng lại dữ liệu trả về từ server
Định dạng dữ
liệu
Tác động và gây ảnh hưởng tới môi
trường làm việc của SQL*Plus trong
phiên làm việc hiện tại
Môi trường
Diễn giảiNhóm lệnh
Chương 2. Câu lệnh SQL
2- 17/46
2.4 Tương tác giữa SQL và iSQL*Plus
Phân nhóm câu lệnh trong SQL*Plus
Câu lệnh SQL
Các lệnh khác cho phép kết nối tới cơ sở dữ
liệu và hiển thị các cột dữ liệu theo như định
dạng
Các lệnh
khác
Cho phép người dùng có thể tạo các biến sử
dụng trong câu lệnh SQL và thao tác với các
biến đó như: nhập dữ liệu, kết xuất dữ liệu
Tương tác
Sửa đổi lại lệnh SQL có trong bộ đệmSoạn thảo
Diễn giảiNhóm lệnh
Chương 2. Câu lệnh SQL
2- 18/46
2.4 Tương tác giữa SQL và iSQL*Plus
Các lệnh SQL*Plus cơ bản
Kết nối tới cơ sở dữ liệu
Conn[ect] <user_name>/
<password>[@<database>];
Ví dụ:
Conn Tester/pwtester@DB1;
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 19/46
2.4 Tương tác giữa SQL và iSQL*Plus
Các lệnh SQL*Plus cơ bản
Hiển thị cấu trúc bảng dữ liệu
Desc[ribe] <table_name>;
Ví dụ: Desc Dept;
Câu lệnh SQL
Name Null? Type
DeptNo NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC
VARCHAR2(13)
Chương 2. Câu lệnh SQL
2- 20/46
2.4 Tương tác giữa SQL và iSQL*Plus
Các lệnh sau đây tự xem sách!
Lệnh soạn thảo
Lệnh thao tác file
Lệnh định dạng cột dữ liệu
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 21/46
2.4 Tương tác giữa SQL và iSQL*Plus
Các ký tự định dạng
Câu lệnh SQL
1,234 9,999 Hiển thị dấu phân chia hàng nghìn
,
1234.00 9999.99 Hiển thị dấu thập phân
.
L1234 L9999 Hiển thị ký tự L L
$1234 $9999 Hiển thị dấu $ $
01234 099999 Hiển thị cả số 0 0
1234 999999 Hiển thị số, không bao gồm số 0 9
Hiển thị dài nhất n ký tựn
Kết quảVí dụDiễn giảiĐịnh
dạng
Chương 2. Câu lệnh SQL
2- 22/46
2.4 Tương tác giữa SQL và iSQL*Plus
Đăng nhập iSQL*Plus
Khởi động trình duyệt web (web browser).
Nhập địa chỉ URL của môi trường làm việc iSQL*Plus.
Nhập username, password và trường định danh kết
nối Oracle.
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 23/46
2.5 Môi trường làm việc iSQL*Plus
Đăng nhập iSQL*Plus
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 24/46
2.6 Giới hạn và sắp xếp dữ liệu
Giới hạn dữ liệu
Câu lệnh SQL
Chương 2. Câu lệnh SQL
2- 25/46
2.6 Giới hạn và sắp xếp dữ liệu
Giới hạn dữ liệu
Mệnh đề WHERE
đặt điều kiện cho toàn bộ câu lệnh truy vấn.
SELECT [DISTINCT ] *, column [alias],
FROM table
[WHERE condition (s)];
Câu lệnh SQL