Ngôn ngữ có cấu trúc SQL là loại ngôn ngữ truy vấn phổ biến hiện nay. Vậy SQL là gì, được ứng dụng trong những trường hợp nào, hãy cùng Elcom tìm hiểu trong bài viết này.
Ngôn ngữ truy vấn có cấu trúc (SQL - Structured Query Language) ra đời từ những năm 1970, được sử dụng nhằm mục đích lưu trữ vào quản lý dữ liệu. Đối với lập trình viên, khả năng hiểu và sử dụng được ngôn ngữ SQL vô cùng quan trọng.
1. SQL là gì?
Ngôn ngữ SQL là ngôn ngữ lập trình được tiêu chuẩn hóa, sử dụng để quản lý cơ sở dữ liệu quan hệ (RDBMS - Relational database management systems) và thực hiện những hoạt động khác nhau trên dữ liệu trong đó.
Dù ra đời đã lâu, tới nay, ngôn ngữ SQL cơ bản không chỉ được sử dụng thường xuyên bởi các quản trị viên cơ sở dữ liệu (CSDL) mà nhiều nhà phát triển vẫn sử dụng nó viết tập lệnh tích hợp dữ liệu và các nhà phân tích dữ liệu đang tìm cách thiết lập, cũng như chạy truy vấn phân tích.
Xem thêm bài viết: Truy vấn cơ sở dữ liệu đóng vai trò gì trong quản lý cơ sở dữ liệu?
SQL được sử dụng cho mục đích sau:
Sửa đổi cấu trúc bảng CSDL và chỉ mục;
Thêm, cập nhật và xóa các dòng dữ liệu;
Truy xuất tập hợp thông tin từ bên trong hệ thống quản lý. Thông tin này có thể được sử dụng trong xử lý giao dịch, ứng dụng phân tích và những ứng dụng khác yêu cầu giao tiếp với RDBMS.
Truy vấn SQL và các hoạt động khác được viết dưới dạng câu lệnh, tổng hợp thành chương trình cho phép người dùng thêm, sửa đổi hoặc truy xuất dữ liệu từ bảng CSDL.
Index trong SQL là gì?
Index (hay chỉ mục) là một cấu trúc dữ liệu để tăng hiệu suất truy vấn của cơ sở dữ liệu. Index cho phép CSDL thực hiện một số câu truy vấn có điều kiện nhanh hơn thông thường. Nhưng index cũng được lưu trên bộ nhớ và tiêu tốn không gian cũng như thời gian để tạo, cập nhật nên khi sử dụng index cần tính toán kỹ lưỡng.
2. Hệ thống SQL gồm những thành phần gì?
Hệ thống quản lý RDBMS sử dụng ngôn ngữ truy vấn có cấu trúc SQL để lưu trữ và quản lý dữ liệu. Hệ thống này lưu trữ nhiều bảng cơ sở dữ liệu có liên quan đến nhau. MS SQL Server, MySQL hoặc MS Access là những ví dụ về hệ thống quản lý cơ sở dữ liệu quan hệ. Một hệ thống như vậy bao gồm thành phần như sau:
Bảng SQL
Bảng là đơn vị cơ bản nhất của CSDL, bao gồm các hàng và cột dữ liệu. Một bảng duy nhất chứa nhiều bản ghi, mỗi bản được lưu trữ trong một hàng. Bảng là loại đối tượng/cấu trúc CSDL được sử dụng nhiều nhất để chứa hoặc tham chiếu dữ liệu trong RDBMS. Những đối tượng CSDL khác bao gồm:
Chế độ xem: Cách biểu diễn logic dữ liệu tập hợp từ một hoặc nhiều bảng.
Chỉ mục: Bảng tra cứu giúp tăng tốc chức năng tìm kiếm trong CSDL.
Báo cáo: Bao gồm dữ liệu được truy xuất từ một hoặc nhiều bảng, thường là tập hợp con của dữ liệu đó, được chọn dựa trên tiêu chí tìm kiếm.
Mỗi cột trong bảng tương ứng với một danh mục dữ liệu, ví dụ như tên hoặc địa chỉ khách hàng, trong khi mỗi hàng chứa một giá trị dữ liệu cho cột giao nhau.
RDBMS bao gồm các bảng có liên quan với nhau. Ví dụ: CSDL SQL được sử dụng cho dịch vụ khách hàng có thể bao gồm một bảng tên và địa chỉ của khách hàng, bảng khác chứa thông tin giao dịch mua hàng cụ thể, mã sản phẩm và địa chỉ liên hệ của khách hàng.
Bảng theo dõi thông tin liên hệ khách hàng thường sử dụng mã định danh khách hàng duy nhất, gọi là khóa (key) hoặc khóa chính (primary key), để tham chiếu bản ghi của khách hàng trong một bảng riêng lưu trữ dữ liệu, chẳng hạn như tên, địa chỉ,...
Bảng là đơn vị cơ bản nhất của cơ sở dữ liệu - Ảnh: Internet
Câu lệnh SQL
Về cơ bản, SQL là ngôn ngữ lập trình được thiết kế để truy cập, sửa đổi và trích xuất thông tin từ cơ sở dữ liệu quan hệ. SQL có lệnh và cú pháp để đưa ra các lệnh đó.
Lệnh SQL được chia thành nhiều loại khác nhau, bao gồm:
Lệnh Ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition Language), còn được gọi là lệnh định nghĩa dữ liệu vì chúng được sử dụng để xác định bảng dữ liệu.
Lệnh Ngôn ngữ thao tác dữ liệu (DML - Data Manipulation Language) được sử dụng để thao tác dữ liệu trong bảng hiện có bằng cách thêm, thay đổi hoặc xóa dữ liệu. Không giống như lệnh DDL xác định cách lưu trữ dữ liệu, lệnh DML hoạt động trong các bảng được xác định bằng lệnh DDL.
Ngôn ngữ truy vấn dữ liệu (Data Query Language) chỉ bao gồm một lệnh “SELECT”, sử dụng để lấy dữ liệu cụ thể từ bảng. Lệnh này đôi khi được nhóm với các lệnh DML.
Lệnh Ngôn ngữ kiểm soát dữ liệu (Data Control Language) sử dụng để cấp hoặc thu hồi đặc quyền truy cập của người dùng.
Lệnh Ngôn ngữ kiểm soát giao dịch (Transaction Control Language) sử dụng để thay đổi trạng thái của một số dữ liệu. Ví dụ: COMMIT (CAM KẾT) hoặc ROLLBACK (HỦY) thay đổi giao dịch.
Cú pháp SQL
Cú pháp SQL là tập hợp các quy tắc về cách viết và định dạng câu lệnh SQL, tương tự như những ngôn ngữ lập trình khác. Một số thành phần của cú pháp SQL bao gồm:
- Các câu lệnh SQL bắt đầu bằng lệnh SQL (SQL command) và kết thúc bằng dấu chấm phẩy ( ; ), ví dụ: Câu lệnh trích xuất tất cả nội dung của bảng có tên là “Customer”:
SELECT * FROM customers;
- Các câu lệnh SQL không phân biệt chữ hoa chữ thường, nghĩa là chúng có thể được viết bằng chữ thường, chữ hoa hoặc kết hợp. Tuy nhiên, theo thông lệ, người ta thường viết từ khóa SQL (lệnh hoặc toán tử điều khiển) bằng chữ in hoa toàn bộ và tên bảng/cột bằng chữ thường. Từ ngữ trong câu lệnh có thể phân biệt chữ hoa chữ thường bằng cách sử dụng dấu ngoặc kép.
Ví dụ, hai câu lệnh sau đây tạo ra kết quả giống hệt nhau:
SELECT * FROM customers;
select * from CUSTOMERS;
Nhưng hai câu lệnh sau đây lại khác nhau:
SELECT * FROM customers;
SELECT * FROM "Customers";
- Các câu lệnh SQL chỉ được kết thúc bằng dấu chấm phẩy, nghĩa là những câu lệnh phức tạp có thể được hiển thị trên nhiều dòng, chẳng hạn, lệnh chọn nội dung cột tên, số điện thoại và tuổi trong bảng khách hàng:
SELECT name, telephone, age
FROM customers;
- Câu lệnh SQL có thể kết hợp quyền chỉ huy luồng chương trình, nghĩa là câu lệnh kết hợp việc chọn bảng và hàng như trong ví dụ trước, rồi thao tác trên dữ liệu có trong các cột đó. Ví dụ: Lệnh chọn tên, số điện thoại và ngày sinh cho tất cả khách hàng có độ tuổi trên 21:
SELECT name, telephone, age
FROM customers
WHERE age > 21;
3. Ví dụ về câu lệnh SQL thường được sử dụng
Hầu hết lệnh SQL được sử dụng cùng với các toán tử để sửa đổi hoặc giảm phạm vi dữ liệu mà câu lệnh vận hành. Dưới đây là một số ví dụ về lệnh SQL thường được sử dụng:
SQL SELECT
Lệnh SELECT sử dụng để lấy một số hoặc tất cả dữ liệu trong bảng. SELECT có thể được sử dụng với các toán tử để thu hẹp lượng dữ liệu được chọn:
SELECT title, author, pub_date
FROM catalog
WHERE pub_date = 2021;
SQL CREATE
Lệnh CREATE được sử dụng để tạo cơ sở dữ liệu SQL hoặc bảng SQL mới. Hầu hết các phiên bản SQL đều tạo CSDL mới bằng cách tạo một thư mục mới, trong đó bảng và những đối tượng cơ sở dữ liệu khác được lưu trữ dưới dạng tệp.
Ví dụ, câu lệnh CREATE DATABASE tạo một CSDL SQL mới có tên “Human_Resources”:
CREATE DATABASE Human_Resources;
Lệnh CREATE TABLE được sử dụng để tạo bảng trong SQL. Câu lệnh tạo một bảng tên nhân viên có ba cột: “member_ID”, “Last_name” và “First_name”, với cột đầu tiên lưu trữ dữ liệu số nguyên (int) và các cột khác lưu trữ dữ liệu ký tự biến đổi thuộc loại varchar và tối đa 255 ký tự.
CREATE TABLE Employees (
employee_ID int,
last_name varchar(255),
first_name varchar(255)
);
TẠO BẢNG Nhân viên (
nhân viên_ID int,
họ_varchar(255),
first_name varchar(255)
);
SQL DELETE
Lệnh DELETE xóa các hàng khỏi bảng được đặt tên. Ví dụ, xóa tất cả hồ sơ của nhân viên có họ “Smithee”, câu lệnh này trả về số hàng bị xóa khi nó chạy xong:
DELETE FROM Employees WHERE last_name='Smithee';
SQL INSERT INTO
Lệnh INSERT INTO được sử dụng để thêm bản ghi vào bảng cơ sở dữ liệu. Câu lệnh thêm một bản ghi mới “Alan”, “Smithee” vào bảng “Employees” như sau:
INSERT INTO Employees (
last_name,
first_name
)
VALUES (
'Alan',
'Smithee'
);
SQL UPDATE
Lệnh UPDATE được sử dụng để thực hiện thay đổi đối với các hàng hoặc bản ghi trong một bảng cụ thể. Ví dụ: câu lệnh sau cập nhật tất cả bản ghi bao gồm giá trị “last_name” của “Smithee” bằng cách đổi tên thành “Smith”:
UPDATE Employees
SET last_name = 'Smith',
WHERE last_name = 'Smithee';
Câu lệnh SQL có thể sử dụng vòng lặp, biến và các thành phần khác của ngôn ngữ lập trình để cập nhật bản ghi dựa trên những tiêu chí khác nhau.
Sử dụng câu lệnh SQL theo những mục đích khác nhau - Ảnh: Internet
4. Lợi ích khi sử dụng SQL
Cơ sở dữ liệu quan hệ mang lại nhiều lợi ích và là lựa chọn ưa thích cho doanh nghiệp nhờ:
Tính linh hoạt cao hơn
Với SQL là ngôn ngữ lập trình tiêu chuẩn, cơ sở dữ liệu quan hệ tận dụng DDL của nó để sửa đổi lược đồ một cách liền mạch trong thời gian thực. Nó cho phép người dùng thêm bảng và cột mới, thay đổi mối quan hệ,... ngay lập tức mà không làm gián đoạn bất kỳ hoạt động nào của cơ sở dữ liệu.
Tính nhất quán dữ liệu tốt hơn
Cơ sở dữ liệu SQL duy trì tính nhất quán dữ liệu một cách hiệu quả trên ứng dụng và phiên bản máy chủ cơ sở dữ liệu SQL. Các loại cơ sở dữ liệu khác gặp khó khăn trong việc duy trì tính nhất quán theo thời gian thực cho khối lượng dữ liệu lớn. Các ứng dụng xử lý giao dịch kinh doanh quan trọng có thể dựa vào cơ sở dữ liệu quan hệ để duy trì tính nhất quán của dữ liệu.
Dự phòng tối thiểu
RDBMS giảm dư thừa dữ liệu nhờ triển khai chuẩn hóa. Thông qua quá trình này, dữ liệu được tổ chức để loại bỏ bất thường liên quan đến việc chèn, cập nhật và xóa dữ liệu.
Tối ưu hóa hiệu suất
Với một loạt tính năng giá trị gia tăng (VAS), RDBMS đảm bảo thực hiện các hoạt động cơ sở dữ liệu một cách dễ dàng và nhanh chóng. Tối ưu sử dụng bộ nhớ, giảm chi phí lưu trữ và xử lý tốc độ cao giúp tăng hiệu suất cơ sở dữ liệu cho tất cả ứng dụng.
Dễ bảo trì
Công cụ tự động hóa tích hợp trong hệ thống RDBMS giúp hợp lý hóa việc sửa chữa, kiểm soát và bảo trì cơ sở dữ liệu SQL. Nó giúp quản trị viên và kỹ thuật viên dễ dàng hơn trong việc duy trì, cũng như cập nhật cơ sở dữ liệu một cách chủ động.
Ngoài ra, việc sử dụng thêm công cụ bên ngoài để giám sát cơ sở dữ liệu SQL có thể mang lại cơ hội quản lý theo cách tùy chỉnh cho từng tổ chức sử dụng cơ sở dữ liệu.
5. Kỹ năng SQL và nghề nghiệp liên quan
Kỹ năng SQL được vận dụng cho nhiều nghề nghiệp, không chỉ nghề quản trị viên cơ sở dữ liệu, kiến trúc sư kho dữ liệu, lập trình viên và những người khác có vai trò trực tiếp sử dụng SQL như nhà khoa học dữ liệu, nhà phân tích kinh doanh, nhà phân tích dữ liệu, kỹ sư đám mây,...
Với tuổi thọ và tầm quan trọng đối với rất nhiều ứng dụng khác nhau, việc học ngôn ngữ SQL cơ bản, thậm chí nâng cao có thể là một mục tiêu nghề nghiệp quan trọng.
Nguồn tham khảo:
https://www.techtarget.com/searchdatamanagement/definition/SQL