Trong ngôn ngữ truy vấn, chắc hẳn bạn đã từng nghe đến cái tên T-SQL. Đối với những lập trình viên thường xuyên làm việc với database thì khái niệm SQL không còn mấy xa lạ. Vậy còn T-SQL được sử dụng như thế nào? Cú pháp của ngôn ngữ T-SQL có gì đặc biệt và có có điểm gì khác so với SQL, PL/SQL. Hãy cùng tìm hiểu những kiến thức chuyên ngành thông qua bài viết của Vietnix dưới đây nhé.
T-SQL là gì?
T-SQL là viết tắt của Transact-SQL, đây là một phần mở rộng của ngôn ngữ truy vấn SQL được phát triển dựa theo tiêu chuẩn ISO và ANSI (American National Standards Institute).
T-SQL là việc thực thi ngôn ngữ cấu trúc chuẩn của Microsoft được dùng trong hệ thống SQL Server. Ngôn ngữ đặc biệt này có thể được dùng để thực hiện các thao tác với bảng như định nghĩa, chèn, xóa, cập nhật, truy vấn dữ liệu.
Đây là một ngôn ngữ truy vấn cơ sở dữ liệu khá mạnh đề cập đến kiểu dữ liệu, đối tượng tạm thời, thủ tục hệ thống và các thủ tục mở rộng. T-SQL còn có tính năng như sử dụng biến địa phương, xử lý các chuỗi/dữ liệu được thêm vào.
Tổng quan về T-SQL
Khối câu lệnh trong T-SQL sẽ được chia làm 3 nhóm tương đương với 3 chức năng chính như sau:
- Nhóm định nghĩa dữ liệu: Nhóm này gồm các câu lệnh
CREATE
,ALTER
,DROP table
, dùng để tạo, sửa đổi hoặc xóa bảng dữ liệu. Các lệnh này được sử dụng để định nghĩa cấu trúc một table. - Nhóm điều khiển dữ liệu: Gồm các lệnh
GRANT
,DENY
,REVOKE
,… dùng để phân quyền truy cập của các đối tượng table, function, view,… - Nhóm thao tác dữ liệu: Là tập hợp các lệnh để thao tác trực tiếp với dữ liệu có trong table, giúp truy vấn, tìm kiếm dữ liệu nhanh chóng. Các câu lệnh nhóm này gồm
INSERT
,UPDATE
,SELECT
,DELETE
.
Cấu trúc của ngôn ngữ T-SQL được xây dựng theo từng khối lệnh được bắt đầu bằng BEGIN
và kết thúc là END
. Một khối lệnh có thể được đặt lồng trong một khối lệnh bao trùm khác, trong mỗi khối lệnh là các câu lệnh, các câu lệnh này được ngăn cách với nhau bởi dấu chấm phẩy.
Cấu trúc một khối lệnh có dạng như sau:
Lập trình với SQL Server Management Studio
Để bắt đầu viết các câu lệnh truy vấn trên SQL server, bạn cần cài đặt công cụ SQL Server Management Studio. Sau khi cài đặt xong, bạn mở phần mềm ra sẽ thấy hình ảnh trực quan như dưới đây. Một số database đã được thiết lập sẵn khi bạn cài đầy đủ các tính năng của SQL server. Bạn có thể tạo thêm một database nhỏ với tên learningsql để bắt đầu thực hiện các thao tác ban đầu.
Để bắt đầu lập trình, bạn nhấn chuột phải vào database learningsql vừa tạo và chọn New Query, một cửa sổ làm việc mới sẽ hiện ra.
Trang Query chính là nơi bạn bắt đầu viết các dòng lệnh truy vấn.
Dưới đây là một ví dụ về khối lệnh Tính tổng hai số khai báo sẵn.
Sau khi nhập xong các câu lệnh, bạn nhấn chọn Execute ở trên thanh công cụ để thực thi khối câu lệnh đó và đợi xem kết quả trả về.
Như vậy, với các câu lệnh truy vấn trên SQL server, bạn đã thực hiện được các phép tính cơ bản đối với biến được khai báo.
Các lệnh trong T-SQL cơ bản mà bạn cần biết
Để thực hiện các thao tác truy vấn bằng ngôn ngữ T-SQL, bạn cần nắm được một số câu lệnh cơ bản sau đây.
Lệnh CREATE TABLE
Create Table là một câu lệnh dùng để tạo một bảng dữ liệu mới trong cơ sở dữ liệu. Cú pháp câu lệnh như sau:
CREATE TABLE <Table_Name>(<Column_Name> <Data_Type>)
Ví dụ:
CREATE TABLE HOCSINH ( MSHS Char(5), HOTENHS varchar(20))
Lệnh ALTER TABLE
Lệnh Alter được dùng để thực hiện các sửa đổi về dữ liệu có trong bảng như thêm, sửa, xóa,… và các ràng buộc khác. Cú pháp như sau:
ALTER TABLE <table name>
ALTER COLUMN [<Column name> <New_data_type>] | ADD
[<Column_name> <Data_type>] | DROP COLUMN [<Column_Name>]
Ví dụ: Thêm cột MALOP vào bảng HOCSINH, ta làm như sau.
ALTER TABLE HOCSINH ADD MALOP varchar(20) NULL
Lệnh DROP TABLE
Lệnh Drop table được dùng để xóa đi một bảng dữ liệu không cần dùng đến nữa. Lệnh Drop Table sẽ xóa tất cả dữ liệu, chỉ mục, mối ràng buộc, các quyền và trigger của bảng đó.
Cú pháp:
DROP TABLE <table_name>
Ví dụ: Xóa bảng HOCSINH đã tạo.
DROP TABLE HOCSINH
Lệnh INSERT
Lệnh Insert được dùng để thêm các dữ liệu mới vào bảng hoặc thêm dữ liệu có sẵn từ bảng này vào một bảng khác.
- Cú pháp thêm dữ liệu vào bảng mới
INSERT [INTO] <table_name> VALUES <values>
Trong đó:
INTO: một từ khóa
<table_name>
: Tên bảng được chèn dữ liệu.
<values>
: Dữ liệu chèn vào.
- Cú pháp thêm dữ liệu từ bảng này vào bảng khác
INSERT <table_name> SELECT <column list> FROM <tablename2>
Trong đó:
<table_name>
: Tên bảng được thêm dữ liệu.
<column list>
: Danh sách các cột được chèn, lấy từ bảng có sẵn.
<tablename2>
: Tên bảng có sẵn dữ liệu.
Lệnh UPDATE
Lệnh Update dùng để cập nhật lại dữ liệu có trong các bảng khi dữ liệu cần được thay đổi. Cú pháp:
UPDATE <table_name> SET <column_name=value> [WHERE <search condition>]
Trong đó:
<table_name>
: Là tên bảng cần cập nhật.<value>
: Các giá trị mới cần cập nhật.
Lệnh DELETE
Câu lệnh Delete dùng để xóa một hàng trong bảng. Câu lệnh:
DELETE FROM <table_name> [WHERE <search_condition>]
Trong đó:
<table_name>
: Tên của bảng chứa hàng muốn xóa.- Mệnh đề WHERE
<search_condition>
: Dùng để xác định điều kiện của hàng muốn xóa.
Ví dụ:
DELETE FROM HS_info WHERE HS_id=9999
Lệnh SELECT
Câu lệnh Select
có rất nhiều chức năng, thường nó sẽ được dùng để trích xuất ra dữ liệu mong muốn.
Cú pháp đơn giản nhất:
SELECT <columnname(s)> FROM <tablename>
Trong đó:
<columnname(s)>
: Tên cột muốn chọn ra.
<tablename>
: Tên bảng chứa cột muốn chọn.
Lệnh rẽ nhánh If-elseif-else
Câu lệnh rẽ nhánh If-elseif-else dùng để thực thi nhiều câu lệnh khác nhau trong đó khối lệnh elseif
sẽ thực thi phụ thuộc vào lệnh if
ở trên. Cú pháp:
IF <điều kiện 1>
Khối lệnh 1;
[ELSE IF <điều kiện 2>
Khối lệnh 2;
]....
[ELSE
Khối lệnh n + 1;]
Ví dụ:
Vòng lặp While
Vòng lặp While
được dùng để lặp đi lặp lại các xử lý trong khối lệnh nếu điều kiện vòng lặp vẫn đảm bảo True.
Cú pháp:
WHILE condition
BEGIN
-- ...statements...
END;
Trong vòng While
, nếu muốn thoát ra khỏi vòng lặp bạn có thể dùng lệnh Break
hoặc dùng lệnh Continue
để bỏ qua các dòng lệnh trong vòng While
bên dưới nó để thực hiện một vòng lặp mới.
Sự khác biệt giữa SQL và PL/SQL
SQL là ngôn ngữ truy vấn cơ sở dữ liệu cơ bản. Còn PL/SQL (Procedural Language extensions to SQL) là một ngôn ngữ truy vấn hướng hướng thủ tục được sử dụng cho Oracle SQL. Điểm khác biệt giữa SQL và PL/SQL được xác định như sau:
Tiêu chí | SQL | PL/SQL |
---|---|---|
Khái niệm | SQL là ngôn ngữ truy vấn duy nhất được dùng để thực hiện các thao tác DDL và DML. | PL/SQL là một khối lệnh để viết các đoạn chương trình, hàm, thủ tục,… |
Bản chất | SQL cơ bản mang tính chất khai báo, định nghĩa các biến, thành phần trong cơ sở dữ liệu. | PL/SQL là những thủ tục, xác định quy trình thực hiện của các tiến trình truy vấn. |
Cách thực thi | Thực thi từng câu lệnh. | Thực thi cả một khối lệnh. |
Tương tác với database | Tương tác trực tiếp với Database Server. | Không tương tác với Database Server. |
Khả năng tương tác | Không thể chứa các mã PL/SQL. | PL/SQL cũng là một extension của SQL nên có chứa SQL trong đó. |
Mục đích sử dụng | Chủ yếu sử dụng SQL để thao tác với dữ liệu. | Chủ yếu sử dụng PL/SQL để thao tác với các ứng dụng. |
Sự khác nhau giữa T-SQL và PL-SQL
Để phân biệt giữa T-SQL và PL/SQL ta có thể dựa trên các yếu tố sau đây:
Tiêu chí | T-SQL | PL/SQL |
---|---|---|
Nhà phát triển | T-SQL (Transact Structure Query Language) là ngôn ngữ truy vấn được phát triển độc quyền bởi Microsoft. | PL/SQL (Procedural Language Structural Query Language) là ngôn ngữ truy vấn được phát triển bởi Oracle. |
Mục đích | T-SQL giúp người lập trình dễ dàng kiểm soát các chương trình. | PL/SQL là một ngôn ngôn ngữ truy vấn tự nhiên, có thể kết hợp được với SQL. |
Môi trường hoạt động | Môi trường hoạt động tốt nhất của là T-SQL là trên Microsoft SQL server. | Môi trường hoạt động tốt nhất của PL/SQL là Oracle Database Server. |
Độ phức tạp | Ngôn ngữ T-SQL khá đơn giản, dễ hiểu, dễ sử dụng. | Ngôn ngữ PL/SQL khá phức tạp. |
Tác dụng | T-SQL cho phép người lập trình có thể chèn nhiều hàng trên cùng một bảng bằng câu lệnh BULK INSERT. | PL/SQL hỗ trợ cấu trúc OOP gồm đóng gói dữ liệu, nạp chồng hàm, ẩn các thông tin. |
Câu lệnh SELECT INTO | Có sử dụng. | Có sử dụng. |
Câu lệnh SELECT | Có thể kết hợp với mệnh đề NOT EXISTS trong T-SQL. | Có thể kết hợp với MINUS trong PL/SQL. |
Tìm hiểu về sự khác nhau giữa SQL và T-SQL
T-SQL là một phần tính năng mở rộng của SQL song giữa chúng sẽ có những điểm khác nhau cơ bản sau:
Tiêu chí | SQL | T-SQL |
---|---|---|
Khái niệm | SQL là ngôn ngữ truy vấn cơ bản, tập trung vào quản lý các mối quan hệ dữ liệu trong Database. | T-SQL là một extension được sử dụng trong SQL server. |
Mục đích | Được sử dụng để quản lý các dữ liệu có trong các bảng database, nơi lưu trữ thông tin. | Tích hợp các tính năng mà SQL không có như các biến cục bộ, các phần tử lập trình thủ tục để kiểm soát linh hoạt cách chạy của các ứng dụng. |
Cách hoạt động | Các câu truy vấn SQL sẽ được gửi tuần tự về database server. | T-SQL sẽ gửi hẳn một khối lệnh trong chương trình đến máy chủ để yêu cầu xử lý cùng một lúc. |
Câu lệnh | Sử dụng các câu lệnh cơ bản như INSERT. UPDATE, DELETE, SELECT, DROP, CREAT. | Ngoài các câu lệnh giống như SQL thì T-SQL còn có các lệnh và hàm đặc trưng khác. |
Câu hỏi thường gặp
Tại sao nên sử dụng T-SQL?
T-SQL hay còn gọi là Transact-SQL là ngôn ngữ truy vấn được dành riêng cho sản phẩm của Microsoft SQL Server. Chúng có tác dụng giúp bạn thực hiện các hoạt động như truy xuất dữ liệu ở chung một hàng, chèn hàng mới hoặc truy xuất nhiều hàng. Chúng là một ngôn ngữ được sử dụng bởi SQL Server.
T-SQL có phải là 1 tiêu chuẩn mở không?
SQL là ngôn ngữ lập trình phi thủ tục được tạo ra để giúp người dùng thao tác với dữ liệu được lưu trữ ở trong cơ sở dữ liệu. Ngược lại thì T-SQL là một phần mở rộng của ngôn ngữ SQL. SQL là tiêu chuẩn mở còn T-SQL là độc quyền.
Lời kết
Trên đây là toàn bộ những kiến thức cơ bản để bạn có thể tiếp cận khái niệm T-SQL là gì cũng như các câu lệnh cơ bản cần biết khi sử dụng ngôn ngữ truy vấn này. Đối với một lập trình viên thường xuyên quản trị hệ cơ sở dữ liệu, việc nắm rõ các loại ngôn ngữ như SQL, T-SQL, PL/SQL là một yêu cầu bắt buộc. Hy vọng những thông tin mà Vietnix đã chia sẻ sẽ hữu ích đối với bạn.