SQL là một ngôn ngữ giúp ích mọi người khá nhiều trong việc học, tiếp cận và xử lí những Data sao cho phù hợp.
Bài viết với mong muốn truyền tải những nội dung khái quát nhất về SQL, giúp mọi người hiểu rõ về ngôn ngữ này, tại sao phải học, engage người đọc qua những hình ảnh minh họa hay mô tả sơ quá trình xử lí dữ liệu. Và có thể đề cập thêm quá trình học SQL sao cho hiệu quả.
Cơ sở dữ liệu (Database) là gì?

Cơ sở dữ liệu (Database) là một tập hợp các dữ liệu có tổ chức, thường được lưu trữ và truy cập điện tử từ hệ thống máy tính hoặc tồn tại dưới dạng tập tin trong hệ quản trị cơ sở dữ liệu. Hệ quản lý cơ sở dữ liệu (Database Management System – DBMS) là phần mềm tương tác với người dùng cuối, ứng dụng vào chính cơ sở dữ liệu để thu thập, kiểm soát và phân tích dữ liệu. Nó cũng giúp kiểm soát quyền truy cập vào cơ sở dữ liệu của nhiều người dùng khác nhau. Cùng với nhau, dữ liệu và DBMS, cùng với các ứng dụng được liên kết với chúng, được gọi là một hệ thống cơ sở dữ liệu, thường được rút ngắn thành cơ sở dữ liệu.
Cơ sở dữ liệu quan hệ (Relational Database Management System – RDMS) là một loại cơ sở dữ liệu lưu trữ và cung cấp quyền truy cập vào các điểm dữ liệu có liên quan đến nhau đã bắt đầu trở nên thịnh hành trong những năm 1980. Cơ sở dữ liệu quan hệ dựa trên mô hình quan hệ, một cách trực quan, đơn giản để biểu diễn dữ liệu trong bảng và phần lớn sử dụng SQL để ghi và truy vấn dữ liệu. Trong cơ sở dữ liệu quan hệ, mỗi hàng trong bảng là một bản ghi với một ID duy nhất được gọi là khóa. Các cột của bảng chứa các thuộc tính của dữ liệu và mỗi bản ghi thường có một giá trị cho mỗi thuộc tính, giúp dễ dàng thiết lập mối quan hệ giữa các điểm dữ liệu. Đến đây, chắc hẳn các bạn đã có cho mình những cái nhìn chung và khái quát nhất về các loại cơ sở dữ liệu. Vậy thì tiếp theo đây, chúng ta hãy cùng nhau khám phá để hiểu rõ hơn về SQL nhé.
SQL là gì? Nguồn gốc của SQL
SQL là viết tắt của từ Structured Query Language, nghĩa là ngôn ngữ truy vấn mang tính cấu trúc. Đây là một loại ngôn ngữ máy tính vô cùng đặc thù, giúp hỗ trợ các thao tác lưu trữ, truy xuất dữ liệu cùng một cơ sở dữ liệu quan hệ một cách vô cùng nhanh chóng. Trong thực tế, SQL là ngôn ngữ chuẩn được sử dụng hầu hết cho hệ cơ sở dữ liệu quan hệ. Tất cả các hệ thống quản lý cơ sở dữ liệu quan hệ (RDMS) như MySQL, MS Access, Oracle, Postgres và SQL Server… đều sử dụng SQL làm ngôn ngữ cơ sở dữ liệu chuẩn.
Nguồn gốc:
SQL bắt đầu từ những năm 1970, khi các kỹ sư của IBM là Donald Chamberlin và Raymond Boyce thiết kế phiên bản đầu tiên để tương tác và lấy dữ liệu được lưu trữ trong hệ thống cơ sở dữ liệu của công ty.
Giữa những năm 1970, một nhóm các nhà phát triển tại trung tâm nghiên cứu của IBM tại San Jose phát triển hệ thống cơ sở dữ liệu “Hệ thống R” dựa trên mô hình của Codd. Structured English Query Language, viết tắt là “SEQUEL” (tạm dịch là “Ngôn ngữ truy vấn tiếng Anh có cấu trúc”), được thiết kế để quản lý và truy lục dữ liệu được lưu trữ trong Hệ thống R. Sau này, tên viết tắt SEQUEL được rút gọn thành SQL để tránh việc tranh chấp nhãn hiệu (từ SEQUEL đã được một công ty máy bay của UK là HawkerSiddeley đăng ký). Mặc dù SQL bị ảnh hưởng bởi công trình của tiến sĩ Codd nhưng nó không do tiến sĩ Codd thiết kế ra. Ngôn ngữ SEQUEL được thiết kế bởi Donald D. Chamberlin và Raymond F. Boyce tại IBM, và khái niệm của họ được phổ biến để tăng sự chú ý về SQL.
SQL làm được gì? Và tại sao lại sử dụng SQL?

