1.1 Vài nét về lịch sử
SQL ra đời vào năm 1970 tại phòng thí nghiệm của IBM,san jose, California.
Là một ngôn ngư phi thủ tục – declarative, non procedural language.
Các câu lệnh mô tả yêu cầu cần làm gì - WHAT chứ không cần nêu từng bước tiến hành
làm như thế nào – HOW.
Thực chất không không chỉ có Query Language còn thực hiện nhiều chức năng khác
như bổ xung thêm dữ liệu, sửa đổi cập nhật thông tin, huỷ thông tin, huỷ thông tin, lien kết
lưu trữ thông tin.
1.2 Sử dụng SQL.
Ngôn ngữ SQL được dùng trong ứng dụng CSDL theo mô hình Client – Server. Các
chương trình khách gửi yêu cầu truy vấn thông tin dưới dạng các câu lệnh SQL. Chương
trình chủ dịch vụ - Server CSDL - sẽ thực hiện yêu cầu và gửi lại kết quả cho chương trình
khách.
Ba kiểu tương tác với ứng dụng.
- Modun: Các thủ tục làm sẵn thông qua các tham số, gọi và trả kết quả về.
- Nhúng trực tiếp: Các câu lệnh SQL trong chương trình.
- Gọi trực tiếp: Tương tác.
Nhúng là hình thức làm việc tĩnh – Static: câu lệnh được biên dịch ra, không thay đổi được
khi chạy.
Hiện nay Dynamic SQL: cho phép chuẩn bị câu lệnh SQL trong khi chạy. các thành phần
của câu lệnh SQL được ghép nối lại trong thời gian chạy cho phép mức linh hoạt rất linh
hoạt rất cao trong khai thác CSDL. Giống như chuyển từ Compiler sang Interpreter.
bộ kí tự của SQL.
- Các chữ cái thường a – z , chữ cái hoa A – Z.
- Các chư số 0 – 9
- Các kí tự khác: “ % & ‘ () * / + - , ; < >= ? _ và khoảng trống tên:
- Không phân biệt chư hoa chữ thường.
- Không quá 128 ký tự
- Không trùng với các từ khoá, từ dành riêng, tên có tách riêng .
- Bất kỳ sâu ký tự nào(không nhất thiết phải thuộc bộ kí tự của SQL, có trùng với từ
khoá) đặt trong cặp dấu ngoặc kép và không quá 128 kí tự, kể cả cặp dấu ngoặc
FROM <danh sách tên bảng> điều khoản From
WHERE <điều kiện tìm kiếm> điều khoản Where
+ Danh sách tên bảng
Các tên bảng cách nhau dấu phẩy. Một tên bảng có thể kèm tên biến bảng (biến
phạm vi) đại diện cho bảng đó. Tên biến bảng đặc biệt có ích khi hai bảng có trung tên cột.
+ Danh sách tên cột
Các tên cột cách nhau dấu phẩy
Thứ tự giống như đã liệt kê, có thể khác với thứ tự vố có trong bảng.
Kí tự đại diện * = tất cả các cột theo thứ tự vốn có.
+ Điều kiện tìm kiếm
Điều kiện tìm kiếm là một biểu thức logic. một biểu thức điều kiện được dung với
từ khoá Where để tạo thành điều khoản Where, ấn định tiêu chuẩn tìm kiếm thông tin xuất
ra. Chỉ những dữ liệu thoả điều kiện đã nêu mới được đưa vào kết quả truy vấn.
Biểu thức điều kiện trong điều khoản Where là liên kết bằng các phép toán logic
AND, OR, NOT có của các biểu thức so sánh dạng biểu thức op biểu thức
ở đây op là là một trong các phép toán <,<=,>,>=,=,<> còn biểu thức là biểu thức số học
hay xâu kí tự với các toán hạng là các tên cột trong các bảng hoặc giá trị hằng.
Có thể hình dung cách tính kết quả của câu lệnh Select như sau
1- Lấy tích đề các các bảng có trong điều khoản From.
2- Xoá những dòng trong quan hệ tích không thoả điều kiện.
3- Xoá những cột không có trong danh sách tên cột
4- Nếu có lựa chọn DISTINCT thì loại bỏ các dòng trùng nhau, chỉ giữ lại một.
2.3 Từ khóa DISTINCT/ALL
DISTINCT = chỉ lấy những dòng khác nhau
Nghĩa là nếu có nhiều dòng giống nhau chỉ lấy một đại diện.
ALL = tất cả các dòng, kể cả trùng nhau
Đây là mặc định, không cần gõ ALL
Cú pháp
Select DISTINCT <danh sách tên cột> …..
Select ALL <danh sách tên cột>…………..
Các tên mới thực lĩnh, giá bán le gọi là ALIAS-ten hiệu, tên thay thế
Biểu thức xâu
Phép nối xâu.
Toán tử || hoặc +
Dung để nối các xâu lại tạo thành xâu lớn hơn.
Ví dụ:
SELECT HoDem || Ten Hovaten
FROM canbo
LIKE
Khi không biết thật chính xác một phần của xâu hoặc chỉ quan tâm đến mnột phần nào đó
của xâu có thể dùng LIKE với các ký tự đại diện %, _
Ký tự đại diện % thay cho một xâu con bất kỳ.
Ký tự đại diện _ thay cho một ký tự bất kỳ
Toán tử logic
AND, OR, NOT
Các phép toán logic có thể dùng để xây dựng các biểu thức điều kiện phức tạp hơn trong
điều khoản Where.
Ví dụ:
SELECT *
FROM employee
WHERE phongban= “ kinh doanh”
OR phongban= “hanhchinh” Or phongban=” taivu”
Toán tử tập hợp
BEWEEN để xác định một đoạn con trong vùng giá trị có thể của một cột.
IN để xác định một danh sách các giá trị có thể.
Vi dụ:
SELECT column_name_1,. ..column_name_n
FROM table_name_1, . . ,table_name_n
WHERE column_name IN(value_1,. . .,value_n)
Các hàm thao tác dữ liệu
Ví du:
SELECT MIN(hovaten).
FROM canbo_1
Hàm VARIANCE:
Cho bình phương của độ lệch tiêu chuẩn.
Chí áp dụng cho cột kiểu số
Ví dụ:
SELECT VARIANCE(luong).
FROM canbo_1
STDDEV: Độ lệch tiêu chuẩn – Standard Deviation
Chỉ áp dụng cho các cột kiểu số.
Các hàm thời gian
SYSDATE: Thời gian hệ thống.
Dùng để so sánh: tìm các công việc chưa bắt đầu, đã kết thúc. . .
ADD_MONTHS:
Dịch lùi lại cộng thêm một số tháng từ một ngày cho trước.
Ví dụ:
Giả sử có bảng dự án về quản lý dự án gồm các trường ngay bắt đầu ngày kết thúc. .
Nếu có sự cố làm dự án chậm mất hai tháng để hiện thị các công việc còn chưa kết thúc
được cần dùng hàm ADD_MONTH.
SELECT congviec,ngaybatdau,ngayketthuc, ADD_MONTH
(ngayketthúc,2)
FROM duan
MONTH_BEWEEN: đếm số tháng giữa hai mốc ngày.
Ví dụ:
SELECT congviec ngaybatdau, ngayketthúc,
MONTH_BEWEEN(ngaybatdau,ngayketthúc) thờigian
FROM duan
Các hàm số học.
ABS giá trị tuyệt đối