Tổng quan về SQL cơ bản cho người mới
Kiến thức lập trình

Tổng quan về SQL cơ bản cho người mới

TX
Trần Xuân Hiếu
Xuất bản 2/19/2025

Bạn có bao giờ tự hỏi điều gì đang diễn ra phía sau các ứng dụng như Facebook, Instagram hay hệ thống ngân hàng điện tử? Làm thế nào mà hàng triệu dữ liệu người dùng có thể được xử lý chỉ trong tích tắc? Câu trả lời nằm ở một công nghệ nền tảng nhưng cực kỳ quan trọng.

Dù bạn là một lập trình viên mới chập chững bước vào thế giới code hay chỉ đơn giản muốn hiểu rõ cách dữ liệu được lưu trữ và xử lý, thì việc nắm vững SQL là chìa khóa để mở cánh cửa vào lĩnh vực công nghệ đầy tiềm năng này. Bài viết này sẽ đưa bạn từ những khái niệm cơ bản nhất của SQL cho đến cách sử dụng nó hiệu quả trong công việc thực tế.

SQL là gì?

SQL (Structured Query Language) là ngôn ngữ truy vấn có cấu trúc, được sử dụng để quản lý và thao tác cơ sở dữ liệu quan hệ. Ngôn ngữ SQL giúp người dùng có thể tạo (CREATE), đọc (READ), cập nhật (UPDATE) và xóa (DELETE) dữ liệu một cách dễ dàng. Với SQL cơ bản, bạn có thể làm việc với dữ liệu trong các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) như MySQL, PostgreSQL, SQL Server, và Oracle.

SQL-1.jpg
SQL là ngôn ngữ truy vấn có cấu trúc sử dụng để quản lý và thao tác cơ sở dữ liệu quan hệ

SQL là một phần không thể thiếu trong lĩnh vực công nghệ thông tin, đặc biệt là trong phát triển phần mềm, phân tích dữ liệu và quản trị hệ thống. Việc nắm vững SQL cơ bản sẽ giúp bạn làm việc hiệu quả hơn với các hệ quản trị cơ sở dữ liệu SQL.

Thành phần của ngôn ngữ SQL

SQL là một ngôn ngữ truy vấn được chia thành nhiều thành phần khác nhau để xử lý các tác vụ liên quan đến cơ sở dữ liệu SQL. Các thành phần chính của SQL bao gồm

Bảng SQL (Table)

Bảng SQL là thành phần cốt lõi của cơ sở dữ liệu SQL, nơi lưu trữ dữ liệu dưới dạng các hàng (records) và cột (fields). Mỗi bảng có một cấu trúc nhất định, bao gồm các loại dữ liệu như số nguyên, chuỗi ký tự, ngày tháng, hoặc kiểu dữ liệu đặc biệt khác. Mối quan hệ giữa các bảng được xác định thông qua khóa chính (Primary Key) và khóa ngoại (Foreign Key), giúp đảm bảo tính toàn vẹn dữ liệu và tạo sự liên kết giữa các bảng.

Câu lệnh SQL (SQL Statements)

Câu lệnh SQL là tập hợp các chỉ thị cho phép người dùng truy vấn SQL và thao tác dữ liệu trong cơ sở dữ liệu. Chúng được chia thành các nhóm chính như:

  • Ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition Language): Dùng để định nghĩa và quản lý cấu trúc của cơ sở dữ liệu SQL.
  • Ngôn ngữ thao tác dữ liệu (DML - Data Manipulation Language): Dùng để thêm, sửa, xóa dữ liệu trong bảng.
  • Ngôn ngữ truy vấn dữ liệu (DQL - Data Query Language): Dùng để truy vấn SQL và lấy dữ liệu từ bảng.
  • Ngôn ngữ kiểm soát dữ liệu (DCL - Data Control Language): Kiểm soát quyền truy cập dữ liệu.
  • Ngôn ngữ kiểm soát giao dịch (TCL - Transaction Control Language): Quản lý các giao dịch trong cơ sở dữ liệu.

Quy trình được lưu trữ (Stored Procedure)

Quy trình được lưu trữ là tập hợp các câu lệnh SQL được định nghĩa trước và lưu trữ trong hệ quản trị cơ sở dữ liệu SQL. Chúng giúp thực hiện các tác vụ phức tạp một cách tự động và nhanh chóng hơn, giảm bớt lỗi do nhập liệu thủ công. Ngoài ra, việc sử dụng stored procedures còn giúp tối ưu hiệu suất, giảm tải cho hệ thống và tăng tính bảo mật cho dữ liệu.

Chỉ mục (Index)

