Học SQL trực tuyến

1. Giới thiệu về ngôn ngữ SQL

Giới thiệu tổng quan các khái niệm, thành phần, phân loại liên quan đến Data, Database, SQL.

1.1 Data là gì?

Data hay dữ liệu là những thông tin đã được đưa vào máy tính hoặc các thiết bị số. Ví dụ: thông tin trong các tập tin word, excel, pdf, hình ảnh, audio, video…

1.2 Database là gì?

Database hay cơ sở dữ liệu (CSDL) là một tập hợp các thông tin có ý nghĩa của một tổ chức, được tổ chức lưu trữ để có thể dễ dàng khai thác, quản lý và cập nhật.

  • Các CSDL hệ thống: master, model, msdb, tempdb.
  • Các CSDL do người dùng tạo ra, ví dụ: AdventureWorks2017, QLSinhVien, QLBanHang, HumanResource.

Các thành phần của Database

Các tập tin vật lý lưu trữ Database

Một CSDL Microsoft SQL Server có thể có 3 loại tập tin:

  • *.mdf: tập tin dữ liệu chính, lưu trữ các thông tin hệ thống của CSDL và một phần dữ liệu.
  • *.ndf: tập tin dữ liệu thứ yếu, dùng để lưu các đối tượng dữ liệu không nằm trong tập tin dữ liệu chính.
  • *.ldf: tập tin lưu vết, lưu các giao tác được thực hiện trong quá trình xử lý dữ liệu. Hỗ trợ phục hồi, backup và restore dữ liệu.

1.3 SQL là gì?

SQL (Structured Query Language): ngôn ngữ truy vấn có cấu trúc. Ban đầu nó có tên là Structured English Query Language, viết tắt là “SEQUEL”. Sau này, tên viết tắt SEQUEL được rút gọn thành SQL để tránh việc tranh chấp nhãn hiệu (từ SEQUEL đã được một công ty máy bay của UK là Hawker-Siddeley đăng ký).

SQL là một loại ngôn ngữ máy tính được thiết kế theo tiêu chuẩn của ANSI (American National Standards Institute) và ISO (International Organization for Standardization) để quản lý (xem, thêm, sửa, xóa) dữ liệu (Data) trong cơ sở dữ liệu quan hệ (Relational Database) từ các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Tất cả các RDBMS như: Oracle Database, Microsoft SQL Server, MySQL… đều sử dụng SQL làm ngôn ngữ cơ sở dữ liệu tiêu chuẩn của họ.

Ngoài ra, từ tiêu chuẩn này họ phát triển lên các phương ngữ khác nhau, chẳng hạn như:

  • Oracle Database là PL/SQL.
  • Microsoft SQL Server là T-SQL.
sql-database
Các hệ quản trị CSDL nổi tiếng

Phân loại

DDL (Data Definition Language/ Data Description Language): ngôn ngữ định nghĩa dữ liệu. Dùng để khai báo cấu trúc của CSDL, bao gồm các lệnh: CREATE, ALTER, DROP.
DML (Data Manipulation Language): ngôn ngữ thao tác dữ liệu. Dùng để điều chỉnh dữ liệu, bao gồm các lệnh: INSERT, UPDATE, DELETE, TRUNCATE TABLE, MERGE.
DCL (Data Control Language): ngôn ngữ điều khiển dữ liệu. Dùng để phân quyền người dùng, bao gồm các lệnh: GRANT, REVOKE.

Một số lưu ý khi viết câu lệnh SQL

  • Câu lệnh không phân biệt chữ thường, chữ hoa.
  • Câu lệnh có thể viết trên một hoặc nhiều dòng.
  • Các từ khóa không được viết tắt hoặc tách ra thành nhiều dòng.
  • Các mệnh đề khác nhau nên đặt trên những dòng khác nhau.
  • Một số hệ quản trị cơ sở dữ liệu yêu cầu dấu chấm phẩy ở cuối mỗi câu lệnh hoặc trong một số trường hợp nhất định.
--Ví dụ:
SELECT * FROM EMPLOYEES;

Trình tự xử lý (các từ khoá thông dụng)

  1. FROM
  2. ON
  3. JOIN
  4. WHERE
  5. GROUP BY
  6. WITH CUBE or WITH ROLLUP
  7. HAVING
  8. SELECT
  9. DISTINCT
  10. ORDER BY
  11. TOP

2. Thực hành SQL

Phần này sẽ bắt đầu học với một hệ quản trị CSDL cụ thể là Microsoft SQL Server (thường gọi tắt là SQL Server). Đây là hệ quản trị CSDL được sử dụng khá nhiều trong các doanh nghiệp/ tổ chức. Bên dưới là hướng dẫn chi tiết cách tải, cài đặt và thực hành trong quá trình học SQL.

2.1 Cài đặt Microsoft SQL Server và SSMS

  1. Cài đặt Microsoft SQL Server 2019 trên Windows 10
  2. Cài đặt SSMS 18.6 trên Windows 10
  3. Restore Database mẫu: AdventureWorks2017, QLSinhVien, QLBanHang và HumanResource

