SQL là ngôn ngữ để tương tác với cơ sở dữ liệu. SQL là công cụ quản lý dữ liệu được sử dụng trong nhiều lĩnh vực. Thế nhưng rất ít người biết được SQL thật sự là gì. Bài viết sau đây sẽ gửi đến bạn đáp án cho câu hỏi SQL là gì? Và SQL có quan trọng không?
SQL là gì?
SQL là viết tắt của Structured Query Language là ngôn ngữ truy vấn có cấu trúc. Nó là một ngôn ngữ, là tập hợp các lệnh để tương tác với cơ sở dữ liệu. Dùng để lưu trữ, thao tác và truy xuất dữ liệu được lưu trữ trong một cơ sở dữ liệu quan hệ. 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.
Phần lớn các công ty đều cần xây dựng một hệ thống để lưu trữ cơ sở dữ liệu. Mọi thứ trong cơ sở dữ liệu này sẽ được diễn tả ra thành nhiều bảng, có mối quan hệ với nhau. Để truy vấn và lấy dữ liệu từ các bảng này nhằm tổng hợp thành thông tin nào đó, người ta dùng đến SQL thông qua các câu query.
Nguồn gốc của SQL
SQL ra đời 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. Họ gọi nó là SEQUEL, mặc dù sau đó họ buộc phải thay đổi nó do các vấn đề bản quyền.
Tại sao phải sử dụng SQL?
Lý do SQL được sử dụng là vì mang những đặc điểm sau:
Cho phép truy cập dữ liệu trong các hệ thống quản lý cơ sở dữ liệu quan hệ.
Cho phép mô tả dữ liệu.
Cho phép xác định dữ liệu trong cơ sở dữ liệu và thao tác dữ liệu đó.
Cho phép nhúng trong các ngôn ngữ khác sử dụng mô-đun SQL, thư viện và trình biên dịch trước.
Cho phép tạo và thả các cơ sở dữ liệu và bảng.
Cho phép tạo chế độ view, thủ tục lưu trữ, chức năng trong cơ sở dữ liệu.
Cho phép thiết lập quyền trên các bảng, thủ tục và view.
Nếu lưu trữ thông tin vào một hệ thống cơ sở dữ liệu, họ chỉ cần gõ một câu lệnh SQL ngắn là đã có thể trích xuất được thông tin cần. Việc thêm/xóa/sửa cũng được thực hiện một cách dễ dàng, nhanh chóng.
Các câu lệnh SQL
Các lệnh SQL tiêu chuẩn để tương tác với cơ sở dữ liệu quan hệ là CREATE, SELECT, INSERT, UPDATE, DELETE và DROP.
DDL – Ngôn ngữ định nghĩa dữ liệu (Data Definition Language)
CREATE: Tạo ra một bảng mới hoặc các đối tượng khác trong cơ sở dữ liệu.
ALTER: Sửa đổi một đối tượng cơ sở dữ liệu hiện có, chẳng hạn như một bảng.
DROP: Xóa toàn bộ một bảng hoặc các đối tượng khác trong cơ sở dữ liệu.
DML – Ngôn ngữ thao tác dữ liệu(Data Manipulation Language)
SELECT: Lấy ra các bảng ghi nhất định từ một hoặc nhiều bảng.
INSERT: Tạo một bảng ghi..
UPDATE: Chỉnh sửa bảng ghi.
DELETE: Xóa bảng ghi.
DCL – Ngôn ngữ điều khiển dữ liệu (Data Control Language)
GRANT: Cung cấp một quyền cho người dùng.
REVOKE: Lấy lại các quyền được cấp từ người dùng.
Vì sao SQL lại quan trọng với hầu hết các cơ sở dữ liệu?
Trong công việc hàng ngày thường gặp rất nhiều loại bảng khác nhau như bảng danh sách nhân viên, danh sách phòng ban, bảng lương, bảng quyết toán… Khi bảng này được lưu thành CSDL thì có thể dùng SQL để phân tích, xử lý thông tin trong đó. Kết quả thực hiện của SQL thường là một bảng mới.
SQL còn được dùng để cập nhật thông tin cho các CSDL đã có. Ví dụ như cần phải xóa tất cả các phiếu xuất kho hai năm trước đây chẳng hạn. Bạn có thể mở bảng dữ liệu Phiếu xuất kho ra và tìm kiếm rồi xóa từng phiếu một cách thủ công, vừa mất thì giờ vừa có khả năng nhầm lẫn hoặc bỏ sót. Khi đó bạn nên dùng SQL với thời gian thực hiện chỉ tính bằng giây và đảm bảo không có sự nhầm lẫn hay bỏ sót nào cả. Trong những trường hợp như vậy kết quả câu lệnh SQL không phải là bảng mới mà chính là bảng đã được bổ sung cập nhật dữ liệu theo yêu cầu.
SQL luôn luôn thao tác trên các bảng. SQL dùng để phân tích, tổng hợp số liệu từ các bảng đã có sẵn, tạo nên các dạng bảng mới, sửa đổi cấu trúc, dữ liệu của các bảng đã có. Sau khi thực hiện một hay một chuỗi các lệnh SQL là có thể có đủ số liệu để tạo ra báo cáo theo yêu cầu công việc. Mục tiêu của các chương trình quản lý CSDL là quản lý dữ liệu được lưu trữ trong các bảng nên SQL được dùng rất thường xuyên trong mọi công việc.
Một người muốn làm về SQL nên có những tố chất gì?
Người đã có tư duy lập trình cơ bản sẽ làm quen với SQL rất nhanh. Nếu có nền tảng IT tại trường đại học thì khi học một ngôn ngữ lập trình mới sẽ nắm bắt nhanh hơn. Về cơ bản các ngôn ngữ lập trình chỉ khác nhau về cú pháp. Về bản chất hay logic thì khá tương đồng.
Tuy nhiên điều này cũng không phải là yếu tố bắt buộc. Điều quan trọng hơn là có khả năng tìm kiếm bằng tiếng Anh. Hầu hết tài liệu đều được viết bằng tiếng Anh.
Yếu tố quan trọng không kém là phải cẩn thận và tỉ mỉ vì công việc này mang tính khó khăn và rắc rối rất cao. Bởi nếu sai một li sẽ đi một dặm.
Đâu là hướng đi cho SQL Developer nói riêng và Database Developer nói chung?
Hiện tại có 2 hướng phát triển như sau:
Hướng đi thiên về kỹ thuật: Trở thành Data Architect – là người thiết kế ra cơ sở dữ liệu cho doanh nghiệp. Hiện nay, Data Scientist cũng là vị trí đang rất cần trong thời đại AI & Bigdata. Ngoài kiến thức về SQL, lập trình viên còn phải biết về xác suất thống kê và ngôn ngữ lập trình khác, thường là Python.
Hướng đi về quản lý: Đích đến sẽ là Business Analyst hoặc Project Manager.
6 lý do bạn nên học SQL
Khai thác dữ liệu
Biết sử dụng SQL sẽ cho phép bạn khai thác dữ liệu với hiệu quả cao hơn. Chỉ cần sử dụng các truy vấn cơ bản bạn có thể xác định được dữ liệu cụ thể theo yêu cầu của người dùng.
Nhu cầu lập trình viên SQL cao
Là một backend developer, khả năng sử dụng SQL là yêu cầu bắt buộc. Cho nên biết sử dụng và sử dụng thành thạo để tối ưu query db là một ưu điểm cực kỳ tốt. Xem thêm việc làm SQL.
Dữ liệu có ở mọi nơi
Mọi ứng dụng trên internet đều cần lưu trữ dữ liệu. Ngay cả các ứng dụng desktop, laptop và mobile cũng cần phải lưu dữ liệu. Khi bạn đăng ký tài khoản trên ứng dụng web, bạn đang cung cấp thông tin cho ứng dụng.
Thao tác với dữ liệu dễ dàng
Với SQL, việc bạn muốn thêm, sửa, đọc hay xóa dữ liệu rất dễ dàng. Nếu bạn muốn lấy thông tin người dùng với email chứa gmail trong đó bạn có thể chạy một câu lệnh duy nhất sau với MySQL:
mysql> select * from users where email like ‘%gmail%’
Thử tưởng tượng việc này sẽ khó khăn như thế nào nếu như bạn phải dùng một ngôn ngữ lập trình thông thường để đọc toàn bộ nội dung file và tìm ra dòng chữ có chứa ‘gmail’ trong đó.
SQL được sử dụng và hỗ trợ bởi nhiều công ty lớn
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.
SQL giúp công việc lập trình dễ dàng hơn
Nếu không xài DB để lưu trữ dữ liệu, bạn có thể lưu dữ liệu trên một file trên server. Tuy nhiên thử tưởng tượng trong ứng dụng của bạn có rất nhiều loại thông tin cần lưu và bạn quyết định sử dụng nhiều file để lưu mỗi loại dữ liệu. Khi muốn tìm một dữ liệu nào đó đồng nghĩa bạn đang lụt tung cả đóng thông tin lên.
Các câu hỏi thường gặp về SQL
SQL là gì?
SQL là viết tắt của Structured Query Language – ngôn ngữ truy vấn mang tính cấu trúc. Nó được thiết kế để quản lý dữ liệu trong một hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS). SQL là ngôn ngữ cơ sở dữ liệu, được dùng để tạo, xóa, lấy các hàng và sửa đổi các hàng.
Làm thế nào để chọn tất cả bản ghi từ table?
Sử dụng cú pháp sau: Select * from table_name;
Định nghĩa JOIN và các loại JOIN khác nhau?
Từ khóa JOIN được sử dụng để nạp dữ liệu từ hai hay nhiều bảng liên quan. Khi cần truy vấn các cột dữ liệu từ nhiều bảng khác nhau để trả về trong cùng một tập kết quả, cần sử dụng từ khóa “JOIN”
Loại JOIN là –
INNER JOIN (Hoặc JOIN)
LEFT OUTER JOIN (Hoặc LEFT JOIN)
RIGHT OUTER JOIN (Hoặc RIGHT JOIN)
FULL OUTER JOIN (Hoặc OUTER JOIN)
CROSS JOIN
SELF JOIN
Cú pháp để thêm bản ghi vào một bảng là gì?
Để thêm bản ghi trong một bảng cú pháp INSERT được sử dụng.
Ví dụ:INSERT into table_name VALUES (value1, value2..);
Làm thế nào để bạn thêm một cột vào một bảng?
Để thêm một cột khác trong bảng sử dụng lệnh.
ALTER TABLE table_name ADD (column_name);
Xác định câu lệnh Delete SQL.
Xóa được sử dụng để xóa hàng hoặc các hàng từ một bảng dựa trên điều kiện được chỉ định. Cú pháp cơ bản như sau:
DELETE FROM table_name<br>WHERE<Condition>
Xác định COMMIT?
COMMIT lưu tất cả các thay đổi được thực hiện bởi các câu lệnh DML.
DML cho phép thực thi các câu truy vấn, bao gồm cú pháp để cập nhật – sửa đổi, chèn thêm và xóa các mẩu tin.
Khóa chính (PRIMARY KEY ) là gì?
Khóa chính là cột có các giá trị xác định duy nhất mỗi hàng trong một bảng. Giá trị khóa chính không bao giờ được sử dụng lại.
Một cột là PRIMARY KEY thì không được phép có giá trị NULL.
Một bảng chỉ cho phép tối đa một PRIMARY KEY.
Mỗi bảng đều cần có khóa chính.
Khóa ngoại (Foreign key) là gì?
Khi một trường khóa chính của một bảng được thêm vào các bảng có liên quan để tạo ra trường phổ biến có liên quan đến hai bảng, nó được gọi là khóa ngoại trong các bảng khác. Các ràng buộc khóa ngoại thực thi toàn vẹn tham chiếu.
CHECK Constraint – Ràng buộc CHECK là gì?
Một ràng buộc CHECK được sử dụng để giới hạn các giá trị hoặc loại dữ liệu có thể được lưu trữ trong một cột. Nếu bản ghi không đáp ứng được điều kiện này, thì sẽ không được lưu trữ vào trong bảng.
Một bảng có thể có nhiều hơn một khóa ngoại?
Đúng, một bảng có thể có nhiều khóa ngoài và chỉ có một khóa chính.
Trường dữ liệu BOOLEAN có giá trị nào?
Đối với trường dữ liệu BOOLEAN, có hai giá trị: -1 (TRUE) và 0 (FALSE).
Thủ tục lưu trữ (stored procedure) là gì?
Một thủ tục lưu trữ là một tập hợp các truy vấn SQL có thể lấy đầu vào và gửi lại đầu ra.
IDENTITY trong SQL là gì?
Một cột IDENTITY trong SQL sẽ tự động sinh ra các giá trị số tự tăng. Có thể định nghĩa giá trị bắt đầu và gia tăng của cột nhận dạng.
NORMALIZATION – Chuẩn hóa trong sql là gì?
Quá trình thiết kế bảng để giảm thiểu sự thừa số liệu được gọi là chuẩn hóa. Chúng ta cần phải chia một cơ sở dữ liệu thành hai hay nhiều bảng và xác định các mối quan hệ giữa chúng.
Và còn rất nhiều những câu hỏi khác nữa.
Các câu lệnh SQL phổ biến
Trong SQL có khá nhiều câu lệnh, mệnh đề khác nhau. Tuy nhiên dưới đây là một số những truy vấn thường gặp nhất.
Truy vấn Update trong SQL là gì?
Truy vấn UPDATE trong SQL được sử dụng để sửa đổi các bản ghi đang tồn tại trong một bảng. Bạn có thể sử dụng mệnh đề WHERE với truy vấn UPDATE sửa đổi các hàng đã lựa chọn, nếu không, hệ thống sẽ mặc định là tất cả các hàng đều bị tác động.
Cú pháp:
UPDATE ten_bang
SET cot1 = giatri1, cot2 = giatri2…., cotN = giatriN
WHERE [dieu_kien];
Truy vấn Insert trong SQL là gì?
Lệnh INSERT INTO trong SQL được sử dụng để thêm các hàng dữ liệu mới vào một bảng trong Database.
Cú pháp:
Xác định cột để chèn dữ liệu:
INSERT INTO TABLE_TEN (cot1, cot2, cot3,…cotN)]
VALUES (giatri1, giatri2, giatri3,…giatriN);
Thao tác trên tất cả các cột trong bảng
INSERT INTO TABLE_TEN VALUES (giatri1,giatri2,giatri3,…giatriN);
Truy vấn Select trong SQL là gì?
Lệnh SELECT trong SQL được sử dụng để lấy dữ liệu từ một bảng trong Database mà trả về dữ liệu ở dạng bảng dữ liệu kết quả.
Cú pháp:
Xác định cột có giá trị muốn lấy:
SELECT cot1, cot2, cotN FROM ten_bang;
Thao tác trên tất cả các cột trong bảng:
SELECT * FROM ten_bang;
Mệnh đề Order By
Mệnh đề ORDER BY trong SQL được sử dụng để sắp xếp dữ liệu theo thứ tự tăng dần hoặc theo thứ tự giảm dần, trên một hoặc nhiều cột.
Cú pháp:
SELECT danh_sach_cot
FROM ten_bang
[WHERE dieu_kien]
[ORDER BY cot1, cot2, .. cotN] [ASC | DESC];
Mệnh đề Group By
Mệnh đề GROUP BY trong SQL được sử dụng kết hợp với lệnh SELECT để sắp xếp dữ liệu đồng nhất vào trong các nhóm.
Cú pháp:
SELECT cot1, cot2
FROM ten_bang
WHERE [ dieu_kien ]
GROUP BY cot1, cot2
ORDER BY cot1, cot2
Từ khóa Distinct
Mệnh đề DISTINCT trong SQL được sử dụng kết hợp với lệnh SELECT để loại tất cả các bản sao của bản ghi và chỉ lấy các bản ghi duy nhất.
Cú pháp:
SELECT DISTINCT cot1, cot2,…..cotN
FROM ten_bang
WHERE [dieu_kien]
Mệnh đề Where
Mệnh đề WHERE trong SQL được sử dụng để xác định một điều kiện trong khi lấy dữ liệu từ bảng đơn hoặc nhiều bảng kết hợp. Bạn sẽ sử dụng mệnh đề WHERE để lọc các bản ghi và chỉ lấy lại các bản ghi cần thiết.
Cú pháp:
SELECT cot1, cot2, cotN
FROM ten_bang
WHERE [dieu_kien]
Mệnh đề AND & OR
Các toán tử AND và OR trong SQL được sử dụng để kết hợp nhiều điều kiện để thu hẹp phạm vi dữ liệu trong một lệnh SQL. Hai loại toán tử này được gọi là toán tử liên hợp. Nó cho phép tồn tại nhiều điều kiện trong mệnh đề WHERE của một lệnh SQL.
Cú pháp:
SELECT cot1, cot2, cotN
FROM ten_bang
WHERE [dieu_kien_1] AND [dieu_kien_2]…AND [dieu_kien_N];
Một số ưu điểm khi sử dụng ngôn ngữ SQL
Dưới đây là một số ưu điểm của SQL:
Dữ liệu có ở mọi nơi: Dữ liệu xuất hiện ở mọi nơi trên màn hình từ laptop đến điện thoại của bạn. Việc học tập và tìm hiểu SQL sẽ giúp bạn biết được cách thức hoạt động của những dữ liệu này.
Thêm, sửa, đọc và xóa dữ liệu dễ dàng: với SQL, các thao tác xử lý dữ liệu trở nên dễ dàng hơn bao giờ hết. Bạn chỉ cần thực hiện một số thao tác với dữ liệu đơn giản trên SQL thay vì phải dùng nhiều câu lệnh phức tạp trên các loại ngôn ngữ khác.
SQL giúp công việc lập trình dễ dàng hơn: bạn có thể lưu nhiều dữ liệu cho nhiều ứng dụng khác nhau trên cũng một cơ sở dữ liệu và việc truy cập các cơ sở dữ liệu này trở lên đơn giản hơn nhờ một cách thức giống nhau.
Được sử dụng và hỗ trợ bởi nhiều công ty lớn: 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ữ SQL.
Lịch sử hơn 40 năm: với lịch sử phát triển hơn 40 năm từ 1970, SQL vẫn tồn tại và trụ vững đến ngày nay. Điều này cho thấy vị trí của SQL hiện tại rất khó bị thay thế bởi bất kỳ một ngôn ngữ máy tính nào khác.
Một vài nhược điểm của ngôn ngữ SQL
Dưới đây là một vài điểm hạn chế của SQL:
Giao diện khó dùng: SQL có giao diện phức tạp khiến một số người dùng khó truy cập.
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.
Thực thi: Hầu hết các chương trình cơ sở dữ liệu SQL đều có phần mở rộng độc quyền riêng.
Giá cả: Chi phí vận hành của một số phiên bản SQL khá cao khiến một số lập trình viên gặp khó khăn khi tiếp cận.
Vì sao cần học SQL ?
Bất cứ đâu bất cứ ngành nghề nào cũng đều cần dữ liệu. Dữ liệu là tài sản quý giá nhất và nó được đặt vào trung tâm của mọi quá trình ra quyết định.
Trong những năm gần đây, SQL đang quay trở lại để trở thành giao diện phổ biến để phân tích dữ liệu. SQL là một trong những kỹ năng hàng đầu cần thành thạo trong tương lai.
SQL là nền tảng cho cho các công cụ cơ sở dữ liệu được sử dụng phổ biến nhất như MySQL, SQL Server, SQLite và PostgreSQL.
Học SQL không khó
SQL không phải là ngôn ngữ lập trình, nó là ngôn ngữ truy vấn. Mục tiêu chính mà SQL được tạo ra là cung cấp khả năng cho những người bình thường có được dữ liệu họ cần từ cơ sở dữ liệu. Nó cũng là một ngôn ngữ giống như tiếng Anh, vì vậy bất kỳ ai có thể sử dụng tiếng Anh ở mức cơ bản đều có thể viết truy vấn SQL một cách dễ dàng.
SQL là một trong những kỹ năng cần thiết
Với việc rất nhiều công ty hiện đang dựa vào phân tích dữ liệu lớn để định hướng doanh nghiệp, nhân viên có kỹ năng và nền tảng SQL là một trong những kỹ năng được nhà tuyển dụng chú ý và tìm kiếm.
Qua bài viết trên, chắc hẳn bạn đã hiểu được SQL là gì rồi đúng không nào. SQL đang rất cần thiết cho hiện tại và tương lai vì vậy lựa chọn và học tập SQL sẽ mang đến rất nhiều lợi ích cho bạn về sau đấy. Chúc các bạn thành công!