Chỉ mục trong SQL giúp tăng tốc độ truy vấn SQL bằng cách tạo các cấu trúc dữ liệu đặc biệt để tìm kiếm dữ liệu hiệu quả hơn. Khi một bảng có nhiều dữ liệu, chỉ mục giúp giảm thời gian tìm kiếm bằng cách sắp xếp và tối ưu hóa việc truy xuất dữ liệu.

Ràng buộc dữ liệu (Constraints)

Ràng buộc dữ liệu là các quy tắc được áp dụng trên các cột trong bảng để đảm bảo tính toàn vẹn của dữ liệu. Một số loại ràng buộc phổ biến bao gồm:

  • PRIMARY KEY: Đảm bảo mỗi bản ghi trong bảng có một giá trị duy nhất.
  • FOREIGN KEY: Thiết lập mối quan hệ giữa các bảng.
  • UNIQUE: Đảm bảo không có giá trị trùng lặp trong một cột cụ thể.
  • CHECK: Định nghĩa điều kiện mà dữ liệu trong một cột phải tuân thủ.
  • NOT NULL: Ngăn chặn giá trị NULL trong một cột.

Các thành phần trên kết hợp với nhau để tạo nên sức mạnh của SQL, giúp người dùng có thể quản lý cơ sở dữ liệu SQL một cách hiệu quả và linh hoạt.

Các câu lệnh SQL cơ bản

Ngôn ngữ định nghĩa dữ liệu (DDL)

DDL bao gồm các lệnh tạo, chỉnh sửa và xóa cấu trúc của bảng trong cơ sở dữ liệu SQL, chẳng hạn như:

  • CREATE: Tạo bảng hoặc cơ sở dữ liệu mới.
  • ALTER: Thay đổi cấu trúc của bảng hiện có.
  • DROP: Xóa bảng hoặc cơ sở dữ liệu.

Ví dụ:

CREATE TABLE NhanVien (

   ID INT PRIMARY KEY,

   Ten NVARCHAR(50),

   ChucVu NVARCHAR(30),

   Luong DECIMAL(10,2)

);

Ngôn ngữ truy vấn dữ liệu (DQL)

DQL giúp truy vấn SQL và lấy dữ liệu từ cơ sở dữ liệu. Lệnh quan trọng nhất trong nhóm này là:

  • SELECT - Lấy dữ liệu từ một hoặc nhiều bảng.

Ví dụ:

SELECT Ten, Luong FROM NhanVien WHERE Luong > 10000000;

Ngôn ngữ thao tác dữ liệu (DML)

DML gồm các lệnh giúp thao tác dữ liệu trong bảng:

  • INSERT: Thêm dữ liệu mới vào bảng.
  • UPDATE: Cập nhật dữ liệu hiện có.
  • DELETE: Xóa dữ liệu khỏi bảng.

Ví dụ:

INSERT INTO NhanVien (ID, Ten, ChucVu, Luong) VALUES (1, 'Nguyen Van A', 'Truong Phong', 15000000);

Ngôn ngữ kiểm soát dữ liệu (DCL)

DCL giúp kiểm soát quyền truy cập vào cơ sở dữ liệu SQL:

  • GRANT: Cấp quyền truy cập dữ liệu.
  • REVOKE: Thu hồi quyền truy cập dữ liệu.

Ví dụ:

GRANT SELECT ON NhanVien TO UserABC;

Ngôn ngữ kiểm soát giao dịch (TCL)

TCL (Transaction Control Language) quản lý các giao dịch trong cơ sở dữ liệu:

  • COMMIT: Lưu các thay đổi.
  • ROLLBACK: Hoàn tác các thay đổi chưa lưu.
  • SAVEPOINT: Đánh dấu điểm khôi phục trong giao dịch.

Ví dụ:

BEGIN TRANSACTION;

UPDATE NhanVien SET Luong = Luong * 1.1;

SAVEPOINT Savepoint1;

DELETE FROM NhanVien WHERE Luong < 5000000;

ROLLBACK TO Savepoint1;

COMMIT;

Tầm quan trọng của truy vấn SQL?

