Giới Thiệu Sơ Lược Về Transact SQL (T-SQL)Transact-SQL là ngôn ngữ SQL mở rộng dựa trên SQL chuẩn của ISO (International Organization for Standardization) và ANSI (American National Standards Institute) được sử dụng trong SQL Server khác với P-SQL (Procedural-SQL) dùng trong Oracle. Show Trong bài này chúng ta sẽ tìm hiểu sơ qua về T-SQL. Chúng được chia làm 3 nhóm: xem thêm chi tiết các câu lệnh SQL 1. Ngôn ngữ định nghĩa dữ liệu – Data Definition Language (DDL): Ðây là những lệnh dùng để quản lý các thuộc tính của một database như định nghĩa các hàng hoặc cột của một table, hoặc vị trí file dữ liệu của một database…thường có dạng
Trong đó Tên_đối_tượng có thể là một table, view, stored procedure, indexes… Ví dụ:Lệnh Create sau sẽ tạo ra một table tên Importers với 3 cột CompanyID, CompanyName, Contact USE Northwind CREATE TABLE Importers( CompanyID int NOT NULL, CompanyName varchar(40) NOT NULL, Contact varchar(40) NOT NULL )Lệnh Alter sau đây cho phép ta thay đổi cấu trúc của một table như thêm (hay bớt) một cột hay một Constraint…Trong ví dụ này ta sẽ thêm cột ContactTitle vào table Importers USE Northwind ALTER TABLE Importers ADD ContactTitle varchar(20) NULLLệnh Drop sau đây sẽ hoàn toàn xóa table khỏi database nghĩa là cả cấu trúc của table và dữ liệu bên trong table (khác với lệnh Delete chỉ xóa dữ liệu nhưng table vẫn tồn tại). USE Northwind DROP TABLE Importers2. Ngôn ngữ điều khiển dữ liệu – Data Control Language (DCL): Ðây là những lệnh quản lý các quyền truy cập lên từng đối tượng (table, view, stored procedure…). Thường có dạng sau: Ví dụ:Lệnh sau sẽ cho phép user trong Role là Public được quyền Select đối với table Customer trong database Northwind (Role là một khái niệm giống như Windows Group sẽ được bàn kỹ trong phần Security) USE Northwind GRANT SELECT ON Customers TO PUBLICLệnh sau sẽ từ chối quyền Select đối với table Customer trong database Northwind của các user trong Role là Public USE Northwind DENY SELECT ON Customers TO PUBLICLệnh sau sẽ xóa bỏ tác dụng của các quyền được cho phép hay từ chối trước đó USE Northwind REVOKE SELECT ON Customers TO PUBLIC3. Ngôn ngữ thực thi dữ liệu – Data Manipulation Language (DML): Ðây là những lệnh phổ biến dùng để xử lý data như Select, Update, Insert, Delete Ví dụ:Select USE Northwind SELECT CustomerID, CompanyName, ContactName FROM Customers WHERE (CustomerID = 'alfki' OR CustomerID = 'anatr') ORDER BY ContactNameInsert USE Northwind INSERT INTO Territories VALUES (98101, 'Seattle', 2)Update USE Northwind UPDATE Territories SET TerritoryDescription = 'Downtown Seattle' WHERE TerritoryID = 98101Delete USE Northwind DELETE FROM Territories WHERE TerritoryID = 98101Vì phần này khá căn bản nên chúng tôi thiết nghĩ không cần giải thích nhiều. Chú ý trong lệnh Delete bạn có thể có chữ From hay không đều được. Nhưng mà chúng ta sẽ chạy thử các ví dụ trên ở đâu? Ðể chạy các câu lệnh ví dụ ở trên bạn cần sử dụng và làm quen với Query Editor trong MS SQL Server 2008 Chạy câu lệnh SQL sử dụng Query Editor Cú Pháp Của T-SQLPhần này chúng ta sẽ bàn về các thành phần tạo nên cú pháp của T-SQL Đặt tên – Identifiers Ðây chính là tên của các đối tượng (object) trong database như tên bảng, tên cột, tên view, stored procedure …. Nó dùng để nhận diện một đối tượng. (Chú ý khi nói đến đối tượng trong SQL Server là chúng ta muốn đề cập đến table, view, stored procedure, index…..Vì hầu như mọi thứ trong SQL Server đều được thiết kế theo kiểu hướng đối tượng (object-oriented)). Trong ví dụ sau TableX, KeyCol, Description là những identifiers CREATE TABLE TableX (KeyCol INT PRIMARY KEY, Description NVARCHAR(80))Có hai loại Identifiers:
Ví dụ:SELECT * FROM [My Table] WHERE [Order] = 10Trong ví dụ trên chữ Order trùng với từ khoá Order của SQL Server nên cần đặt trong dấu ngoặc vuông []. Biến – Variables Biến trong T-SQL cũng có chức năng tương tự như trong các ngôn ngữ lập trình khác nghĩa là cần khai báo trước loại dữ liệu trước khi sử dụng. Biến được bắt đầu bằng dấu @ (Ðối với các global variable thì có hai dấu @@) Ví dụ:USE Northwind DECLARE @EmpIDVar INT SET @EmpIDVar = 3 SELECT * FROM Employees WHERE EmployeeID = @EmpIDVar + 1Hàm – Functions Có 2 loại hàm một loại là built-in và một loại user-defined Các hàm Built-In là các hàm nội tại của SQL Server được chia làm 3 nhóm:
Các hàm User-Defined là các hàm do người dùng định nghĩa (được tạo ra bởi câu lệnh CREATE FUNCTION và phần body thường được gói trong cặp lệnh BEGIN…END) cũng được chia làm các nhóm như sau:
Kiểu dữ liệu – Data Type Các loại dữ liệu trong SQL Server sẽ được bàn kỹ trong các bài sau Biểu thức – Expressions Các Expressions có dạng Identifier + Operators (như +,-,*,/,=…) + Value Các thành phần câu lệnh điều khiển lập trình – Control Of Flow Như BEGIN…END, BREAK, CONTINUE, GOTO, IF…ELSE, RETURN, WHILE…. Xin xem thêm Books Online để biết thêm về các thành phần này. Chú thích – Comments T-SQL dùng dấu — để đánh dấu phần chú thích cho một dòng (một hàng) và dùng /*…*/ để chú thích cho nhiều dòng Thực Thi Các Câu Lệnh SQLThực thi một câu lệnh đơn: Một câu lệnh SQL được phân ra thành các thành phần cú pháp như trên bởi một parser, sau đó SQL Optimizer (một bộ phận quan trọng của SQL Server) sẽ phân tích và tìm cách thực thi (Execute Plan) tối ưu nhất ví dụ như cách nào nhanh và tốn ít tài nguyên của máy nhất… và sau đó SQL Server Engine sẽ thực thi và trả về kết quả. Thực Thi một nhóm lệnh (Batches) Khi thực thi một nhóm lệnh SQL Server sẽ phân tích và tìm biện pháp tối ưu cho các câu lệnh như một câu lệnh đơn và chứa execution plan đã được biên dịch (compiled) trong bộ nhớ sau đó nếu nhóm lệnh trên được gọi lại lần nữa thì SQL Server không cần biên dịch mà có thể thực thi ngay điều này giúp cho một batch chạy nhanh hơn. Lệnh GO Lệnh này chỉ dùng để gởi một tín hiệu cho SQL Server biết đã kết thúc một batch job và yêu cầu thực thi. Nó vốn không phải là một lệnh trong T-SQL. Tóm lại trong phần này chúng ta đã tìm hiểu về Transact- SQL là ngôn ngữ chính để giao tiếp với SQL Server. Trong bài sau chúng ta sẽ tiếp tục bàn về cấu trúc bên trong của SQL Server . Tài liệu tham khảo
Hướng dẫn tạo cơ sở dữ liệu trong SQL Server sẽ trình bày cách tạo cơ sở dữ liệu bằng câu lệnh (script) sử dụng SQL Server Management Studio. Đây là công cụ khá phố biến khi chúng ta làm việc với Microsoft SQL Server. Trong bài hướng dẫn này, chúng tôi sử dụng SQL Server 2014, các bạn có thể sử dụng phiên bản cũ hoặc mới hơn. Hướng dẫn tạo cơ sở dữ liệu trong SQL Server – Tạo cơ sở dữ liệuYêu cầu: Tạo cơ sở dữ liệu tên GSTH với cấu trúc như sau
Hướng dẫn thực hiện: Bước 1: Mở SQL Server Management Studio -> chọn Connect Bước 2: Chọn New Query Bước 3: Tạo 2 thư mục SQL tại ổ C (C:\SQL) và ổ D (D:\SQL) trên máy tính Bước 4: Nhập câu lệnh tạo cơ sở dữ liệu Bước 5: Thực thi câu lệnh Chọn tất cả câu lệnh vừa nhập -> chọn Execute (hoặc nhấn phím F5) Kiểm tra kết quả Như vậy, chúng ta đã tạo thành công cơ sở dữ liệu tên GSTH gồm 2 data và 2 log. Trong đó DATA1 và LOG1 được lưu ở C:\SQL; DATA2 và LOG2 được lưu ở D:\SQL Hướng dẫn tạo cơ sở dữ liệu trong SQL Server – Thay đổi kích thước cơ sở dữ liệuCâu 1. Thay đổi max size của DATA2 thành không giới hạn Câu 2. Thay đổi size của LOG2 thành 5MB Hai câu này chúng tôi để các bạn tự làm. Để hiểu thêm về cấu trúc database trong SQL Server cũng như ý nghĩa của từng thành phần, các bạn xem bài Tạo cơ sở dữ liệu trong SQL Server 2014.
|