1. SQL là gì?

* Lịch sử ra đời của SQL:
  • SQL được phát minh vào những năm 1970 và lần đầu tiên được phân phối thương mại bởi Oracle.
  • Tên ban đầu được IBM đặt là Ngôn ngữ truy vấn tiếng Anh có cấu trúc, viết tắt là SEQUEL.

SQL (Structured Query Language) là một ngôn ngữ tiêu chuẩn được sử dụng để quản lý và thao tác cơ sở dữ liệu quan hệ (Relational Database Management Systems - RDBMS). 

Khi dữ liệu cần được truy xuất từ ​​cơ sở dữ liệu, SQL được sử dụng để thực hiện yêu cầu. DBMS xử lý truy vấn SQL, truy xuất dữ liệu được yêu cầu và trả về cho chúng ta. SQL sẽ thực hiện các tác vụ như truy vấn dữ liệu, cập nhật dữ liệu, chèn dữ liệu mới và xóa dữ liệu hiện có.

2. Cách thành phần chính của SQL?

- Databases: Là tập hợp các dữ liệu có cấu trúc được tổ chức theo một cách có hệ thống. Một cơ sở dữ liệu bao gồm nhiều bảng chứa dữ liệu.

- Tables: Là các cấu trúc cơ bản trong một cơ sở dữ liệu để lưu trữ dữ liệu. Mỗi bảng gồm nhiều hàng (record) và cột (field), mỗi cột chứa một loại dữ liệu cụ thể.

- Queries: Là các lệnh SQL được sử dụng để truy xuất dữ liệu từ các bảng. Các câu truy vấn phổ biến bao gồm SELECT, INSERT, UPDATE, và DELETE.

- Constraints: Là các quy tắc được áp dụng trên các cột của bảng để đảm bảo tính chính xác và toàn vẹn của dữ liệu. Các constraint phổ biến bao gồm PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, và CHECK.

- Stored Procedures: Là các tập lệnh SQL đã được lưu trữ sẵn trong cơ sở dữ liệu và có thể được gọi để thực hiện một nhiệm vụ cụ thể. Stored procedures giúp giảm bớt việc viết lại mã lệnh và tăng hiệu suất của cơ sở dữ liệu.

- Transactions: Là một nhóm các lệnh SQL được thực hiện như một đơn vị công việc duy nhất. Một transaction đảm bảo rằng tất cả các lệnh trong nhóm đó đều được thực hiện thành công hoặc không có lệnh nào được thực hiện. Các lệnh liên quan đến transaction bao gồm COMMIT và ROLLBACK.

3. Các đặc điểm chính của SQL?

- Dễ học và sử dụng: Cú pháp SQL đơn giản và dễ hiểu, dễ học cho người mới bắt đầu.

- Tính mạnh mẽ: SQL có thể xử lý các truy vấn phức tạp và các tập dữ liệu lớn một cách hiệu quả.
- Tiêu chuẩn hóa: SQL là một ngôn ngữ tiêu chuẩn quốc tế (ISO và ANSI), được hỗ trợ bởi hầu hết các hệ quản trị cơ sở dữ liệu.
- Tính di động: Các truy vấn SQL có thể chạy trên nhiều hệ quản trị cơ sở dữ liệu khác nhau với ít hoặc không cần thay đổi.
- Tính linh hoạt: SQL hỗ trợ nhiều loại dữ liệu và phép toán khác nhau, từ số học đến chuỗi ký tự và các loại dữ liệu ngày giờ.
- Tính nhất quán: SQL giúp đảm bảo tính nhất quán và toàn vẹn của dữ liệu thông qua các ràng buộc và giao dịch.
- Hỗ trợ giao dịch: SQL cung cấp các lệnh để quản lý các giao dịch, giúp đảm bảo các thao tác dữ liệu được thực hiện đầy đủ hoặc không thực hiện.
- Quản lý quyền truy cập: SQL cho phép quản lý quyền truy cập của người dùng đối với dữ liệu thông qua các lệnh kiểm soát quyền (GRANT, REVOKE).

4. Cách hoạt động của SQL?

Nhìn chung SQL sẽ thực hiện những bước tuần tự như sau:

Bước 1: Kết Nối Cơ Sở Dữ Liệu

- Thiết lập kết nối: Ứng dụng (máy khách) thiết lập kết nối với máy chủ cơ sở dữ liệu bằng cách sử dụng một driver hoặc thư viện kết nối cơ sở dữ liệu. Điều này thường được thực hiện thông qua một chuỗi kết nối chứa các thông tin cần thiết như tên máy chủ, tên cơ sở dữ liệu, tên người dùng và mật khẩu.

Bước 2: Gửi Câu Lệnh SQL

- Soạn thảo câu lệnh SQL: Người dùng hoặc ứng dụng soạn thảo câu lệnh SQL để thực hiện các tác vụ như truy vấn, chèn, cập nhật, hoặc xóa dữ liệu.
- Gửi câu lệnh: Ứng dụng gửi câu lệnh SQL tới máy chủ cơ sở dữ liệu thông qua kết nối đã thiết lập.

Bước 3: Phân Tích Cú Pháp và Tối Ưu Hóa

- Phân tích cú pháp (Parsing): Máy chủ cơ sở dữ liệu nhận câu lệnh SQL và phân tích cú pháp để kiểm tra tính hợp lệ của cú pháp. Nếu câu lệnh không hợp lệ, máy chủ trả về thông báo lỗi.

- Tối ưu hóa: Máy chủ cơ sở dữ liệu tối ưu hóa câu lệnh để xác định cách tốt nhất để thực hiện truy vấn hoặc thao tác dữ liệu. Quá trình này bao gồm việc tạo ra một kế hoạch thực thi (execution plan).

Bước 4: Thực Thi Câu Lệnh

- Thực thi câu lệnh: Máy chủ cơ sở dữ liệu thực thi câu lệnh SQL theo kế hoạch thực thi đã tối ưu hóa. Điều này có thể bao gồm truy vấn dữ liệu từ các bảng, chèn dữ liệu mới, cập nhật dữ liệu hiện có, hoặc xóa dữ liệu.

- Quản lý giao dịch: Nếu câu lệnh nằm trong một giao dịch, máy chủ đảm bảo rằng tất cả các thao tác trong giao dịch đó đều được thực hiện thành công hoặc không thực hiện (sử dụng COMMIT và ROLLBACK).

Bước 5: Trả Kết Quả Về Máy Khách

- Lấy dữ liệu: Nếu câu lệnh là một truy vấn (ví dụ: SELECT), máy chủ lấy dữ liệu từ cơ sở dữ liệu và tạo ra tập kết quả (result set).
- Trả kết quả: Máy chủ cơ sở dữ liệu trả về kết quả của câu lệnh (dữ liệu truy vấn hoặc xác nhận thành công của thao tác dữ liệu) cho ứng dụng máy khách.

Bước 6: Hiển Thị và Xử Lý Kết Quả

- Hiển thị kết quả: Ứng dụng máy khách nhận kết quả từ máy chủ cơ sở dữ liệu và hiển thị cho người dùng hoặc sử dụng kết quả cho các mục đích khác.

- Xử lý tiếp theo: Ứng dụng có thể tiếp tục xử lý kết quả, bao gồm việc hiển thị dữ liệu, lưu trữ dữ liệu tạm thời, hoặc thực hiện các tác vụ khác dựa trên kết quả nhận được.

Ví dụ:

Truy Vấn Dữ Liệu:

Câu lệnh:

SELECT * FROM employees WHERE department = 'Sales';

Quy trình:

  • Ứng dụng gửi câu lệnh SQL tới máy chủ cơ sở dữ liệu.
  • Máy chủ phân tích cú pháp và tối ưu hóa câu lệnh.
  • Máy chủ thực thi câu lệnh và truy xuất dữ liệu từ bảng employees.
  • Máy chủ trả về tập kết quả cho ứng dụng.
  • Ứng dụng hiển thị dữ liệu cho người dùng.

Cập Nhật Dữ Liệu:

Câu lệnh:

UPDATE employees SET salary = salary * 1.1 WHERE department = 'Sales';

Quy trình:

  • Ứng dụng gửi câu lệnh SQL tới máy chủ cơ sở dữ liệu.
  • Máy chủ phân tích cú pháp và tối ưu hóa câu lệnh.
  • Máy chủ thực thi câu lệnh và cập nhật dữ liệu trong bảng employees.
  • Máy chủ xác nhận cập nhật thành công và gửi phản hồi cho ứng dụng.
  • Ứng dụng thông báo cho người dùng về việc cập nhật thành công.

5. Kết luận?

Trên đây là bài viết của mình cùng các bạn tìm hiểu về "SQL Là Gì?" qua đây ta cũng biết được SQL cung cấp công cụ hiệu quả để tổ chức cũng như xử lý thông tin trong các hệ thống cơ sở dữ liệu. Tính tiêu chuẩn hóa, tính di động và tính linh hoạt của SQL giúp nó trở thành một công cụ quan trọng trong nhiều ứng dụng và hệ thống, từ cơ sở dữ liệu doanh nghiệp đến các nền tảng trực tuyến. Việc nắm vững SQL không chỉ giúp tối ưu hóa quản lý dữ liệu mà còn mở ra nhiều cơ hội trong phát triển và phân tích dữ liệu.