2.2 Các lệnh DDL trong SQL Server

  1. Database
  2. Table
  3. View
  4. Temporary Table
  5. Stored Procedure
  6. Function
  7. Trigger
  8. Index

2.3 Các lệnh DML trong SQL Server

  1. Lệnh thêm dữ liệu INSERT
  2. Lệnh sửa dữ liệu UPDATE
  3. Lệnh xóa dữ liệu DELETE
  4. Lệnh xóa toàn bộ dữ liệu TRUNCATE TABLE
  5. Lệnh trộn dữ liệu MERGE

2.4 Truy vấn sắp xếp dữ liệu trong SQL Server

  1. Lệnh xem dữ liệu SELECT
  2. Mệnh đề FROM
  3. Cột bí danh Alias AS
  4. Từ khóa DISTINCT
  5. Mệnh đề TOP

2.5 Các hàm trong SQL Server

  1. Hàm xử lý chuỗi
    • Hàm viết hoa UPPER
    • Hàm viết thường LOWER
    • Hàm cắt chuỗi bên trái LEFT
    • Hàm cắt chuỗi bên phải RIGHT
    • Hàm cắt chuỗi tại vị trí chỉ định SUBSTRING
    • Hàm xóa khoảng trắng hai bên TRIM
    • Hàm xóa khoảng trắng bên trái LTRIM
    • Hàm xóa khoảng trắng bên phải RTRIM
    • Hàm tạo chuỗi khoảng trắng SPACE
    • Hàm tạo chuỗi lặp REPLICATE
    • Hàm đếm số ký tự LEN
    • Hàm đếm số ký tự DATALENGHT
    • Hàm đảo chuỗi REVERSE
    • Hàm thay thế chuỗi REPLACE
    • Hàm trả về vị trí tìm thấy CHARINDEX
    • Hàm nối chuỗi CONCAT
    • Hàm tìm chuỗi và trả về vị trí tìm thấy PATINDEX
    • Hàm chọn một giá trị chuỗi dựa trên chỉ số CHOOSE
  2. Hàm xử lý thời gian
  3. Hàm đổi kiểu dữ liệu
    • Hàm đổi số thành chuỗi STR
    • Hàm đổi kiểu dữ liệu CAST
    • Hàm đổi kiểu dữ liệu CONVERT
    • Hàm đổi kiểu dữ liệu FORMAT
  4. Hàm toán học
    • Hàm lấy trị tuyệt đối ABS
    • Hằng số PI
    • Hàm lũy thừa POWER
    • Hàm lấy số ngẫu nhiên RAND
    • Hàm làm tròn số ROUND
    • Hàm làm tròn số FLOOR
    • Hàm làm tròn số CEILING
    • Hàm lấy dấu của biểu thức số SIGN
    • Hàm lấy căn bậc 2 SQRT
  5. Hàm luận lý
    • Hàm chọn lựa IIF
    • Hàm đổi NULL sang giá trị khác NULL ISNULL
    • Hàm lấy giá trị khác NULL đầu tiên COALESCE
  6. Hàm nhóm dữ liệu
    • Hàm tính trung bình AVG
    • Hàm đếm số dòng COUNT
    • Hàm lấy giá trị lớn nhất MAX
    • Hàm lấy giá trị nhỏ nhất MIN
    • Hàm tính tổng SUM

2.6 Mệnh đề trong SQL Server

  1. Mệnh đề WHERE
  2. Mệnh đề ORDER BY
  3. Mệnh đề SELECT INTO
  4. Mệnh đề JOIN
  5. Mệnh đề GROUP BY
  6. Mệnh đề HAVING
  7. Mệnh đề UNIONUNION ALL
  8. Mệnh đề EXCEPT
  9. Mệnh đề INTERSECT

2.7 Toán tử trong SQL Server

  1. Toán tử BETWEEN AND
  2. Toán tử IN
  3. Toán tử LIKE
  4. Toán tử IS NULL
  5. Toán tử logic AND
  6. Toán tử logic OR
  7. Toán tử logic NOT

2.8 Cấu trúc điều khiển trong SQL Server

  1. Lệnh rẽ nhánh IF ELSE
  2. Biểu thức CASE
  3. Vòng lặp WHILE

2.9 Biến trong SQL Server

  1. Biến Variable

2.10 Các lệnh DCL trong SQL Server

  1. GRANT
  2. REVOKE

3. SQL với ứng dụng thực tế

Nội dung này sẽ áp dụng SQL để giải quyết các bài toán trong thực tế tại các doanh nghiệp/ tổ chức.

3.1 Các mô hình nhân bản dữ liệu Replication trong Microsoft SQL Server

  1. Snapshot Replication
  2. Transactional Replication
  3. Peer-to-Peer Replication
  4. Merge Replication

3.2 Oracle Database, SQL Developer và Oracle BI

  1. Cài đặt Oracle Database 19c trên Windows 10
  2. Cài đặt SQL Developer 19.4 trên Windows 10
  3. Cài đặt Oracle Business Intelligence 12c trên Windows 10