SQL là gì? Các câu lệnh trong Structured Query Language là gì? Các ưu, nhược điểm và ứng dụng của SQL là gì? Vì sao SQL phổ biến ở mọi lĩnh vực? SQL là gì mà lại quan trọng đối với các lập trình viên? Nếu bạn đang có những thắc mắc như vậy, hãy theo dõi bài viết bên dưới của 200Lab để được giải đáp nhé!
SQL là gì?
Trước khi bắt đầu học một ngôn ngữ lập trình mới, bạn có thể sẽ tự hỏi: "SQL là gì?". SQL, viết tắt của Structured Query Language, là một ngôn ngữ truy vấn có cấu trúc, phổ biến trong lĩnh vực lưu trữ, xử lý và truy xuất dữ liệu trong cơ sở dữ liệu quan hệ. SQL thường được sử dụng làm ngôn ngữ chuẩn cho các hệ quản trị cơ sở dữ liệu quan hệ.
SQL thực ra được phát âm là 'sequel' nhưng mọi người vẫn chỉ đọc các từ viết tắt là S, Q và L thành SQL.
SQL đóng một vai trò quan trọng trong việc quản lý thông tin trong cơ sở dữ liệu quan hệ, mà tổ chức dữ liệu dưới dạng bảng với các hàng và cột đại diện cho các thuộc tính dữ liệu và mối quan hệ giữa chúng. Bằng cách sử dụng SQL, người dùng có khả năng thực hiện các thao tác như lưu trữ, cập nhật, xóa, tìm kiếm và truy xuất thông tin từ cơ sở dữ liệu. SQL cũng đóng vai trò quan trọng trong việc duy trì và tối ưu hiệu suất của cơ sở dữ liệu.
SQL không chỉ phổ biến trong lĩnh vực quản lý cơ sở dữ liệu mà còn là một ngôn ngữ truy vấn được sử dụng rộng rãi trong đa dạng các ứng dụng. Người làm việc trong lĩnh vực phân tích và phát triển dữ liệu thường cần nắm vững và sử dụng SQL, nhờ vào tính linh hoạt và khả năng tích hợp của nó với nhiều ngôn ngữ lập trình khác.
SQL được phát triển vào năm nào?
SQL được phát minh vào năm 1960 nhưng mãi đến năm 1980 mới được ra mắt công chúng. Đây là ngôn ngữ cơ sở dữ liệu được sử dụng để tạo, xóa, tìm nạp và sửa đổi các hàng.
- 1970 "Mô hình quan hệ cho dữ liệu dùng trong ngân hàng dữ liệu chia sẻ có khối lượng lớn" của tiến sĩ Edgar F. Codd xuất bản tháng 6 năm 1970 trong tạp chí Communications of the ACM của Hiệp hội ACM
- 1974 Các nhà nghiên cứu IBM xuất bản một bài viết giới thiệu ngôn ngữ truy vấn có cấu trúc, với tên gọi đầu tiên là sequel
- 1977 Công ty Relational Software Inc. trở thành Oracle, bắt đầu xây dựng một RDBMS thương mại.
- 1979 Oracle xuất xưởng RDBMS thương mại đầu tiên cho các hệ thống máy tính mini của Digital Equipment Corp.
- 1982 IBM xuất xưởng SQL / Data System, một SQL RDBMS cho các máy tính lớn của IBM.
- 1985 IBM xuất xưởng cơ sở dữ liệu 2, SQL RDBMS cho hệ điều hành máy tính lớn nhiều lưu trữ ảo của IBM.
- 1986 ANSI và ISO công bố chuẩn đầu tiên cho SQL.
- 1989 Bản sửa đổi đầu tiên theo tiêu chuẩn ISO SQL, SQL-89 xuất bản.
- 1992 Bản sửa đổi chính đầu tiên của ISQ SQL Standard, SQL-92, xuất bản.
- 1999 Phiên bản đầu tiên được đặt tên theo ISO, ISO/IEC SQL: 1999, thêm chức năng lập trình và hỗ trợ cho Java.
- 2003 ISO/IEC SQL: 2003, hỗ trợ cho loại dữ liệu được xác định trước cho các đối tượng ngôn ngữ đánh dấu mở rộng (XML).
- 2006 ISO/IEC SQL: 2006 mở rộng chức năng liên quan đến XML.
- 2008 ISO/IEC SQL: 2008 bổ sung hỗ trợ trong việc tham gia vào phân vùng.
- 2011 ISO/IEC SQL: 2011 cải thiện hỗ trợ cho các cơ sở dữ liệu quan hệ có chứa dữ liệu liên quan đến thời gian.
- 2016 ISO/IEC SQL: 2016 Thêm các tính năng mới, thay đổi liên quan đến ký hiệu JavaScript, hỗ trợ cho các hàm bảng đa hình và khớp mẫu hàng.
Vì sao ngôn ngữ SQL lại phổ biến trong nhiều ngành nghề?
Sau đây là những lý do giải thích tại sao SQL được sử dụng rộng rãi và phổ biến:
- SQL giúp người dùng truy xuất dữ liệu từ các hệ thống quản lý cơ sở dữ liệu quan hệ.
- SQL cũng giúp người dùng mô tả dữ liệu có cấu trúc.
- SQL cho phép người dùng tạo, thả và thực hiện các thao tác trên cơ sở dữ liệu quan hệ và các bảng của nó.
- SQL cũng giúp tạo ra chế độ xem, thủ tục lưu trữ và các chức năng khác trong cơ sở dữ liệu quan hệ.
- SQL cho phép bạn xác định và sửa đổi dữ liệu được lưu trữ trong cơ sở dữ liệu quan hệ.
Các ứng dụng của Structured Query Language
Dữ liệu có mặt ở khắp mọi nơi. Theo Diễn đàn kinh tế thế giới, trong thời đại kỹ thuật số vào năm 2020 sẽ có tới 44 Zettabytevới 1.000.000.000.000.000.000.000 byte dữ liệu.
Lúc này chúng ta sẽ đặt ra câu hỏi, vậy với nguồn dữ liệu khổng lồ như vậy thì sẽ được lưu trữ ở đâu?
Sẽ được lưu trữ trong SQL, nếu không có SQL thì những byte dữ liệu đó sẽ là vô nghĩa. Vậy đâu là những ngành có khối lượng dữ liệu lớn cần duy trì.
1. Ứng dụng SQL trong ngành tài chính
Các ngân hàng đều lưu trữ mọi thông tin giao dịch của khách hàng thông qua hệ thống của họ. Vì thế mà các văn phòng tín dụng sẽ có hồ sơ về các khoản thế chấp, thẻ tín dụng và các khoản vay sinh viên.
Các công ty bảo hiểm cũng lưu giữ hồ sơ về chính sách, thanh toán, khiếu nại và thông tin cá nhân nhạy cảm. Tất cả các dữ liệu này sẽ nằm trong cơ sở dữ liệu được mức bảo mật ở mức cao nhất trong ngôn ngữ SQL.
2. Ứng dụng SQL trong thương mại điện tử (E-commerce)
Khi khách hàng đến mua hàng, nhân viên cửa hàng sẽ thu thập thông tin cá nhân của khách hàng như mô tả sản phẩm cá nhân, tên, số điện thoại, địa chỉ, thời gian mua,...
Các công ty sẽ sử dụng thông tin trong cơ sở dữ liệu như lịch sử mua hàng và sở thích mua sắm của khách hàng để cho ra các ưu đãi khuyến mãi trực tuyến.
3. Ứng dụng SQL trong phương tiện truyền thông xã hội (Social Media)
Mỗi bài đăng trên Facebook, ảnh Instagram hoặc tin nhắn Snapchat sẽ được lưu trữ ở đâu đó. Quá trình truy vấn dữ liệu sẽ yêu cầu SQL.
Nếu không có ngôn ngữ lập trình tiêu chuẩn, sẽ không thể thao tác dữ liệu để trả lời yêu cầu tìm kiếm tùy chỉnh của người dùng.
Facebook hoặc các ứng dụng khác sẽ không thể quảng cáo và đưa ra các khuyến mãi cho đúng đối tượng người dùng được nếu không có cơ sở dữ liệu.
Ba ngành trên chỉ là một phần nhỏ những ngành cần đến cơ sở dữ liệu. Vì cơ sở dữ liệu và nhu cầu về SQL có ở khắp mọi nơi trên thế giới.
Các điểm của ngôn ngữ SQL
1. Tốc độ cao
Bằng cách sử dụng các truy vấn SQL, người dùng có thể truy xuất nhanh chóng một lượng lớn hồ sơ từ cơ sở dữ liệu.
2. Không cần code
Rất dễ để quản lý các hệ thống cơ sở dữ liệu bằng việc sử dụng SQL chuẩn mà không cần phải viết code.
3. Tiêu chuẩn được xác định rõ
SQL đã được thiết lập từ lâu và được công bố chuẩn đầu tiên bởi ISO và ANSI.
4. Tính linh hoạt
SQL có thể sử dụng trên PC, server và thậm chí là trên smart phone.
5. Ngôn ngữ tương tác
Ngôn ngữ truy vấn cấu trúc dữ liệu có thể được sử dụng để giao tiếp với cơ sở dữ liệu và nhận câu trả lời cho các câu hỏi phức tạp trong vài giây.
6. Multiple data views
Với sự trợ giúp của ngôn ngữ SQL, người dùng có thể tạo các hiển thị khác nhau về cấu trúc cơ sở dữ liệu và cơ sở dữ liệu cho những người dùng khác.
Các nhược điểm của ngôn ngữ SQL
1. Chi phí cao
Chi phí vận hành của một số phiên bản SQL khá cao. Đó là lý do tại sao một số lập trình viên không thể sử dụng SQL được.
2. Giao diện phức tạp
Một bất lợi lớn khác là giao diện của SQL khá là phức tạp, điều này đã gây ra cản trở cho những người dùng SQL trong việc truy cập và quản lý nó.
3. Không được toàn quyền kiểm soát
Các lập trình viên sử dụng SQL không có toàn quyền kiểm soát cơ sở dữ liệu do các quy tắc nghiệp vụ bị ẩn.
Những câu lệnh SQL bạn cần biết
Các câu lệnh SQL được sử dụng để giao tiếp với cơ sở dữ liệu. Nó cũng được sử dụng để thực hiện các tác vụ, chức năng và truy vấn dữ liệu cụ thể.
SQL có thể thực hiện các tác vụ khác nhau như tạo bảng, thêm dữ liệu vào bảng, thả bảng, sửa đổi bảng, đặt quyền cho người dùng.
Dưới đây là năm loại truy vấn SQL được sử dụng rộng rãi.
1. Ngôn ngữ định nghĩa dữ liệu (Data Definition Language)
Data Definition Language hay còn gọi là ngôn ngữ định nghĩa dữ liệu được viế tắt là DDL.
Được gọi là lệnh định nghĩa dữ liệu vì chúng thay đổi cấu trúc của bảng như tạo bảng, xóa bảng, thay đổi bảng.
Tất cả lệnh của DDL đều được tự động cam kết nghĩa là nó lưu vĩnh viễn tất cả các thay đổi trong cơ sở dữ liệu.
Dưới đây là một số lệnh thuộc DDL:
- Creat
- Alter
- Drop
- Truncate
1.1. Create
Tạo một bảng mới trong cơ sở dữ liệu với cú pháp:
CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);Ví dụ:
CREATE TABLE EMPLOYEE(Name VARCHAR2(20), Email VARCHAR2(100), DOB DATE);1.2. Drop
Được sử dụng để xóa toàn bộ một bảng hoặc các đối tượng khác được lưu trữ trong bảng với cú pháp
DROP TABLE table_name;Ví dụ:
DROP TABLE EMPLOYEE;1.3. Alter
Được sử dụng để sửa đổi một đối tượng của cơ sở dữ liệu. Thay đổi này có thể là sửa đổi các đặc điểm của một thuộc tính hiện có hoặc thêm một thuộc tính mới.
Cú pháp: thêm một cột mới vào bảng
ALTER TABLE table_name ADD column_name COLUMN-definition;Để sửa đổi cột hiện có trong bảng, sử dụng cú pháp:
ALTER TABLE table_name MODIFY(column_definitions....);Ví dụ:
ALTER TABLE STU_DETAILS ADD(ADDRESS VARCHAR2(20)); ALTER TABLE STU_DETAILS MODIFY (NAME VARCHAR2(20));1.4. Truncate
Được sử dụng để xóa tất cả các hàng khỏi bảng và giải phóng không gian chứa bảng với cú pháp.
TRUNCATE TABLE table_name;Ví dụ:
TRUNCATE TABLE EMPLOYEE;2. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language)
Data Manipulation Language hay còn gọi là ngôn ngữ thao tác dữ liệu thường được viết tắt là DML.
Được sử dụng để sửa đổi cơ sở dữ liệu trong các 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 với các lệnh DDL.
Dưới đây là một số lệnh thuộc DML:
- Insert
- Update
- Delete
2.1. Insert
Tạo một bảng ghi với cú pháp
INSERT INTO TABLE_NAME (col1, col2, col3,.... col N) VALUES (value1, value2, value3, .... valueN);Hoặc
INSERT INTO TABLE_NAME VALUES (value1, value2, value3, .... valueN);Ví dụ
INSERT INTO javatpoint (Author, Subject) VALUES ("Sonoo", "DBMS");2.2. Update
Cập nhật hoặc sửa đổi giá trị của một cột trong bảng với cú pháp
UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]Ví dụ
UPDATE students SET User_Name = 'Sonoo' WHERE Student_Id = '3'2.3. Delete
Xóa bảng ghi với cú pháp
DELETE FROM table_name [WHERE condition];Ví dụ
DELETE FROM javatpoint WHERE Author="Sonoo";3. Ngôn ngữ điều khiển dữ liệu (Data Control Language)
Data Control Language hay còn gọi là ngôn ngữ điều khiển dữ liệu thường được viết tắt là DCL.
Được sử dụng để cấp hoặc thu hồi đặc quyền truy cập người dùng.
Dưới đây là một số lệnh thuộc DML:
- Grant
- Revoke
3.1. Grant
Cung cấp một quyền cho người dùng với ví dụ sau
GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;3.2. Revoke
Lấy lại các quyền được cấp từ người dùng với ví dụ sau:
REVOKE SELECT, UPDATE ON MY_TABLE FROM USER1, USER2;4. Ngôn ngữ kiểm soát giao dịch (Transaction Control Language)
Transaction Control Language hay còn gọi là ngôn ngữ kiểm soát giao dịch thường được viết tắt là TCL.
Được sử dụng để thay đổi trạng thái của một số dữ liệu. Ví dụ, để commit các thay đổi giao dịch hoặc thay đổi giao dịch rollback.
Dưới đây là một số lệnh thuộc TCL:
- Commit
- Rollback
- Savepoint
4.1. Commit
Được sử dụng để lưu tất cả các giao dịch vào cơ sở dữ liệu với cú pháp
COMMIT;Ví dụ
DELETE FROM CUSTOMERS WHERE AGE = 25; COMMIT;4.2. Rollback
Được sử dụng để hoàn tác các giao dịch chưa được lưu vào cơ sở dữ liệu với cú pháp
ROLLBACK;Ví dụ
DELETE FROM CUSTOMERS WHERE AGE = 25; ROLLBACK;4.3. Savepoint
Được sử dụng để quay trở lại một giao dịch bất kỳ mà không cần trở về toàn bộ giao dịch với cú pháp
SAVEPOINT SAVEPOINT_NAME;5. Ngôn ngữ truy vấn dữ liệu (Data Query Language)
Data Query Language hay còn gọi là ngôn ngữ truy vấn dữ liệu thường được viết tắt là DQL.
DQL chỉ bao gồm một lệnh, chọn, được sử dụng để lấy dữ liệu cụ thể từ các bảng. Lệnh này đôi khi được nhóm lại với các lệnh DML.
Tất cả lệnh của DDL đều được tự động cam kết nghĩa là nó lưu vĩnh viễn tất cả các thay đổi trong cơ sở dữ liệu. Nó chỉ sử dụng một lệnh:
- Select
5.1. Select
Được sử dụng để chọn thuộc tính dựa trên điều kiện được mô tả bởi mệnh đề WHERE với cú pháp
SELECT expressions FROM TABLES WHERE conditions;Ví dụ
SELECT emp_name FROM employee WHERE age > 20;Hy vọng rằng những chia sẻ của 200Lab có thể giúp bạn hiểu rõ hơn về ngôn ngữ SQL - Structured Query Language. Bên cạnh đó, bạn cũng có thể cập nhật kiến thức cơ bản về các câu lệnh thường gặp trong SQL, cũng như lịch sử hình thành thú vị của ngôn ngữ này.
Con đường trở thành Data Analyst không đơn giản nhưng cũng đỡ vất vả hơn với sự đồng hành của 200Lab. Đừng quên theo dõi trang Blog của 200Lab để học hỏi thêm nhiều thông tin hữu ích và tìm đọc các bài viết có liên quan nữa nhé!
Bạn đã bắt đầu học SQL hay chưa?
Một vài bài viết có thể bạn sẽ thích: