CÂU LỆNH SQL
Lý thuyết: 4t
Thực hành: 4t
Chương 2. Câu lệnh SQL
2- 1/46
Câu lệnh SQL
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.
Chương 2. Câu lệnh SQL
2- 2/46
Câu lệnh SQL
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
Chương 2. Câu lệnh SQL
2- 3/46
Câu lệnh SQL
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
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- 4/46
Câu lệnh SQL
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;
Chương 2. Câu lệnh SQL
2- 5/46
Câu lệnh SQL
2.2 Câu lệnh SELECT cơ bản
Chọn tất cả các cột
SELECT * FROM Dept;
Chương 2. Câu lệnh SQL
2- 6/46
Câu lệnh SQL
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;
Chương 2. Câu lệnh SQL
2- 7/46
Câu lệnh SQL
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 (;)
Chương 2. Câu lệnh SQL
2- 8/46
Câu lệnh SQL
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;
Chương 2. Câu lệnh SQL
2- 9/46
Câu lệnh SQL
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;
Chương 2. Câu lệnh SQL
2- 10/46
Câu lệnh SQL
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ị
Chương 2. Câu lệnh SQL
2- 11/46
Câu lệnh SQL
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;
Chương 2. Câu lệnh SQL
2- 12/46
Câu lệnh SQL
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
Chương 2. Câu lệnh SQL
2- 13/46
Câu lệnh SQL
2.4 Tương tác giữa SQL và iSQL*Plus
Khác biệt giữa lệnh SQL và SQL*Plus
SQL
Là ngôn ngữ để giao tiếp với
Oracle Server trong việc truy
xuất dữ liệu.
Câu lệnh dựa trên bộ ký tự
chuẩn ASCII
SQL*Plus
Nhận dạng lệnh SQL và
gửi lệnh lên
Server
Tùy thuộc vào từng phiên
bản của Oracle
Thao tác trên các dữ liệu có Không thao tác với dữ
trong các bảng đã được định liệu trong cơ sở dữ liệu
nghĩa trong cơ sở dữ liệu
Chương 2. Câu lệnh SQL
2- 14/46
Câu lệnh SQL
2.4 Tương tác giữa SQL và iSQL*Plus
Khác biệt giữa lệnh SQL và SQL*Plus
SQL
Câu lệnh được nạp vào bộ
nhớ đệm trên một hoặc nhiều
dòng
Câu lệnh không được viết tắt
Có sử dụng ký tự kết thúc
lệnh khi thực hiện
SQL*Plus
Câu lệnh được tải trực tiếp
không thông qua bộ đệm
Sử dụng các hàm trong việc
định dạng dữ liệu
Sử dụng các lệnh định dạng
dữ liệu của chính SQL*Plus
Câu lệnh có thể viết tắt
Không đòi hỏi phải có ký tự
kết thúc lệnh
Chương 2. Câu lệnh SQL
2- 15/46
Câu lệnh SQL
2.4 Tương tác giữa SQL và iSQL*Plus
Phân nhóm câu lệnh trong SQL*Plus
Nhóm lệnh
Môi trường
Định dạng dữ
liệu
Diễn giải
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
Định dạng lại dữ liệu trả về từ server
Lưu giữ, nạp và chạy các file scripts
Gửi các lệnh SQL có trong bộ đệm lên
Thực hiện lệnh
server
Thao tác file
Chương 2. Câu lệnh SQL
2- 16/46
Câu lệnh SQL
2.4 Tương tác giữa SQL và iSQL*Plus
Phân nhóm câu lệnh trong SQL*Plus
Nhóm lệnh Diễn giải
Soạn thảo Sửa đổi lại lệnh SQL có trong bộ đệm
Tương tác
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
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
Chương 2. Câu lệnh SQL
2- 17/46
Câu lệnh SQL
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] /
[@];
Ví dụ:
Conn Tester/pwtester@DB1;
Chương 2. Câu lệnh SQL
2- 18/46
Câu lệnh SQL
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] ;
Ví dụ: Desc Dept;
Name
Null?
DeptNo NOT NULL
DNAME
LOC
VARCHAR2(13)
Type
NUMBER(2)
VARCHAR2(14)
Chương 2. Câu lệnh SQL
2- 19/46
Câu lệnh SQL
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
Chương 2. Câu lệnh SQL
2- 20/46