T-SQL - Hướng dẫn nhanh
Vào năm 1970, sản phẩm có tên 'SEQUEL', ngôn ngữ truy vấn có cấu trúc bằng tiếng Anh, được phát triển bởi IBM và sau đó SEQUEL được đổi tên thành 'SQL', viết tắt của Structured Query Language.
Năm 1986, SQL được ANSI (Viện tiêu chuẩn quốc gia Hoa Kỳ) phê duyệt và năm 1987, nó được ISO (Tổ chức tiêu chuẩn quốc tế) chấp thuận.
SQL là một ngôn ngữ truy vấn cấu trúc là ngôn ngữ cơ sở dữ liệu chung cho tất cả các sản phẩm RDBMS. Các nhà cung cấp sản phẩm RDBMS khác nhau đã phát triển ngôn ngữ cơ sở dữ liệu của riêng họ bằng cách mở rộng SQL cho các sản phẩm RDBMS của riêng họ.
T-SQL là viết tắt của Transact Structure Query Language là một sản phẩm của Microsoft và là một phần mở rộng của SQL Language.
Thí dụ
MS SQL Server - SQL \ T-SQL
ORACLE - SQL \ PL-SQL
Kiểu dữ liệu SQL Server là một thuộc tính chỉ định kiểu dữ liệu của bất kỳ đối tượng nào. Mỗi cột, biến và biểu thức có kiểu dữ liệu liên quan trong SQL Server. Các kiểu dữ liệu này có thể được sử dụng trong khi tạo bảng. Bạn có thể chọn một kiểu dữ liệu cụ thể cho một cột trong bảng dựa trên yêu cầu của bạn.
SQL Server cung cấp bảy danh mục bao gồm danh mục kiểu dữ liệu khác để sử dụng.
Loại số chính xác
Kiểu | Từ | Đến |
---|---|---|
bigint | -9.223.372.036.854.775.808 | 9.223.372.036.854.775.807 |
int | -2.147.483.648 | 2.147.483.647 |
lửa | -32.768 | 32.767 |
tí hon | 0 | 255 |
bit | 0 | 1 |
thập phân | -10 ^ 38 +1 | 10 ^ 38 –1 |
số | -10 ^ 38 +1 | 10 ^ 38 –1 |
tiền bạc | -922.337.203.685.477.5808 | +922.337.203.685.477.5807 |
tiền nhỏ | -214.748,3648 | +214.748.3647 |
Số và thập phân là các kiểu dữ liệu tỷ lệ và độ chính xác cố định và tương đương về mặt chức năng.
Các loại số gần đúng
Kiểu | Từ | Đến |
---|---|---|
Phao nổi | -1,79E + 308 | 1,79E + 308 |
Thực tế | -3.40E + 38 | 3,40E + 38 |
Loại ngày và giờ
Kiểu | Từ | Đến |
---|---|---|
datetime(Độ chính xác 3,33 mili giây) |
1 tháng 1 năm 1753 | Ngày 31 tháng 12 năm 9999 |
smalldatetime(Độ chính xác 1 phút) |
1 tháng 1 năm 1900 | 6 tháng 6 năm 2079 |
date(Độ chính xác 1 ngày. Được giới thiệu trong SQL Server 2008) |
1 tháng 1, 0001 | Ngày 31 tháng 12 năm 9999 |
datetimeoffset(Độ chính xác 100 nano giây. Được giới thiệu trong SQL Server 2008) |
1 tháng 1, 0001 | Ngày 31 tháng 12 năm 9999 |
datetime2(Độ chính xác 100 nano giây. Được giới thiệu trong SQL Server 2008) |
1 tháng 1, 0001 | Ngày 31 tháng 12 năm 9999 |
time(Độ chính xác 100 nano giây. Được giới thiệu trong SQL Server 2008) |
00: 00: 00.0000000 | 23: 59: 59.9999999 |
Chuỗi ký tự
Sr.No | Loại & Mô tả |
---|---|
1 | char Dữ liệu ký tự không phải Unicode có độ dài cố định với độ dài tối đa là 8.000 ký tự. |
2 | varchar Dữ liệu không phải Unicode có độ dài thay đổi với tối đa 8.000 ký tự. |
3 | Varchar (max) Dữ liệu không phải Unicode có độ dài thay đổi với độ dài tối đa là 231 ký tự (Được giới thiệu trong SQL Server 2005). |
4 | text Dữ liệu không phải Unicode có độ dài thay đổi với độ dài tối đa là 2.147.483.647 ký tự |
Chuỗi ký tự Unicode
Sr.No | Loại & Mô tả |
---|---|
1 | nchar Dữ liệu Unicode có độ dài cố định với độ dài tối đa là 4.000 ký tự. |
2 | nvarchar Dữ liệu Unicode có độ dài thay đổi với độ dài tối đa là 4.000 ký tự. |
3 | Nvarchar (max) Dữ liệu Unicode có độ dài thay đổi với độ dài tối đa là 2 30 ký tự (Được giới thiệu trong SQL Server 2005). |
4 | ntext Dữ liệu Unicode có độ dài thay đổi với độ dài tối đa là 1.073.741.823 ký tự. |
Chuỗi nhị phân
Sr.No | Loại & Mô tả |
---|---|
1 | binary Dữ liệu nhị phân có độ dài cố định với độ dài tối đa là 8.000 byte. |
2 | varbinary Dữ liệu nhị phân có độ dài thay đổi với độ dài tối đa là 8.000 byte. |
3 | varbinary(max) Dữ liệu nhị phân có độ dài thay đổi với độ dài tối đa là 2 31 byte (Được giới thiệu trong SQL Server 2005). |
4 | image Dữ liệu nhị phân có độ dài thay đổi với độ dài tối đa là 2.147.483.647 byte. |
Các loại dữ liệu khác
sql_variant - Lưu trữ các giá trị của nhiều kiểu dữ liệu được SQL Server hỗ trợ, ngoại trừ văn bản, ntext và dấu thời gian.
timestamp - Lưu trữ một số duy nhất trên toàn cơ sở dữ liệu được cập nhật mỗi khi một hàng được cập nhật.
uniqueidentifier - Lưu trữ số nhận dạng duy nhất trên toàn cầu (GUID).
xml- Lưu trữ dữ liệu XML. Bạn có thể lưu trữ các phiên bản XML trong một cột hoặc một biến (Được giới thiệu trong SQL Server 2005).
cursor - Tham chiếu đến một con trỏ.
table - Lưu trữ một tập kết quả để xử lý sau này.
hierarchyid - Độ dài thay đổi, kiểu dữ liệu hệ thống được sử dụng để thể hiện vị trí trong hệ thống phân cấp (Được giới thiệu trong SQL Server 2008).
Tạo một bảng cơ bản bao gồm đặt tên cho bảng và xác định các cột của nó và kiểu dữ liệu của mỗi cột.
Máy chủ SQL CREATE TABLE câu lệnh được sử dụng để tạo một bảng mới.
Cú pháp
Sau đây là cú pháp cơ bản của câu lệnh CREATE TABLE:
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns ));
CREATE TABLE là từ khóa cho hệ thống cơ sở dữ liệu biết bạn muốn làm gì. Trong trường hợp này, bạn muốn tạo một bảng mới. Tên hoặc mã định danh duy nhất cho bảng tuân theo câu lệnh CREATE TABLE. Sau đó, trong dấu ngoặc là danh sách xác định từng cột trong bảng và kiểu dữ liệu đó là gì. Cú pháp trở nên rõ ràng hơn để hiểu với ví dụ sau.
Bản sao của bảng hiện có có thể được tạo bằng cách sử dụng kết hợp câu lệnh CREATE TABLE và câu lệnh SELECT. Bạn có thể kiểm tra chi tiết đầy đủ tại Tạo Bảng Sử dụng Bảng khác.
Thí dụ
Trong ví dụ này, hãy tạo một bảng CUSTOMERS với ID là khóa chính và KHÔNG ĐỦ là các ràng buộc cho thấy rằng các trường này không thể là NULL khi tạo bản ghi trong bảng này -
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID));
Bạn có thể xác minh xem bảng của mình đã được tạo thành công hay chưa bằng cách xem thông báo do máy chủ SQL hiển thị, nếu không, bạn có thể sử dụng lệnh sau:
exec sp_columns CUSTOMERS
Lệnh trên tạo ra kết quả sau.
TABLE_QUALIFIER TABLE_OWNER TABLE_NAME COLUMN_NAME DATA_TYPE TYPE_NAME
PRECISION LENGTH SCALE RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE
SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE SS_DATA_TYPE
TestDB dbo CUSTOMERS ID 4 int 10 4 0 10 0
NULL NULL 4 NULL NULL 1 NO 56
TestDB dbo CUSTOMERS NAME 12 varchar 20 20 NULL NULL 0
NULL NULL 12 NULL 20 2 NO 39
TestDB dbo CUSTOMERS AGE 4 int 10 4 0 10 0
NULL NULL 4 NULL NULL 3 NO 56
TestDB dbo CUSTOMERS ADDRESS 1 char 25 25 NULL NULL 1
NULL NULL 1 NULL 25 4 YES 39
TestDB dbo CUSTOMERS SALARY 3 decimal 18 20 2 10 1
NULL NULL 3 NULL NULL 5 YES 106
Bây giờ bạn có thể thấy rằng bảng CUSTOMERS có sẵn trong cơ sở dữ liệu của bạn mà bạn có thể sử dụng để lưu trữ thông tin cần thiết liên quan đến khách hàng.
Máy chủ SQL DROP TABLE câu lệnh được sử dụng để loại bỏ một định nghĩa bảng và tất cả dữ liệu, chỉ mục, trình kích hoạt, ràng buộc và các đặc tả quyền cho bảng đó.
Note - Bạn phải cẩn thận khi sử dụng lệnh này vì một khi một bảng bị xóa thì tất cả thông tin có sẵn trong bảng cũng sẽ bị mất vĩnh viễn.
Cú pháp
Sau đây là cú pháp cơ bản của câu lệnh DROP TABLE:
DROP TABLE table_name;
Thí dụ
Trước tiên hãy để chúng tôi xác minh bảng CUSTOMERS và sau đó chúng tôi sẽ xóa nó khỏi cơ sở dữ liệu -
Exec sp_columns CUSTOMERS;
Lệnh trên hiển thị bảng sau.
TABLE_QUALIFIER TABLE_OWNER TABLE_NAME COLUMN_NAME DATA_TYPE TYPE_NAME
PRECISION LENGTH SCALE RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE
SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE SS_DATA_TYPE
TestDB dbo CUSTOMERS ID 4 int 10 4 0 10 0
NULL NULL 4 NULL NULL 1 NO 56
TestDB dbo CUSTOMERS NAME 12 varchar 20 20 NULL NULL 0
NULL NULL 12 NULL 20 2 NO 39
TestDB dbo CUSTOMERS AGE 4 int 10 4 0 10 0
NULL NULL 4 NULL NULL 3 NO 56
TestDB dbo CUSTOMERS ADDRESS 1 char 25 25 NULL NULL 1
NULL NULL 1 NULL 25 4 YES 39
TestDB dbo CUSTOMERS SALARY 3 decimal 18 20 2 10 1
NULL NULL 3 NULL NULL 5 YES 106
Bảng CUSTOMERS có sẵn trong cơ sở dữ liệu, vì vậy hãy để chúng tôi loại bỏ nó. Sau đây là lệnh cho tương tự.
DROP TABLE CUSTOMERS;
Command(s) completed successfully.
Với lệnh trên, bạn sẽ không nhận được bất kỳ hàng nào.
Exec sp_columns CUSTOMERS;
No rows\data will be displayed
Máy chủ SQL INSERT INTO câu lệnh được sử dụng để thêm các hàng dữ liệu mới vào một bảng trong cơ sở dữ liệu.
Cú pháp
Sau đây là hai cú pháp cơ bản của câu lệnh INSERT INTO.
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]
VALUES (value1, value2, value3,...valueN);
Trong đó column1, column2, ... columnN là tên của các cột trong bảng mà bạn muốn chèn dữ liệu vào.
Bạn không cần chỉ định (các) tên cột trong truy vấn SQL nếu bạn đang thêm giá trị cho tất cả các cột của bảng. Nhưng đảm bảo thứ tự của các giá trị theo thứ tự như các cột trong bảng. Sau đây là cú pháp SQL INSERT INTO:
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
Thí dụ
Các câu lệnh sau sẽ tạo sáu bản ghi trong bảng CUSTOMERS -
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'kaushik', 23, 'Kota', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Chaitali', 25, 'Mumbai', 6500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'Hardik', 27, 'Bhopal', 8500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Komal', 22, 'MP', 4500.00 );
Cú pháp
Bạn có thể tạo bản ghi trong bảng CUSTOMERS bằng cú pháp thứ hai như sau:
INSERT INTO CUSTOMERS VALUES (7, 'Muffy', 24, 'Indore', 10000.00 );
Tất cả các câu lệnh trên sẽ tạo ra các bản ghi sau trong bảng CUSTOMERS:
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Điền vào một bảng bằng cách sử dụng một bảng khác
Bạn có thể điền dữ liệu vào một bảng thông qua câu lệnh SELECT trên một bảng khác với điều kiện một bảng khác có một tập hợp các trường, bắt buộc phải điền vào bảng đầu tiên. Sau đây là cú pháp:
INSERT INTO first_table_name
SELECT column1, column2, ...columnN
FROM second_table_name
[WHERE condition];
Máy chủ SQL SELECTcâu lệnh được sử dụng để tìm nạp dữ liệu từ một bảng cơ sở dữ liệu trả về dữ liệu ở dạng bảng kết quả. Các bảng kết quả này được gọi làresult-sets.
Cú pháp
Sau đây là cú pháp cơ bản của câu lệnh SELECT:
SELECT column1, column2, columnN FROM table_name;
Trong đó, column1, column2 ... là các trường của bảng có giá trị bạn muốn tìm nạp. Nếu bạn muốn tìm nạp tất cả các trường có sẵn trong trường, thì bạn có thể sử dụng cú pháp sau:
SELECT * FROM table_name;
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau:
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Lệnh sau là một ví dụ, sẽ lấy các trường ID, Tên và Mức lương của khách hàng có sẵn trong bảng CUSTOMERS -
SELECT ID, NAME, SALARY FROM CUSTOMERS;
Lệnh trên sẽ tạo ra kết quả sau.
ID NAME SALARY
1 Ramesh 2000.00
2 Khilan 1500.00
3 kaushik 2000.00
4 Chaitali 6500.00
5 Hardik 8500.00
6 Komal 4500.00
7 Muffy 10000.00
Nếu bạn muốn tìm nạp tất cả các trường của bảng CUSTOMERS, hãy sử dụng truy vấn sau:
SELECT * FROM CUSTOMERS;
Ở trên sẽ tạo ra kết quả sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Máy chủ SQL UPDATE Truy vấn được sử dụng để sửa đổi các bản ghi hiện có trong bảng.
Bạn có thể sử dụng mệnh đề WHERE với truy vấn UPDATE để cập nhật các hàng đã chọn nếu không tất cả các hàng sẽ bị ảnh hưởng.
Cú pháp
Sau đây là cú pháp cơ bản của truy vấn UPDATE với mệnh đề WHERE -
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
Bạn có thể kết hợp N số điều kiện bằng cách sử dụng toán tử AND hoặc OR.
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau:
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Lệnh sau là một ví dụ, sẽ cập nhật ADDRESS cho khách hàng có ID là 6 -
UPDATE CUSTOMERS
SET ADDRESS = 'Pune'
WHERE ID = 6;
Bảng CUSTOMERS bây giờ sẽ có các bản ghi sau:
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Pune 4500.00
7 Muffy 24 Indore 10000.00
Nếu bạn muốn sửa đổi tất cả các giá trị cột ĐỊA CHỈ và LƯƠNG trong bảng KHÁCH HÀNG, bạn không cần sử dụng mệnh đề WHERE. Truy vấn UPDATE sẽ như sau:
UPDATE CUSTOMERS
SET ADDRESS = 'Pune', SALARY = 1000.00;
Bảng CUSTOMERS bây giờ sẽ có các bản ghi sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Pune 1000.00
2 Khilan 25 Pune 1000.00
3 kaushik 23 Pune 1000.00
4 Chaitali 25 Pune 1000.00
5 Hardik 27 Pune 1000.00
6 Komal 22 Pune 1000.00
7 Muffy 24 Pune 1000.00
Máy chủ SQL DELETE Truy vấn được sử dụng để xóa các bản ghi hiện có khỏi bảng.
Bạn phải sử dụng mệnh đề WHERE với truy vấn DELETE để xóa các hàng đã chọn, nếu không tất cả các bản ghi sẽ bị xóa.
Cú pháp
Sau đây là cú pháp cơ bản của truy vấn DELETE với mệnh đề WHERE:
DELETE FROM table_name
WHERE [condition];
Bạn có thể kết hợp N số điều kiện bằng cách sử dụng toán tử AND hoặc OR.
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau:
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Lệnh sau là một ví dụ, lệnh này sẽ XÓA một khách hàng có ID là 6 -
DELETE FROM CUSTOMERS
WHERE ID = 6;
Bảng CUSTOMERS bây giờ sẽ có các bản ghi sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
7 Muffy 24 Indore 10000.00
Nếu bạn muốn XÓA tất cả các bản ghi khỏi bảng CUSTOMERS, bạn không cần sử dụng mệnh đề WHERE. Truy vấn DELETE sẽ như sau:
DELETE FROM CUSTOMERS;
Bảng KHÁCH HÀNG bây giờ sẽ không có bất kỳ bản ghi nào.
Máy chủ MS SQL WHERE mệnh đề được sử dụng để chỉ định một điều kiện trong khi tìm nạp dữ liệu từ một bảng hoặc kết hợp với nhiều bảng.
Nếu điều kiện đã cho được thỏa mãn thì chỉ khi đó nó mới trả về một giá trị cụ thể từ bảng. Bạn sẽ phải sử dụng mệnh đề WHERE để lọc các bản ghi và chỉ tìm nạp các bản ghi cần thiết.
Mệnh đề WHERE không chỉ được sử dụng trong câu lệnh SELECT, mà nó còn được sử dụng trong câu lệnh UPDATE, DELETE, v.v., mà chúng ta sẽ xem xét trong các chương tiếp theo.
Cú pháp
Sau đây là cú pháp cơ bản của câu lệnh SELECT với mệnh đề WHERE:
SELECT column1, column2, columnN
FROM table_name
WHERE [condition]
Bạn có thể chỉ định một điều kiện bằng cách sử dụng các toán tử so sánh hoặc logic như>, <, =, LIKE, NOT, v.v. Ví dụ sau sẽ làm rõ khái niệm này.
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau:
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Lệnh sau là một ví dụ sẽ tìm nạp các trường ID, Tên và Lương từ bảng CUSTOMERS trong đó mức lương lớn hơn 2000.
SELECT ID, NAME, SALARY
FROM CUSTOMERS
WHERE SALARY > 2000;
Lệnh trên sẽ tạo ra kết quả sau.
ID NAME SALARY
4 Chaitali 6500.00
5 Hardik 8500.00
6 Komal 4500.00
7 Muffy 10000.00
Lệnh sau là một ví dụ, sẽ lấy các trường ID, Tên và Lương từ bảng CUSTOMERS cho khách hàng có tên 'Hardik'. Điều quan trọng cần lưu ý là tất cả các chuỗi phải được đưa ra bên trong dấu nháy đơn ('') trong khi giá trị số nên được đưa ra mà không có bất kỳ dấu ngoặc kép nào như trong ví dụ trên -
SELECT ID, NAME, SALARY
FROM CUSTOMERS
WHERE NAME = 'Hardik';
Lệnh trên sẽ tạo ra kết quả sau.
ID NAME SALARY
5 Hardik 8500.00
Máy chủ MS SQL LIKEmệnh đề được sử dụng để so sánh một giá trị với các giá trị tương tự bằng cách sử dụng các toán tử ký tự đại diện. Có hai ký tự đại diện được sử dụng cùng với toán tử LIKE -
- Dấu phần trăm (%)
- Dấu gạch dưới (_)
Dấu phần trăm đại diện cho không, một hoặc nhiều ký tự. Dấu gạch dưới thể hiện một số hoặc một ký tự. Các biểu tượng có thể được sử dụng kết hợp.
Cú pháp
Sau đây là cú pháp cơ bản của% và _.
SELECT *\column-list FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT *\column-list FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT *\column-list FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT *\column-list FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT *\column-list FROM table_name
WHERE column LIKE '_XXXX_'
Bạn có thể kết hợp N số điều kiện bằng cách sử dụng toán tử AND hoặc OR. XXXX có thể là bất kỳ giá trị số hoặc chuỗi nào.
Thí dụ
Sau đây là một số ví dụ cho thấy phần WHERE có mệnh đề LIKE khác với các toán tử '%' và '_'.
Sr.No | Tuyên bố & Mô tả |
---|---|
1 | WHERE SALARY LIKE '200%' Tìm bất kỳ giá trị nào bắt đầu bằng 200 |
2 | WHERE SALARY LIKE '%200%' Tìm bất kỳ giá trị nào có 200 ở bất kỳ vị trí nào |
3 | WHERE SALARY LIKE '_00%' Tìm bất kỳ giá trị nào có 00 ở vị trí thứ hai và thứ ba |
4 | WHERE SALARY LIKE '2_%_%' Tìm bất kỳ giá trị nào bắt đầu bằng 2 và có độ dài ít nhất 3 ký tự |
5 | WHERE SALARY LIKE '%2' Tìm bất kỳ giá trị nào kết thúc bằng 2 |
6 | WHERE SALARY LIKE '_2%3' Tìm bất kỳ giá trị nào có số 2 ở vị trí thứ hai và kết thúc bằng số 3 |
7 | WHERE SALARY LIKE '2___3' Tìm bất kỳ giá trị nào trong một số có năm chữ số bắt đầu bằng 2 và kết thúc bằng 3 |
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Lệnh sau là một ví dụ, sẽ hiển thị tất cả các bản ghi từ bảng CUSTOMERS trong đó SALARY bắt đầu bằng 200.
SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
Lệnh trên sẽ tạo ra kết quả sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
3 kaushik 23 Kota 2000.00
Máy chủ MS SQL ORDERMệnh đề BY được sử dụng để sắp xếp dữ liệu theo thứ tự tăng dần hoặc giảm dần, dựa trên một hoặc nhiều cột. Một số kết quả truy vấn sắp xếp cơ sở dữ liệu theo thứ tự tăng dần theo mặc định.
Cú pháp
Sau đây là cú pháp cơ bản của mệnh đề ORDER BY.
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
Bạn có thể sử dụng nhiều cột trong mệnh đề ORDER BY. Đảm bảo rằng bất kỳ cột nào bạn đang sử dụng để sắp xếp, cột đó phải nằm trong danh sách cột.
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau:
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Lệnh sau là một ví dụ, sẽ sắp xếp kết quả theo thứ tự tăng dần theo TÊN và LƯƠNG.
SELECT * FROM CUSTOMERS
ORDER BY NAME, SALARY
Lệnh trên sẽ tạo ra kết quả sau.
ID NAME AGE ADDRESS SALARY
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
3 kaushik 23 Kota 2000.00
2 Khilan 25 Delhi 1500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
1 Ramesh 32 Ahmedabad 2000.00
Lệnh sau là một ví dụ, sẽ sắp xếp kết quả theo thứ tự giảm dần theo NAME.
SELECT * FROM CUSTOMERS
ORDER BY NAME DESC
Lệnh trên sẽ cho kết quả sau:
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
7 Muffy 24 Indore 10000.00
6 Komal 22 MP 4500.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
5 Hardik 27 Bhopal 8500.00
4 Chaitali 25 Mumbai 6500.00
Máy chủ SQL GROUP BY mệnh đề được sử dụng phối hợp với câu lệnh SELECT để sắp xếp dữ liệu giống nhau thành các nhóm.
Mệnh đề GROUP BY theo sau mệnh đề WHERE trong câu lệnh SELECT và đứng trước mệnh đề ORDER BY.
Cú pháp
Sau đây là cú pháp cơ bản của mệnh đề GROUP BY. Mệnh đề GROUP BY phải tuân theo các điều kiện trong mệnh đề WHERE và phải đứng trước mệnh đề ORDER BY nếu được sử dụng.
SELECT column1, column2
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2
ORDER BY column1, column2
Thí dụ
Hãy xem xét bảng CUSTOMERS có các bản ghi sau:
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Nếu bạn muốn biết tổng số tiền lương của mỗi khách hàng, thì sau đây sẽ là truy vấn GROUP BY.
SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS
GROUP BY NAME;
Lệnh trên sẽ tạo ra kết quả sau.
NAME sum of salary
Chaitali 6500.00
Hardik 8500.00
kaushik 2000.00
Khilan 1500.00
Komal 4500.00
Muffy 10000.00
Ramesh 2000.00
Bây giờ chúng ta hãy xem xét bảng CUSTOMERS sau đây có các bản ghi sau có tên trùng lặp.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Nếu chúng ta muốn biết tổng số tiền lương của mỗi khách hàng, thì sau đây sẽ là truy vấn GROUP BY.
SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS
GROUP BY NAME
Lệnh trên sẽ tạo ra kết quả sau.
NAME sum of salary
Hardik 8500.00
kaushik 8500.00
Komal 4500.00
Muffy 10000.00
Ramesh 3500.00
Máy chủ MS SQL DISTINCT từ khóa được sử dụng cùng với câu lệnh SELECT để loại bỏ tất cả các bản ghi trùng lặp và chỉ tìm nạp các bản ghi duy nhất.
Có thể có một tình huống khi bạn có nhiều bản ghi trùng lặp trong một bảng. Trong khi tìm nạp các bản ghi như vậy, sẽ hợp lý hơn nếu chỉ tìm nạp các bản ghi duy nhất thay vì tìm nạp các bản ghi trùng lặp.
Cú pháp
Sau đây là cú pháp cơ bản của từ khóa DISTINCT để loại bỏ các bản ghi trùng lặp.
SELECT DISTINCT column1, column2,.....columnN
FROM table_name
WHERE [condition]
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Hãy để chúng tôi xem cách truy vấn SELECT sau đây trả về các bản ghi lương trùng lặp.
SELECT SALARY FROM CUSTOMERS
ORDER BY SALARY
Lệnh trên sẽ tạo ra kết quả sau trong đó mức lương 2000 đến gấp đôi, đây là một bản ghi trùng lặp từ bảng gốc.
SALARY
1500.00
2000.00
2000.00
4500.00
6500.00
8500.00
10000.00
Bây giờ chúng ta hãy sử dụng từ khóa DISTINCT với truy vấn SELECT ở trên và xem kết quả.
SELECT DISTINCT SALARY FROM CUSTOMERS
ORDER BY SALARY
Lệnh trên tạo ra kết quả sau mà chúng tôi không có bất kỳ mục nhập trùng lặp nào.
SALARY
1500.00
2000.00
4500.00
6500.00
8500.00
10000.00
Máy chủ MS SQL Joinsmệnh đề được sử dụng để kết hợp các bản ghi từ hai hoặc nhiều bảng trong cơ sở dữ liệu. JOIN là một phương tiện để kết hợp các trường từ hai bảng bằng cách sử dụng các giá trị chung cho mỗi bảng.
Hãy xem xét hai bảng sau, bảng (a) CUSTOMERS như sau:
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
(b) Một bảng khác là ORDERS như sau:
OID DATE CUSTOMER_ID AMOUNT
100 2009-10-08 00:00:00.000 3 1500.00
101 2009-11-20 00:00:00.000 2 1560.00
102 2009-10-08 00:00:00.000 3 3000.00
103 2008-05-20 00:00:00.000 4 2060.00
Hãy để chúng tôi nối hai bảng này trong câu lệnh SELECT của chúng tôi như sau:
SELECT ID, NAME, AGE, AMOUNT
FROM CUSTOMERS, ORDERS
WHERE CUSTOMERS.ID = ORDERS.CUSTOMER_ID
OR
SELECT A.ID, A.NAME, A.AGE, B.AMOUNT
FROM CUSTOMERS A inner join ORDERS B on A.ID = B.Customer_ID
Lệnh trên sẽ tạo ra kết quả sau.
ID NAME AGE AMOUNT
2 Khilan 25 1560.00
3 kaushik 23 1500.00
3 kaushik 23 3000.00
4 Chaitali 25 2060.00
Điều đáng chú ý là phép nối được thực hiện trong mệnh đề WHERE. Một số toán tử có thể được sử dụng để nối các bảng, chẳng hạn như =, <,>, <>, <=,> =,! =, BETWEEN, LIKE và NOT; chúng đều có thể được sử dụng để tham gia các bảng. Tuy nhiên, toán tử phổ biến nhất là ký hiệu bằng.
Các kiểu tham gia MS SQL Server -
Có nhiều kiểu nối khác nhau có sẵn trong MS SQL Server -
INNER JOIN - Trả về các hàng khi có sự trùng khớp trong cả hai bảng.
LEFT JOIN - Trả về tất cả các hàng từ bảng bên trái, ngay cả khi không có hàng nào phù hợp trong bảng bên phải.
RIGHT JOIN - Trả về tất cả các hàng từ bảng bên phải, ngay cả khi không có hàng nào phù hợp trong bảng bên trái.
FULL JOIN - Trả về các hàng khi có một kết quả phù hợp trong một trong các bảng.
SELF JOIN - Điều này được sử dụng để nối một bảng với chính nó như thể bảng là hai bảng, tạm thời đổi tên ít nhất một bảng trong câu lệnh MS SQL Server.
CARTESIAN JOIN - Trả về tích Descartes của các tập hợp các bản ghi từ hai hoặc nhiều bảng đã nối.
A sub-query hoặc là Inner query hoặc là Nested querylà một truy vấn trong một truy vấn SQL Server khác và được nhúng trong mệnh đề WHERE. Truy vấn phụ được sử dụng để trả về dữ liệu sẽ được sử dụng trong truy vấn chính như một điều kiện để hạn chế hơn nữa dữ liệu được truy xuất.
Truy vấn phụ có thể được sử dụng với các câu lệnh SELECT, INSERT, UPDATE và DELETE cùng với các toán tử như =, <,>,> =, <=, IN, BETWEEN, v.v.
Có một số quy tắc mà các truy vấn phụ phải tuân theo:
Bạn phải đặt một truy vấn con trong dấu ngoặc đơn.
Một truy vấn con phải bao gồm mệnh đề SELECT và mệnh đề FROM.
Một truy vấn con có thể bao gồm các mệnh đề WHERE, GROUP BY và HAVING tùy chọn.
Một truy vấn con không được bao gồm các mệnh đề COMPUTE hoặc FOR BROWSE.
Bạn chỉ có thể bao gồm mệnh đề ORDER BY khi có mệnh đề TOP.
Bạn có thể lồng các truy vấn phụ lên đến 32 cấp độ.
Truy vấn con với Câu lệnh SELECT
Cú pháp
Truy vấn con được sử dụng thường xuyên nhất với câu lệnh SELECT. Sau đây là cú pháp cơ bản.
SELECT column_name [, column_name ]
FROM table1 [, table2 ]
WHERE column_name OPERATOR
(SELECT column_name [, column_name ]
FROM table1 [, table2 ]
[WHERE])
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Hãy để chúng tôi áp dụng truy vấn con sau với câu lệnh SELECT.
SELECT *
FROM CUSTOMERS
WHERE ID IN (SELECT ID FROM CUSTOMERS WHERE SALARY > 4500)
Lệnh trên sẽ tạo ra kết quả sau.
ID NAME AGE ADDRESS SALARY
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
7 Muffy 24 Indore 10000.00
Truy vấn con với câu lệnh INSERT
Truy vấn phụ cũng có thể được sử dụng với câu lệnh INSERT. Câu lệnh INSERT sử dụng dữ liệu trả về từ truy vấn con để chèn vào một bảng khác. Dữ liệu đã chọn trong truy vấn con có thể được sửa đổi bằng bất kỳ hàm ký tự, ngày tháng hoặc số nào.
Cú pháp
Sau đây là cú pháp cơ bản.
INSERT INTO table_name [ (column1 [, column2 ]) ]
SELECT [ *|column1 [, column2 ]
FROM table1 [, table2 ]
[ WHERE VALUE OPERATOR ]
Thí dụ
Hãy xem xét một bảng CUSTOMERS_BKP có cấu trúc tương tự như bảng CUSTOMERS. Sau đây là cú pháp để sao chép bảng CUSTOMERS hoàn chỉnh vào CUSTOMERS_BKP.
INSERT INTO CUSTOMERS_BKP
SELECT * FROM CUSTOMERS
WHERE ID IN (SELECT ID FROM CUSTOMERS)
Truy vấn phụ với Tuyên bố CẬP NHẬT
Truy vấn con có thể được sử dụng cùng với câu lệnh UPDATE. Có thể cập nhật một hoặc nhiều cột trong bảng khi sử dụng truy vấn con với câu lệnh UPDATE.
Cú pháp
Sau đây là cú pháp cơ bản.
UPDATE table
SET column_name = new_value
[ WHERE OPERATOR [ VALUE ]
(SELECT COLUMN_NAME
FROM TABLE_NAME)
[ WHERE) ]
Thí dụ
Giả sử chúng ta có sẵn bảng CUSTOMERS_BKP là bảng sao lưu của bảng CUSTOMERS.
Ví dụ lệnh sau cập nhật SALARY thêm 0,25 lần trong bảng KHÁCH HÀNG cho tất cả khách hàng có TUỔI lớn hơn hoặc bằng 27.
UPDATE CUSTOMERS
SET SALARY = SALARY * 0.25
WHERE AGE IN (SELECT AGE FROM CUSTOMERS_BKP WHERE AGE >= 27 )
Điều này sẽ tác động đến hai hàng và cuối cùng bảng CUSTOMERS sẽ có các bản ghi sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 500.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 2125.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Truy vấn con với Tuyên bố DELETE
Truy vấn con có thể được sử dụng cùng với câu lệnh DELETE giống như với bất kỳ câu lệnh nào khác được đề cập ở trên.
Cú pháp
Sau đây là cú pháp cơ bản.
DELETE FROM TABLE_NAME
[ WHERE OPERATOR [ VALUE ]
(SELECT COLUMN_NAME
FROM TABLE_NAME)
[ WHERE) ]
Thí dụ
Giả sử chúng ta có sẵn bảng CUSTOMERS_BKP là bảng sao lưu của bảng CUSTOMERS.
Ví dụ lệnh sau đây xóa các bản ghi khỏi bảng CUSTOMERS cho tất cả các khách hàng có TUỔI lớn hơn hoặc bằng 27.
DELETE FROM CUSTOMERS
WHERE AGE IN (SELECT AGE FROM CUSTOMERS_BKP WHERE AGE >=27 )
Điều này sẽ ảnh hưởng đến hai hàng và cuối cùng bảng CUSTOMERS sẽ có các bản ghi sau.
ID NAME AGE ADDRESS SALARY
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Máy chủ MS SQL Stored procedure được sử dụng để tiết kiệm thời gian viết lại mã bằng cách lưu cùng một mã trong cơ sở dữ liệu và cũng nhận được kết quả đầu ra cần thiết bằng cách truyền các tham số.
Cú pháp
Sau đây là cú pháp cơ bản của việc tạo thủ tục đã lưu trữ.
Create procedure <procedure_Name>
As
Begin
<SQL Statement>
End
Go
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Lệnh sau là một ví dụ sẽ tìm nạp tất cả các bản ghi từ bảng CUSTOMERS trong cơ sở dữ liệu Testdb.
CREATE PROCEDURE SelectCustomerstabledata
AS
SELECT * FROM Testdb.Customers
GO
Lệnh trên sẽ tạo ra kết quả sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
A transactionlà một đơn vị công việc được thực hiện dựa trên cơ sở dữ liệu. Giao dịch là các đơn vị hoặc chuỗi công việc được thực hiện theo một thứ tự logic, cho dù theo cách thủ công bởi người dùng hay tự động bởi một số loại chương trình cơ sở dữ liệu.
Giao dịch là sự truyền bá một hoặc nhiều thay đổi đối với cơ sở dữ liệu. Ví dụ: nếu bạn đang tạo bản ghi hoặc cập nhật bản ghi hoặc xóa bản ghi khỏi bảng, thì bạn đang thực hiện một giao dịch trên bảng. Điều quan trọng là kiểm soát các giao dịch để đảm bảo tính toàn vẹn của dữ liệu và xử lý các lỗi cơ sở dữ liệu.
Thực tế, bạn sẽ kết hợp nhiều truy vấn SQL thành một nhóm và bạn sẽ thực hiện tất cả chúng cùng nhau như một phần của giao dịch.
Thuộc tính của giao dịch
Các giao dịch có bốn thuộc tính tiêu chuẩn sau, thường được gọi bằng từ viết tắt ACID -
Atomicity- Đảm bảo rằng tất cả các hoạt động trong đơn vị công việc được hoàn thành thành công; nếu không, giao dịch sẽ bị hủy bỏ tại điểm không thành công và các hoạt động trước đó được khôi phục lại trạng thái cũ.
Consistency - Đảm bảo rằng cơ sở dữ liệu thay đổi trạng thái đúng cách khi giao dịch được cam kết thành công.
Isolation - Cho phép các giao dịch hoạt động độc lập và minh bạch với nhau.
Durability - Đảm bảo rằng kết quả hoặc hiệu lực của giao dịch đã cam kết vẫn tồn tại trong trường hợp hệ thống bị lỗi.
Kiểm soát giao dịch
Có các lệnh sau được sử dụng để kiểm soát các giao dịch:
COMMIT - Để lưu các thay đổi.
ROLLBACK - Để quay lại các thay đổi.
SAVEPOINT - Tạo điểm trong các nhóm giao dịch để QUAY LẠI.
SET TRANSACTION - Đặt tên cho một giao dịch.
Các lệnh điều khiển giao dịch chỉ được sử dụng với các lệnh DML chỉ INSERT, UPDATE và DELETE. Chúng không thể được sử dụng trong khi tạo bảng hoặc bỏ chúng vì các hoạt động này được tự động cam kết trong cơ sở dữ liệu.
Để sử dụng các lệnh điều khiển giao dịch trong MS SQL Server, chúng ta phải bắt đầu giao dịch bằng lệnh 'begin tran' hoặc bắt đầu giao dịch nếu không các lệnh này sẽ không hoạt động.
Lệnh COMMIT
Lệnh COMMIT là lệnh giao dịch được sử dụng để lưu các thay đổi được gọi bởi một giao dịch vào cơ sở dữ liệu. Lệnh này lưu tất cả các giao dịch vào cơ sở dữ liệu kể từ lệnh COMMIT hoặc ROLLBACK cuối cùng.
Cú pháp
Sau đây là cú pháp cho lệnh COMMIT.
COMMIT;
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Ví dụ lệnh sau đây sẽ xóa các bản ghi khỏi bảng có age = 25 và sau đó COMMIT các thay đổi trong cơ sở dữ liệu.
Begin Tran
DELETE FROM CUSTOMERS
WHERE AGE = 25
COMMIT
Kết quả là, hai hàng trong bảng sẽ bị xóa và câu lệnh SELECT sẽ tạo ra kết quả sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
3 kaushik 23 Kota 2000.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Lệnh ROLLBACK
Lệnh ROLLBACK là lệnh giao dịch đượ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. Lệnh này chỉ có thể được sử dụng để hoàn tác các giao dịch kể từ khi lệnh COMMIT hoặc ROLLBACK cuối cùng được phát hành.
Cú pháp
Sau đây là cú pháp cho lệnh ROLLBACK.
ROLLBACK
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Ví dụ lệnh sau sẽ xóa các bản ghi khỏi bảng có age = 25 và sau đó QUAY LẠI những thay đổi trong cơ sở dữ liệu.
Begin Tran
DELETE FROM CUSTOMERS
WHERE AGE = 25;
ROLLBACK
Do đó, thao tác xóa sẽ không ảnh hưởng đến bảng và câu lệnh SELECT sẽ tạo ra kết quả sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Lệnh SAVEPOINT
SAVEPOINT là một điểm trong giao dịch khi bạn có thể chuyển giao dịch trở lại một điểm nhất định mà không cần quay lại toàn bộ giao dịch.
Cú pháp
Sau đây là cú pháp cho lệnh SAVEPOINT.
SAVE TRANSACTION SAVEPOINT_NAME
Lệnh này chỉ phục vụ trong việc tạo SAVEPOINT giữa các câu lệnh giao dịch. Lệnh ROLLBACK được sử dụng để hoàn tác một nhóm giao dịch.
Sau đây là cú pháp để quay trở lại SAVEPOINT.
ROLLBACK TO SAVEPOINT_NAME
Trong ví dụ sau, chúng tôi sẽ xóa ba bản ghi khác nhau khỏi bảng CUSTOMERS. Chúng tôi sẽ phải tạo một SAVEPOINT trước mỗi lần xóa, để chúng tôi có thể QUAY LẠI bất kỳ SAVEPOINT nào bất kỳ lúc nào để trả lại dữ liệu thích hợp về trạng thái ban đầu.
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau:
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Sau đây là một loạt các hoạt động -
Begin Tran
SAVE Transaction SP1
Savepoint created.
DELETE FROM CUSTOMERS WHERE ID = 1
1 row deleted.
SAVE Transaction SP2
Savepoint created.
DELETE FROM CUSTOMERS WHERE ID = 2
1 row deleted.
SAVE Transaction SP3
Savepoint created.
DELETE FROM CUSTOMERS WHERE ID = 3
1 row deleted.
Ba lần xóa đã diễn ra, tuy nhiên, chúng tôi đã thay đổi ý định và quyết định QUAY LẠI về SAVEPOINT mà chúng tôi đã xác định là SP2. Vì SP2 được tạo sau lần xóa đầu tiên, hai lần xóa cuối cùng sẽ được hoàn tác -
ROLLBACK Transaction SP2
Rollback complete.
Lưu ý rằng chỉ lần xóa đầu tiên diễn ra kể từ khi chúng tôi quay trở lại SP2.
SELECT * FROM CUSTOMERS
Đã chọn 6 hàng.
ID NAME AGE ADDRESS SALARY
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Đặt lệnh GIAO DỊCH
Lệnh SET TRANSACTION có thể được sử dụng để bắt đầu một giao dịch cơ sở dữ liệu. Lệnh này được sử dụng để chỉ định các đặc điểm cho giao dịch sau đó.
Cú pháp
Sau đây là cú pháp cho ĐẶT GIAO DỊCH.
SET TRANSACTION ISOLATION LEVEL <Isolationlevel_name>
Indexeslà các bảng tra cứu đặc biệt mà công cụ tìm kiếm cơ sở dữ liệu có thể sử dụng để tăng tốc độ truy xuất dữ liệu. Nói một cách đơn giản, mộtindexlà một con trỏ tới dữ liệu trong bảng. Một chỉ mục trong cơ sở dữ liệu rất giống với một chỉ mục ở cuối sách.
Ví dụ: nếu bạn muốn tham chiếu đến tất cả các trang trong một cuốn sách thảo luận về một chủ đề nhất định, trước tiên bạn tham khảo chỉ mục, mục lục này liệt kê tất cả các chủ đề theo thứ tự bảng chữ cái và sau đó được tham chiếu đến một hoặc nhiều số trang cụ thể.
Một chỉ mục giúp tăng tốc các truy vấn SELECT và mệnh đề WHERE, nhưng nó làm chậm quá trình nhập dữ liệu, với các câu lệnh UPDATE và INSERT. Chỉ mục có thể được tạo hoặc giảm mà không ảnh hưởng đến dữ liệu.
Việc tạo chỉ mục bao gồm câu lệnh CREATE INDEX, cho phép bạn đặt tên cho chỉ mục, chỉ định bảng và cột hoặc các cột nào để lập chỉ mục và cho biết chỉ mục theo thứ tự tăng dần hay giảm dần.
Các chỉ mục cũng có thể là duy nhất, tương tự như ràng buộc UNIQUE, trong đó chỉ mục ngăn các mục nhập trùng lặp trong cột hoặc tổ hợp các cột mà trên đó có chỉ mục.
Lệnh CREATE INDEX
Sau đây là cú pháp cơ bản của CREATE INDEX.
Cú pháp
CREATE INDEX index_name ON table_name
Chỉ mục một cột
Chỉ mục một cột là chỉ mục được tạo chỉ dựa trên một cột của bảng. Sau đây là cú pháp cơ bản.
Cú pháp
CREATE INDEX index_name
ON table_name (column_name)
Thí dụ
CREATE INDEX singlecolumnindex
ON customers (ID)
Chỉ mục duy nhất
Chỉ mục duy nhất không chỉ được sử dụng cho hiệu suất mà còn cho tính toàn vẹn của dữ liệu. Chỉ mục duy nhất không cho phép chèn bất kỳ giá trị trùng lặp nào vào bảng. Sau đây là cú pháp cơ bản.
Cú pháp
CREATE UNIQUE INDEX index_name
on table_name (column_name)
Thí dụ
CREATE UNIQUE INDEX uniqueindex
on customers (NAME)
Chỉ mục tổng hợp
Chỉ mục tổng hợp là một chỉ mục trên hai hoặc nhiều cột của bảng. Sau đây là cú pháp cơ bản.
Cú pháp
CREATE INDEX index_name on table_name (column1, column2)
Thí dụ
CREATE INDEX compositeindex
on customers (NAME, ID)
Cho dù tạo chỉ mục cột đơn hay chỉ mục tổng hợp, hãy xem xét (các) cột mà bạn có thể sử dụng rất thường xuyên trong mệnh đề WHERE của truy vấn làm điều kiện lọc.
Nếu chỉ có một cột được sử dụng, chỉ mục một cột nên là lựa chọn. Nếu có hai hoặc nhiều cột thường được sử dụng trong mệnh đề WHERE làm bộ lọc, chỉ mục tổng hợp sẽ là lựa chọn tốt nhất.
Chỉ mục ngầm định
Chỉ mục ngầm định là chỉ mục được tạo tự động bởi máy chủ cơ sở dữ liệu khi một đối tượng được tạo. Chỉ mục được tạo tự động cho các ràng buộc khóa chính và các ràng buộc duy nhất.
Lệnh DROP INDEX
Một chỉ mục có thể bị loại bỏ bằng lệnh MS SQL SERVER DROP. Cần cẩn thận khi giảm chỉ số vì hiệu suất có thể bị chậm lại hoặc được cải thiện.
Cú pháp
Sau đây là cú pháp cơ bản.
DROP INDEX tablename.index_name
Khi nào cần tránh lập chỉ mục?
Mặc dù các chỉ mục nhằm mục đích nâng cao hiệu suất của cơ sở dữ liệu, nhưng đôi khi chúng nên được tránh. Các nguyên tắc sau chỉ ra khi nào việc sử dụng chỉ mục nên được xem xét lại:
Chỉ mục không nên được sử dụng trên các bảng nhỏ.
Các bảng có hoạt động cập nhật hoặc chèn hàng loạt lớn, thường xuyên sẽ không được lập chỉ mục.
Chỉ mục không được sử dụng trên các cột chứa nhiều giá trị NULL.
Các cột được thao tác thường xuyên sẽ không được lập chỉ mục.
MS SQL Server được tích hợp sẵn nhiều hàm để thực hiện xử lý trên dữ liệu chuỗi hoặc số. Sau đây là danh sách tất cả các hàm tích hợp SQL hữu ích:
SQL Server COUNT Function - Hàm tổng hợp COUNT của SQL Server được sử dụng để đếm số hàng trong bảng cơ sở dữ liệu.
SQL Server MAX Function - Hàm tổng hợp SQL Server MAX cho phép chọn giá trị cao nhất (tối đa) cho một cột nhất định.
SQL Server MIN Function - Hàm tổng hợp SQL Server MIN cho phép chọn giá trị thấp nhất (tối thiểu) cho một cột nào đó.
SQL Server AVG Function - Hàm tổng hợp AVG của SQL Server chọn giá trị trung bình cho cột bảng nhất định.
SQL Server SUM Function - Hàm tổng hợp SUM của SQL Server cho phép chọn tổng số cho một cột số.
SQL Server SQRT Function - Điều này được sử dụng để tạo ra một căn bậc hai của một số nhất định.
SQL Server RAND Function - Điều này được sử dụng để tạo một số ngẫu nhiên bằng lệnh SQL.
SQL Server CONCAT Function - Điều này được sử dụng để nối nhiều tham số thành một tham số duy nhất.
SQL Server Numeric Functions - Danh sách đầy đủ các hàm SQL cần thiết để thao tác với các số trong SQL.
SQL Server String Functions - Danh sách đầy đủ các hàm SQL cần thiết để thao tác với chuỗi trong SQL.
MS SQL Server Các hàm chuỗi có thể được áp dụng trên giá trị chuỗi hoặc sẽ trả về giá trị chuỗi hoặc dữ liệu số.
Sau đây là danh sách các hàm chuỗi với các ví dụ.
ASCII ()
Giá trị mã ascii sẽ xuất hiện dưới dạng đầu ra cho một biểu thức ký tự.
Thí dụ
Truy vấn sau sẽ cung cấp giá trị mã Ascii của một ký tự nhất định.
Select ASCII ('word')
CHAR ()
Ký tự sẽ xuất hiện dưới dạng đầu ra cho mã Ascii hoặc số nguyên đã cho.
Thí dụ
Truy vấn sau sẽ cung cấp ký tự cho một số nguyên nhất định.
Select CHAR(97)
NCHAR ()
Ký tự Unicode sẽ xuất hiện dưới dạng đầu ra cho một số nguyên nhất định.
Thí dụ
Truy vấn sau sẽ cung cấp ký tự Unicode cho một số nguyên nhất định.
Select NCHAR(300)
CHARINDEX ()
Vị trí bắt đầu cho biểu thức tìm kiếm đã cho sẽ xuất hiện dưới dạng đầu ra trong một biểu thức chuỗi nhất định.
Thí dụ
Truy vấn sau sẽ cung cấp vị trí bắt đầu của ký tự 'G' cho biểu thức chuỗi đã cho 'KING'.
Select CHARINDEX('G', 'KING')
TRÁI()
Phần bên trái của chuỗi đã cho cho đến khi số ký tự được chỉ định sẽ xuất hiện dưới dạng đầu ra cho một chuỗi nhất định.
Thí dụ
Truy vấn sau sẽ cung cấp cho chuỗi 'WORL' như đã đề cập 4 số ký tự cho chuỗi 'WORLD' đã cho.
Select LEFT('WORLD', 4)
ĐÚNG()
Phần bên phải của chuỗi đã cho cho đến khi số ký tự được chỉ định sẽ xuất hiện dưới dạng đầu ra cho một chuỗi nhất định.
Thí dụ
Truy vấn sau sẽ cung cấp cho chuỗi 'DIA' như đã đề cập 3 số ký tự cho chuỗi 'INDIA' đã cho.
Select RIGHT('INDIA', 3)
SUBSTRING ()
Một phần của chuỗi dựa trên giá trị vị trí bắt đầu và giá trị độ dài sẽ xuất hiện dưới dạng đầu ra cho một chuỗi nhất định.
Thí dụ
Các truy vấn sau sẽ cung cấp các chuỗi 'WOR', 'DIA', 'ING' như chúng ta đã đề cập (1,3), (3,3) và (2,3) làm giá trị bắt đầu và độ dài tương ứng cho các chuỗi đã cho 'WORLD' , 'INDIA' và 'KING'.
Select SUBSTRING ('WORLD', 1,3)
Select SUBSTRING ('INDIA', 3,3)
Select SUBSTRING ('KING', 2,3)
LEN ()
Số ký tự sẽ xuất hiện dưới dạng đầu ra cho một biểu thức chuỗi nhất định.
Thí dụ
Truy vấn sau sẽ đưa ra giá trị 5 cho biểu thức chuỗi 'HELLO'.
Select LEN('HELLO')
THẤP HƠN()
Chuỗi chữ thường sẽ xuất hiện dưới dạng đầu ra cho một dữ liệu chuỗi nhất định.
Thí dụ
Truy vấn sau sẽ cung cấp 'sqlserver' cho dữ liệu ký tự 'SQLServer'.
Select LOWER('SQLServer')
PHÍA TRÊN()
Chuỗi chữ hoa sẽ xuất hiện dưới dạng đầu ra cho một dữ liệu chuỗi nhất định.
Thí dụ
Truy vấn sau sẽ cung cấp 'SQLSERVER' cho dữ liệu ký tự 'SqlServer'.
Select UPPER('SqlServer')
LTRIM ()
Biểu thức chuỗi sẽ xuất hiện dưới dạng đầu ra cho một dữ liệu chuỗi nhất định sau khi loại bỏ các khoảng trống ở đầu.
Thí dụ
Truy vấn sau sẽ cung cấp 'WORLD' cho dữ liệu ký tự 'WORLD'.
Select LTRIM(' WORLD')
RTRIM ()
Biểu thức chuỗi sẽ xuất hiện dưới dạng đầu ra cho một dữ liệu chuỗi nhất định sau khi loại bỏ các khoảng trống ở cuối.
Thí dụ
Truy vấn sau sẽ cung cấp 'INDIA' cho dữ liệu ký tự 'INDIA'.
Select RTRIM('INDIA ')
THAY THẾ()
Biểu thức chuỗi sẽ xuất hiện dưới dạng đầu ra cho một dữ liệu chuỗi nhất định sau khi thay thế tất cả các lần xuất hiện của ký tự được chỉ định bằng ký tự được chỉ định.
Thí dụ
Truy vấn sau sẽ cung cấp chuỗi 'KNDKA' cho dữ liệu chuỗi 'INDIA'.
Select REPLACE('INDIA', 'I', 'K')
REPLICATE ()
Biểu thức chuỗi lặp lại sẽ xuất hiện dưới dạng đầu ra cho dữ liệu chuỗi đã cho với số lần được chỉ định.
Thí dụ
Truy vấn sau sẽ cung cấp chuỗi 'WORLDWORLD' cho dữ liệu chuỗi 'WORLD'.
Select REPLICATE('WORLD', 2)
ĐẢO NGƯỢC()
Biểu thức chuỗi ngược sẽ xuất hiện dưới dạng đầu ra cho dữ liệu chuỗi đã cho.
Thí dụ
Truy vấn sau sẽ cung cấp chuỗi 'DLROW' cho dữ liệu chuỗi 'WORLD'.
Select REVERSE('WORLD')
SOUNDEX ()
Trả về mã bốn ký tự (SOUNDEX) để đánh giá mức độ giống nhau của hai chuỗi đã cho.
Thí dụ
Truy vấn sau sẽ cung cấp 'S530' cho các chuỗi 'Smith', 'Smyth'.
Select SOUNDEX('Smith'), SOUNDEX('Smyth')
SỰ KHÁC BIỆT()
Giá trị số nguyên sẽ xuất hiện dưới dạng đầu ra của hai biểu thức đã cho.
Thí dụ
Truy vấn sau sẽ đưa ra giá trị 4 cho biểu thức 'Smith', 'Smyth'.
Select Difference('Smith','Smyth')
Note - Nếu giá trị đầu ra là 0, nó chỉ ra yếu hoặc không có sự giống nhau giữa 2 biểu thức.
KHÔNG GIAN()
Chuỗi sẽ xuất hiện dưới dạng đầu ra với số khoảng trắng được chỉ định.
Thí dụ
Truy vấn sau sẽ cho kết quả 'I LOVE INDIA'.
Select 'I'+space(1)+'LOVE'+space(1)+'INDIA'
ĐỒ ĐẠC()
Biểu thức chuỗi sẽ xuất hiện dưới dạng đầu ra cho một dữ liệu chuỗi nhất định sau khi thay thế từ ký tự bắt đầu cho đến độ dài được chỉ định bằng ký tự được chỉ định.
Thí dụ
Truy vấn sau sẽ cung cấp chuỗi 'AIJKFGH' cho dữ liệu chuỗi 'ABCDEFGH' theo ký tự bắt đầu nhất định và độ dài tương ứng là 2 và 4 và 'IJK' là chuỗi mục tiêu đã chỉ định.
Select STUFF('ABCDEFGH', 2,4,'IJK')
STR ()
Dữ liệu ký tự sẽ xuất hiện dưới dạng đầu ra cho dữ liệu số đã cho.
Thí dụ
Truy vấn sau sẽ cung cấp 187,37 cho 187,369 đã cho dựa trên độ dài được chỉ định là 6 và số thập phân là 2.
Select STR(187.369,6,2)
UNICODE ()
Giá trị số nguyên sẽ xuất hiện dưới dạng đầu ra cho ký tự đầu tiên của biểu thức đã cho.
Thí dụ
Truy vấn sau đây sẽ cung cấp 82 cho biểu thức 'RAMA'.
Select UNICODE('RAMA')
QUOTENAME ()
Chuỗi đã cho sẽ xuất hiện dưới dạng đầu ra với dấu phân cách được chỉ định.
Thí dụ
Truy vấn sau sẽ cung cấp "RAMA" cho chuỗi 'RAMA' đã cho vì chúng tôi đã chỉ định dấu ngoặc kép làm dấu phân cách.
Select QUOTENAME('RAMA','"')
PATINDEX ()
Vị trí bắt đầu của lần xuất hiện đầu tiên từ biểu thức đã cho khi chúng tôi chỉ định vị trí 'I' là bắt buộc.
Thí dụ
Truy vấn sau sẽ đưa ra kết quả 1 cho 'INDIA'.
Select PATINDEX('I%','INDIA')
ĐỊNH DẠNG()
Biểu thức đã cho sẽ xuất hiện dưới dạng đầu ra với định dạng được chỉ định.
Thí dụ
Truy vấn sau sẽ cung cấp 'Thứ Hai, ngày 16 tháng 11 năm 2015' cho hàm getdate theo định dạng được chỉ định với tên ngày trong tuần là 'D'.
SELECT FORMAT ( getdate(), 'D')
CONCAT ()
Chuỗi đơn sẽ xuất hiện sau khi nối các giá trị tham số đã cho.
Thí dụ
Truy vấn sau sẽ cung cấp 'A, B, C' cho các tham số đã cho.
Select CONCAT('A',',','B',',','C')
Sau đây là danh sách các hàm ngày trong MS SQL Server.
HẸN GẶP()
Nó sẽ trả về ngày hiện tại cùng với thời gian.
Cú pháp
Cú pháp cho hàm trên -
GETDATE()
Thí dụ
Truy vấn sau sẽ trả về ngày hiện tại cùng với thời gian trong MS SQL Server.
Select getdate() as currentdatetime
DATEPART ()
Nó sẽ trả về một phần ngày hoặc giờ.
Cú pháp
Cú pháp cho hàm trên -
DATEPART(datepart, datecolumnname)
Thí dụ
Example 1 - Truy vấn sau sẽ trả về một phần của ngày hiện tại trong MS SQL Server.
Select datepart(day, getdate()) as currentdate
Example 2 - Truy vấn sau sẽ trả về một phần của tháng hiện tại trong MS SQL Server.
Select datepart(month, getdate()) as currentmonth
DATEADD ()
Nó sẽ hiển thị ngày và giờ bằng cách cộng hoặc trừ ngày và khoảng thời gian.
Cú pháp
Cú pháp cho hàm trên -
DATEADD(datepart, number, datecolumnname)
Thí dụ
Truy vấn sau sẽ trả về ngày và giờ sau 10 ngày kể từ ngày và giờ hiện tại trong MS SQL Server.
Select dateadd(day, 10, getdate()) as after10daysdatetimefromcurrentdatetime
DATEDIFF ()
Nó sẽ hiển thị ngày và giờ giữa hai ngày.
Cú pháp
Cú pháp cho hàm trên -
DATEDIFF(datepart, startdate, enddate)
Thí dụ
Truy vấn sau sẽ trả về chênh lệch giờ giữa ngày 2015-11-16 và 2015-11-11 trong MS SQL Server.
Select datediff(hour, 2015-11-16, 2015-11-11) as
differencehoursbetween20151116and20151111
ĐỔI()
Nó sẽ hiển thị ngày và giờ ở các định dạng khác nhau.
Cú pháp
Cú pháp cho hàm trên -
CONVERT(datatype, expression, style)
Thí dụ
Các truy vấn sau sẽ trả về ngày và giờ ở định dạng khác trong MS SQL Server.
SELECT CONVERT(VARCHAR(19),GETDATE())
SELECT CONVERT(VARCHAR(10),GETDATE(),10)
SELECT CONVERT(VARCHAR(10),GETDATE(),110)
Các hàm số của MS SQL Server có thể được áp dụng trên dữ liệu số và sẽ trả về dữ liệu số.
Sau đây là danh sách các hàm Numeric với các ví dụ.
ABS ()
Giá trị tuyệt đối sẽ xuất hiện dưới dạng đầu ra cho biểu thức số.
Thí dụ
Truy vấn sau sẽ cho giá trị tuyệt đối.
Select ABS(-22)
ACOS ()
Giá trị cosin Arc sẽ xuất hiện dưới dạng đầu ra cho biểu thức số được chỉ định.
Thí dụ
Truy vấn sau đây sẽ cung cấp giá trị cosin cung bằng 0.
Select ACOS(0)
ASIN ()
Giá trị Arc sin sẽ xuất hiện dưới dạng đầu ra cho biểu thức số được chỉ định.
Thí dụ
Truy vấn sau sẽ cho giá trị cung sin là 0.
Select ASIN(0)
ATAN ()
Giá trị tiếp tuyến của cung sẽ xuất hiện dưới dạng đầu ra cho biểu thức số được chỉ định.
Thí dụ
Truy vấn sau đây sẽ cung cấp giá trị tiếp tuyến của cung là 0.
Select ATAN(0)
ATN2 ()
Giá trị tiếp tuyến của vòng cung trong cả bốn góc phần tư sẽ xuất hiện dưới dạng đầu ra cho biểu thức số được chỉ định.
Thí dụ
Truy vấn sau đây sẽ cung cấp giá trị tiếp tuyến của cung trong cả bốn góc phần tư của 0.
Select ATN2(0, -1)
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
GIỮA()
Nếu các giá trị tồn tại giữa hai biểu thức đã cho thì chúng sẽ xuất hiện dưới dạng đầu ra.
Thí dụ
Truy vấn sau đây sẽ cho kết quả sau.
SELECT salary from customers where salary between 2000 and 8500
Đầu ra
salary
2000.00
2000.00
6500.00
8500.00
4500.00
MIN ()
Giá trị nhỏ nhất sẽ xuất phát từ biểu thức đã cho.
Thí dụ
Truy vấn sau sẽ cung cấp '1500,00' cho biểu thức 'tiền lương' đã cho từ bảng khách hàng.
Select MIN(salary)from CUSTOMERS
MAX ()
Giá trị lớn nhất sẽ xuất phát từ biểu thức đã cho.
Thí dụ
Truy vấn sau sẽ cung cấp '10000,00' cho biểu thức 'tiền lương' đã cho từ bảng khách hàng.
Select MAX(salary)from CUSTOMERS
SQRT ()
Căn bậc hai của biểu thức số đã cho sẽ là đầu ra.
Thí dụ
Truy vấn sau đây sẽ cho kết quả là 2 đối với biểu thức 4 số đã cho.
Select SQRT(4)
SỐ PI()
Giá trị PI sẽ xuất hiện dưới dạng đầu ra.
Thí dụ
Truy vấn sau sẽ cung cấp 3,14159265358979 cho giá trị PI.
Select PI()
TRẦN NHÀ()
Giá trị đã cho sẽ xuất hiện dưới dạng đầu ra sau khi làm tròn số thập phân là giá trị cao nhất tiếp theo.
Thí dụ
Truy vấn sau sẽ cho 124 cho giá trị 123,25 đã cho.
Select CEILING(123.25)
SÀN NHÀ()
Giá trị đã cho sẽ xuất hiện dưới dạng đầu ra sau khi làm tròn số thập phân nhỏ hơn hoặc bằng biểu thức.
Thí dụ
Truy vấn sau sẽ cung cấp 123 cho giá trị 123,25 đã cho.
Select FLOOR(123.25)
LOG ()
Lôgarit tự nhiên của biểu thức đã cho sẽ là đầu ra.
Thí dụ
Truy vấn sau sẽ trả về 0 cho giá trị 1 đã cho.
Select LOG(1)