SQL được sử dụng phổ biến trong lĩnh vực Data Science, cho phép người dùng:
- Truy cập và mô tả dữ liệu trong hệ thống RDBMS
- Xác định dữ liệu trong cơ sở dữ liệu và thao tác với dữ liệu cụ thể như sửa đổi cấu trúc bảng và chỉ mục cơ sở dữ liệu, thêm, cập nhật và xóa hàng dữ liệu,…
- Tạo và thả các cơ sở dữ liệu và bảng cũng như tạo chế độ view, thủ tục lưu trữ, chức năng trong cơ sở dữ liệu.
- Trên thực tế, SQL còn giúp tối ưu hóa, duy trì cơ sở dữ liệu và còn có thể ứng dụng nhiều hơn như thế nữa.
Ngoài ra, SQL còn có thể được xem là một kỹ năng cần phải biết trong các lĩnh vực kinh tế khác vì:
- Được sử dụng rộng rãi trong các công cụ Business Intelligence
- Câu lệnh đơn giản, dễ nhớ, dễ sử dụng và rất ngắn gọn
- Tốc độ rất cao do được tối ưu hoá với những công nghệ mới
- Khả năng thực hiện những yêu cầu phức tạp của công việc
Vậy thì tại sao ta phải học và sử dụng SQL?
Ngày nay, dữ liệu xuất hiện hầu như ở khắp mọi nơi. Mọi ứng dụng bạn dùng hay những hoạt động trên internet đều sinh ra dữ liệu mỗi phút mỗi giây. Chính vì thế, việc có thể thu thập và kiểm soát một lượng dữ liệu khổng lồ như thế này là một vấn đề khá khó khăn nếu chỉ dùng những phần mềm xử lí cơ bản như Excel. Khi lượng dữ liệu còn nhỏ, Excel là một công cụ tối ưu vì nó xử lý rất nhanh chóng. Tuy nhiên, một file Excel chỉ có thể chứa được tối đa hơn 1 triệu dòng, hơn số đó thì bạn phải dùng fle CSV mà Excel cũng không thể mở hết. Lúc đó bạn cần tới SQL để tính toán và xử lý đám database khổng lồ này. Chuyện xử lý nhiều triệu dòng, hàng tỷ ô dữ liệu với nó không phải là vấn đề. Nó được sinh ra với sức mạnh để làm chuyện này rồi. Structured Query Language – thực ra chẳng phải là cái gì đó cao siêu hay ở một trình độ quá cao. SQL cũng chỉ là các câu lệnh để lấy dữ liệu chứa trong nhiều bảng khác nhau mà thôi. Nó cũng giống như việc bạn có 1 núi các file Excel và bạn phải ngồi ghép nối chúng lại với nhau, chỉ khác là SQL giúp bạn làm chuyện đó một cách cực kì hiệu quả và tiết kiệm công sức. Hơn nữa, nhờ có độ linh hoạt cao mà SQL còn giúp bạn nhanh chóng giải quyết và trích xuất dữ liệu, từ đó có thể chủ động hơn trong công việc mà không cần phải chờ đợi ai đó trích xuất. Mặc dù SQL là ngôn ngữ khá đơn giản, nhưng nắm vững được nó là một kỹ năng là một điều vô cùng cần thiết. Tất cả các công ty lớn về công nghệ trên thế giới hiện nay như Microsoft, IBM, Oracle… đều hỗ trợ việc phát triển ngôn ngữ này và SQL được rất nhiều công ty lớn sử dụng do sự dễ dàng mà ngôn ngữ này mang lại trong các thao tác cũng như việc lập trình.
Làm quen với một số câu lệnh trong SQL
Về cơ bản, SQL là một 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ệ (RDMS). SQL có các lệnh và cú pháp tương tự như các ngôn ngữ lập trình phổ biến khác để đưa ra các kết quả một cách đơn giản và ngắn gọn nhất. Các lệnh SQL được chia thành nhiều loại khác nhau, bao gồm các loại sau:
Ngôn ngữ Truy vấn Dữ liệu (DQL) bao gồm một lệnh, SELECT, được sử dụng để lấy dữ liệu cụ thể từ các bảng.
Lệnh SELECT được 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 đã chọn. Ví dụ này sử dụng để chọn cột customer_ID từ một bảng có tên là Customer_data:
SELECT customer_ID
FROM Customer_data;
Các lệnh của Ngôn ngữ Định nghĩa Dữ liệu (DDL) còn được gọi là các lệnh định nghĩa dữ liệu vì chúng được sử dụng để định nghĩa các bảng dữ liệu. Câu lệnh tiêu biểu và phổ biến nhất trong tập lệnh này là 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 tạo cơ sở dữ liệu mới bằng cách tạo một thư mục mới, trong đó các bảng và các đối tượng cơ sở dữ liệu khác được lưu trữ dưới dạng tệp.
Câu lệnh CREATE TABLE tạo ra một bảng cơ sở dữ liệu mới. Câu lệnh CREATE TABLE có định dạng chung như sau:
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
…);
Ngoài ra, trong câu lệnh còn có thể có thêm các constraints để thêm các hạn chế đối với nội dung của bảng hoặc cột. Để hiểu rõ hơn về câu lệnh này, chúng ta hãy cùng xem qua ví dụ sau đây:
CREATE TABLE Customer_data (
id int NOT NULL,
name varchar(50) NOT NULL,
address text,
email varchar(50),
phone varchar(10) NOT NULL);
Câu lệnh trên tạo một bảng dữ liệu tên Customer_data bao gồm các cột id, name, address, email và phone. Int, varchar (50) và text là các kiểu dữ liệu cho biết dữ liệu nào có thể được lưu trữ trong cột đó. Một số kiểu dữ liệu thường được sử dụng như sau:
- Int: có thể lưu trữ dưới dạng số nguyên
- Varchar(50): có thể lưu trữ các ký tự với độ dài tối đa là 50
- Text: có thể lưu trữ dưới dạng văn bản
NOT NULL: dữ liệu không được để trống khi tạo bản ghi trên cột này
Các lệnh Ngôn ngữ Thao tác Dữ liệu (DML) được sử dụng để thao tác 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ư các lệnh DDL xác định cách dữ liệu được lưu trữ, các lệnh DML hoạt động trong các bảng được xác định bằng lệnh DDL. Lệnh INSERT INTO được sử dụng để thêm các bản ghi vào một bảng cơ sở dữ liệu. Câu lệnh sau đây thêm một bản ghi mới vào bảng Customer_data:
INSERT INTO Customer_data (
last_name,
frst_name)
VALUES (
‘An’,
‘Nguyen’);
Lệnh UPDATE được sử dụng để thực hiện các thay đổi đối với 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ả các bản ghi bao gồm giá trị last_name của Ngyn bằng cách đổi tên thành Nguyen:
UPDATE Customer_data
SET last_name = ‘Ngyn’,
WHERE last_name = ‘Nguyen’;
Lệnh DELETE xóa các hàng khỏi bảng đã đặt tên. Trong ví dụ này, tất cả các bản ghi của khách hàng có last_name là Nguyen đều bị xóa:
DELETE FROM Customer_data
WHERE last_name=’Nguyen’;
Ngoài ra, còn một số các loại lệnh khác như các lệnh Ngôn ngữ kiểm soát dữ liệu được sử dụng để cấp hoặc thu hồi các đặc quyền truy cập của người dùng hoặc các lệnh trong ngôn ngữ điều khiển giao dịch được sử dụng để thay đổi trạng thái của một số dữ liệu.
—Hết—