Truy vấn SQL đóng vai trò quan trọng trong việc quản lý và xử lý dữ liệu trong các hệ thống cơ sở dữ liệu quan hệ. Dưới đây là một số lý do chính khiến SQL trở thành lựa chọn hàng đầu khi làm việc với dữ liệu:

  • Truy xuất dữ liệu nhanh chóng: SQL giúp người dùng có thể tìm kiếm, lọc và lấy dữ liệu một cách chính xác và hiệu quả chỉ với một vài câu lệnh đơn giản.
  • Tính linh hoạt cao: SQL hỗ trợ nhiều cách truy vấn dữ liệu khác nhau, từ các truy vấn đơn giản đến các truy vấn phức tạp cósử dụng điều kiện (WHERE), nhóm dữ liệu (GROUP BY), hoặc kết hợp nhiều bảng (JOINs).
  • Khả năng xử lý dữ liệu lớn: SQL được tối ưu hóa để xử lý các tập dữ liệu lớn, giúp truy vấn SQL hoạt động hiệu quả ngay cả khi làm việc với hàng triệu bản ghi.
  • Tự động hóa và tối ưu hiệu suất: SQL hỗ trợ các tính năng như stored procedures và indexing để tối ưu hóa tốc độ xử lý dữ liệu và giảm tải cho hệ thống.
  • Đảm bảo tính toàn vẹn và bảo mật dữ liệu: SQL hỗ trợ các cơ chế như kiểm soát truy cập, ràng buộc dữ liệu và quản lý giao dịch để bảo vệ dữ liệu khỏi mất mát hoặc thay đổi ngoài ý muốn.
  • Khả năng tích hợp cao: SQL có thể dễ dàng tích hợp với nhiều ngôn ngữ lập trình và hệ thống phần mềm, giúp ứng dụng có thể truy cập và sử dụng dữ liệu một cách linh hoạt.

Với những lợi ích trên, SQL trở thành công cụ không thể thiếu cho các lập trình viên, nhà phân tích dữ liệu và quản trị viên hệ thống khi làm việc với cơ sở dữ liệu SQL.

Tổng quan về SQL và NoSQL - có gì giống và khác?

Cả SQL và NoSQL đều có ưu điểm riêng, tùy vào mục đích sử dụng mà chúng ta có thể lựa chọn loại cơ sở dữ liệu phù hợp nhất.

SQL và NoSQL là hai mô hình cơ sở dữ liệu phổ biến, mỗi loại có những đặc điểm riêng và phù hợp với từng nhu cầu cụ thể. Dưới đây là sự giống và khác nhau giữa hai loại cơ sở dữ liệu này:

Điểm giống nhau

Lưu trữ và quản lý dữ liệu: Cả SQL và NoSQL đều được thiết kế để tìm kiếm, lọc và truy xuất dữ liệu (Querying Data) một cách hiệu quả.

Hỗ trợ truy vấn dữ liệu: Dù có cách tiếp cận khác nhau, cả hai loại đều cung cấp công cụ để truy xuất và thao tác dữ liệu.

Tích hợp với ứng dụng: SQL và NoSQL đều có thể tích hợp với nhiều ngôn ngữ lập trình như Python, Java, PHP, C#,...

Bảo mật dữ liệu: Cả hai hệ thống đều có các cơ chế bảo mật để kiểm soát truy cập và bảo vệ dữ liệu khỏi các mối đe dọa.

Điểm khác nhau

Tiêu chí

SQL (Cơ sở dữ liệu quan hệ)

NoSQL (Cơ sở dữ liệu phi quan hệ)

Cấu trúc dữ liệu

Dữ liệu được tổ chức theo mô hình bảng (Table-based Structure) với hàng (Rows) và cột (Columns)

Dữ liệu có thể lưu trữ dưới dạng document, key-value, column-family hoặc graph

Tính linh hoạt

Cấu trúc dữ liệu cố định, cần định nghĩa trước schema

Cấu trúc Flexible Schema, không yêu cầu schema cố định

Khả năng mở rộng

Thường mở rộng theo chiều dọc (nâng cấp phần cứng)

Mở rộng theo chiều ngang (thêm nhiều máy chủ)

Hiệu suất truy vấn

Phù hợp với các hệ thống cần đảm bảo tính toàn vẹn và nhất quán

Phù hợp với hệ thống yêu cầu tốc độ cao và mở rộng linh hoạt

Ứng dụng phổ biến

Hệ thống tài chính, quản lý khách hàng, thương mại điện tử

Big Data, mạng xã hội, ứng dụng thời gian thực

Khi nào nên dùng SQL và khi nào nên dùng NoSQL?

Việc lựa chọn giữa SQL và NoSQL là một quyết định quan trọng trong quá trình thiết kế hệ thống cơ sở dữ liệu. Mỗi loại cơ sở dữ liệu đều có những ưu điểm riêng, phù hợp với từng nhu cầu cụ thể.

SQL-2.jpg
Tuỳ theo nhu cầu và mục đích bạn có thể cân nhắc giữa SQL và NoSQL

Dùng SQL khi: Dữ liệu có cấu trúc chặt chẽ, yêu cầu tính nhất quán cao và các mối quan hệ phức tạp giữa dữ liệu (VD: hệ thống ngân hàng, quản lý nhân sự, thương mại điện tử).

Dùng NoSQL khi: Cần xử lý dữ liệu lớn, tốc độ truy vấn nhanh và yêu cầu linh hoạt trong lưu trữ dữ liệu (VD: mạng xã hội, hệ thống IoT, ứng dụng di động có quy mô lớn).

