SQL là gì?

SQL (Structured Query Language) là viết tắt của Ngôn ngữ truy vấn có cấu trúc, là ngôn ngữ được tiêu chuẩn hóa để tương tác với các hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS). Cơ sở dữ liệu quan hệ là tập hợp dữ liệu được tổ chức thành các bảng, trong đó mỗi bảng có một tập hợp các cột và hàng.

SQL cho phép người dùng tạo, thao tác và phân tích dữ liệu được lưu trữ trong các bảng này. SQL được các nhà khoa học máy tính IBM phát triển vào những năm 1970 và đã trở thành một trong những ngôn ngữ phổ biến và được sử dụng rộng rãi nhất để quản lý và phân tích dữ liệu

SQL được hỗ trợ bởi nhiều RDBMS, chẳng hạn như MySQL, Oracle, PostgreSQL và Microsoft SQL Server.

SQL được dùng để:

  • Tạo và quản lý cấu trúc cơ sở dữ liệu (bảng, cột, chỉ mục…).
  • Thêm, sửa, xóa dữ liệu trong bảng.
  • Truy vấn (lấy) dữ liệu theo điều kiện cụ thể.
  • Phân quyền truy cập cơ sở dữ liệu cho người dùng.

Các nhóm lệnh trong SQL

Nhóm Tên gọi Chức năng Ví dụ
DDL Data Definition Language Định nghĩa cấu trúc cơ sở dữ liệu CREATE, ALTER, DROP
DML Data Manipulation Language Thao tác dữ liệu trong bảng INSERT, UPDATE, DELETE
DQL Data Query Language Truy vấn dữ liệu SELECT
DCL Data Control Language Cấp quyền truy cập GRANT, REVOKE
TCL Transaction Control Language Quản lý giao dịch COMMIT, ROLLBACK, SAVEPOINT

PostgreSQL là gì?

PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ và đối tượng (object-relational database management system) miễn phí và nguồn mở (RDBMS) tiên tiến nhất hiện nay. khả năng mở rộng cao và tuân thủ các tiêu chuẩn kỹ thuật. Nó được thiết kế để xử lý một loạt các khối lượng công việc lớn, từ các máy tính cá nhân đến kho dữ liệu hoặc dịch vụ Web có nhiều người dùng đồng thời.

  • PostgreSQL được phát triển bởi PostgreSQL Global Development Group, Phát hành lần đầu: 08/07/1996
  • PostgreSQL linh động có thể chạy được trên nhiều nền tảng khác nhau như Mac OS X, Solaris và Windows.
  • PostgreSQL là một phần mềm mã nguồn mở miễn phí bởi vậy PostgreSQL có thể được dùng, sửa đổi và phổ biến bởi bất kỳ ai cho bất kỳ mục đích nào.
  • PostgreSQL có tính ổn định cao.
  • PostgreSQL là hệ thống quản lý cơ sở dữ liệu đầu tiên triển khai tính năng kiểm soát đồng thời nhiều phiên bản (MVCC).

Các tính năng hỗ trợ của PostgreSQL

  • Câu truy vấn phức hợp (complex query)
  • Thủ tục sự kiện (trigger)
  • Các khung nhìn (view)
  • Tính toàn vẹn của các giao dịch (integrity transactions)
  • Việc kiểm tra truy cập đồng thời đa phiên bản (multiversion concurrency control)
  • Truy vấn xử lý song song (parallel query)
  • Sao chép dữ liệu dạng luồng (Streaming replication)

Kiểu dữ liệu

  • Nguyên hàm: Số nguyên, số, chuỗi, Boolean
  • Cấu trúc: Date/Time, Array, Phạm vi, UUID
  • Document: JSON/JSONB, XML, Key-value (Hstore)
  • Hình học: Điểm, Đường thẳng, Vòng tròn, Đa giác
  • Tùy chỉnh: Composite, Các kiểu tùy chỉnh

toàn vẹn dữ liệu

  • UNIQUE, NOT NULL
  • Primary Keys
  • Foreign Keys
  • Ràng buộc loại trừ
  • Khóa hàm số, Khóa khuyến nghị
  • Đồng quy, hiệu suất
  • Lập danh mục: B-tree, Multicolumn, Expressions, Partial
  • Lập danh mục nâng cao: GiST, SP-Gist, KNN Gist, GIN, BRIN, Bloom filters
  • Trình lập kế hoạch / trình tối ưu hóa truy vấn phức tạp, quét index-only, thống kê số liệu trên nhiều cột.
  • Giao tác, Giao tác dạng nest (thông qua lưu điểm)
  • Điều khiển đồng thời nhiều phiên bản (MVCC)
  • Truy vấn đọc song song
  • Phân vùng bảng
  • Tất cả các mức độ giao dịch độc lập được xác định trong tiêu chuẩn SQL, bao gồm cả Serializable
  • Độ tin cậy, phục hồi sau thảm hoạ
  • Ghi nhật ký ghi trước (Write-ahead Logging – WAL)
  • Replication: Không đồng bộ, Đồng bộ, Logical
  • Khôi phục điểm-theo-thời gian (Point-in-time-recovery – PITR), active standbys
  • Không gian bảng

Bảo mật

  • Xác thực: GSSAPI, SSPI, LDAP, SCRAM-SHA-256, Certificate và các hình thức khác
  • Hệ thống kiểm soát truy cập mạnh mẽ
  • Bảo mật cấp độ cột và hàng

Khả năng mở rộng

  • Phương pháp lưu trữ
  • Ngôn ngữ thủ tục: PL / PGSQL, Perl, Python (và nhiều ngôn ngữ khác)
  • Trình wrapper dữ liệu ngoài: kết nối với các cơ sở dữ liệu hoặc luồng khác với giao diện SQL chuẩn
  • Và nhiều tiện ích mở rộng cung cấp chức năng bổ sung, bao gồm cả PostGIS
  • Tìm kiếm văn bản:
  • Hỗ trợ các bộ ký tự quốc tế, ví dụ: thông qua ICU collations
  • Tìm kiếm văn bản đầy đủ

Tham khảo: Tìm hiểu hệ quản trị cơ sở dữ liệu PostgreSQL

About the Author

Đức Phát

View all author's posts

Leave a Comment

Your email address will not be published. Required fields are marked *

Bài viết khác

Go-pg

go-pg là một thư viện ORM (Object-Relational Mapping) và trình điều khiển PostgreSQL cho ngôn ngữ lập trình Go. Nó cung cấp một cách tiện lợi để tương tác với cơ sở dữ liệu PostgreSQL bằng cách ánh xạ các cấu trúc (structs) trong Go thành các bảng trong cơ sở dữ liệu và ngược […]

PostgreSQL : subquery, CTE

What is subquery in PostgreSQL? In PostgreSQL, a subquery is a query that is nested inside another query. The subquery is executed first, and its results are used as input to the outer query. Subqueries can be used in various contexts, such as in the SELECT, WHERE, and HAVING clauses of a query. For example, […]

Optimize SQL : rule and todo list

Some rule and todo list to Optimize SQL REF https://www.pgmustard.com/blog/indexing-best-practices-postgresql

PostgreSQL Compound indexes

What is Compound indexes in PostgreSQL? A compound index (also known as a composite index or a multi-column index) refers to an index that is created on two or more columns of a table. It allows PostgreSQL to quickly find rows that match a query condition based on the values in multiple columns, which can […]

PostgreSQL indexing best practices

Don’t index every column If indexes are so useful, why don’t we add them to every column? There are a few good reasons, but a big one is that indexes add overhead to writes. Not only do indexes need to be kept up to date when we write to the table, but they can also […]