5 nghề nghiệp tiềm năng dành cho người học SQL?

SQL không chỉ là một ngôn ngữ truy vấn dữ liệu mà còn đóng vai trò quan trọng trong nhiều ngành nghề khác nhau. Dưới đây là một số công việc phổ biến yêu cầu kỹ năng SQL

Lập trình viên

Lập trình viên thường xuyên làm việc với cơ sở dữ liệu SQL để lưu trữ, truy xuất và xử lý dữ liệu trong các ứng dụng phần mềm. Dù là phát triển web, ứng dụng di động hay hệ thống doanh nghiệp, SQL cơ bản là một kỹ năng cần thiết. Các ngôn ngữ lập trình phổ biến như Python, Java, PHP, và C# đều có thư viện hỗ trợ SQL.

Quản trị viên cơ sở dữ liệu

DBA chịu trách nhiệm thiết kế, bảo trì và tối ưu hóa cơ sở dữ liệu SQL. Công việc này đòi hỏi kiến thức sâu về ngôn ngữ SQL, bao gồm quản lý quyền truy cập, bảo mật dữ liệu và tối ưu hiệu suất truy vấn SQL.

Nhà phân tích dữ liệu 

Nhà phân tích dữ liệu sử dụng SQL để trích xuất dữ liệu, tạo báo cáo trực quan hóa dữ liệu (data visualization) và hỗ trợ ra quyết định kinh doanh. Với các truy vấn SQL, họ có thể tìm kiếm thông tin quan trọng từ cơ sở dữ liệu SQL, phân tích xu hướng và đưa ra chiến lược kinh doanh.

Kỹ sư dữ liệu

Data Engineer xây dựng và duy trì hệ thống xử lý dữ liệu quy mô lớn, thường làm việc với cả SQL và NoSQL. Họ thiết kế hệ thống ETL/ELT, tối ưu hóa Data Warehouse hoặc Data Lake và hỗ trợ các nhóm khác truy xuất dữ liệu hiệu quả.

Nhà khoa học dữ liệu 

Data Scientist sử dụng SQL để thu thập và làm sạch dữ liệu trước khi áp dụng các mô hình máy học. Dữ liệu trong cơ sở dữ liệu SQL thường được làm sạch và chuẩn bị để phục vụ các mô hình Machine Learning (ML) nhằm dự đoán và phân tích xu hướng

Chuyên viên kiểm thử phần mềm

QA Tester sử dụng SQL để kiểm tra tính toàn vẹn dữ liệu, đảm bảo hệ thống hoạt động chính xác. Họ có thể truy vấn SQL để kiểm tra dữ liệu trước và sau khi thực hiện các thao tác CRUD (Create, Read, Update, Delete).

Nhân viên kinh doanh và tiếp thị dữ liệu 

Các Business Intelligence Analyst sử dụng SQL để phân tích dữ liệu khách hàng, đo lường hiệu suất và tối ưu chiến lược kinh doanh. SQL giúp họ tạo báo cáo chi tiết dựa trên dữ liệu thực tế, hỗ trợ các quyết định chiến lược.

Quản lý hệ thống và DevOps

Các chuyên viên DevOps sử dụng SQL để giám sát hiệu suất cơ sở dữ liệu, quản lý tài nguyên hệ thống và tối ưu hóa quy trình triển khai phần mềm.

Tổng kết

SQL cơ bản không chỉ là nền tảng cho những ai muốn làm việc với cơ sở dữ liệu mà còn là chìa khóa mở ra nhiều cơ hội nghề nghiệp hấp dẫn trong lĩnh vực công nghệ. Từ việc hiểu rõ SQL là gì, cách viết truy vấn SQL hiệu quả, đến khám phá các ứng dụng thực tế của ngôn ngữ này, hy vọng bạn đã có được cái nhìn toàn diện để bắt đầu hành trình của mình trong thế giới dữ liệu. Hãy luyện tập thường xuyên để nắm vững kiến thức và áp dụng vào các dự án thực tế của bạn!

Bạn đã sẵn sàng đổi thay sự nghiệp chưa?

Onschool Bootcamp tự hào chỉ trong 120 ngày, đào tạo thế hệ lập trình viên kiến tạo thế giới số - bắt đầu từ con số 0

Đừng quên chia sẻ bài viết này!

facebook
linkedin
x
copy
Sao chép link

Đăng ký tư vấn

Các Chương trình Đào tạo tại Onschool Bootcamp

Fullstack java web developer
Fullstack javascript (Nodejs & reactjs web developer
Fullstack Python web developer
Fullstack PHP web developer
Cross-Platform Mobile App Development
phonezalomessenger