ruaiudh

New Member

Download miễn phí T-SQL và Stored Procedure





MỤC LỤC
Mục Lục
Lời nói đầu
Giới thiệu chung về SQL Server
Chương 1: T-SQL
I. Các khái niệm cơ bản
II. Truy vấn tạo lập
III. Các phát biểu cơ bản của SQL Server
IV. Mệnh đề nối nhiều bảng
V. Sửa đổi cấu trúc dữ liệu
VI. Mệnh đề quản trị CSDL
VII. Mệnh đề Backup CSDL
 
Chương 2: Thủ tục thường trú (Stored Procedure)
I. Các khái niệm cơ bản
II. Tạo thủ tục thường trú
III. Một số thủ tục thường trú
 
Tài liệu tham khảo
 



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

ợ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 một loại thông thường (Regular Identifier) và một loại gọi là Delimited Identifier, loại này cần có dấu "" hay dấu [] để ngăn cách. Loại Delimited được dùng đối với các chữ trùng với từ khóa của SQL Server (reserved keyword) hay các chữ có khoảng trống.
Ví dụ:
SELECT * FROM [My Table]
WHERE [Order] = 10
Trong ví dụ trên chữ Order trùng với keyword Order nên cần đặt trong dấu ngoặc vuông [].
b. Variables (Biến) 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 + 1
c. Functions (Hàm) 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 được chia làm 3 nhóm:
Rowset Functions : Loại này thường trả về một object và được đối xử như một table. Ví dụ như hàm OPENQUERY sẽ trả về một recordset và có thể đứng vị trí của một table trong câu lệnh Select.
Aggregate Functions : Loại  này làm việc trên một số giá trị và trả về một giá trị đơn hay là các giá trị tổng. Ví dụ như hàm AVG sẽ trả về giá trị trung bình của một cột.
Scalar Functions : Loại này làm việc trên một giá trị đơn và trả về một giá trị đơn. Trong loại này lại chia làm nhiều loại nhỏ như các hàm về toán học, về thời gian, xử lý kiểu dữ liệu String....Ví dụ như hàm MONTH('2002-09-30') sẽ trả về tháng 9.
Các hàm User-Defined (đượ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:
Scalar Functions : Loại này cũng trả về một giá trị đơn bằng câu lệnh RETURNS.
Table Functions : Loại này trả về một table
d. Expressions Các Expressions có dạng Identifier + Operators (như +,-,*,/,=...) + Value
e. Các thành phần 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.
f. Comments (Chú Thích) T-SQL dùng dấu -- để đánh dấu phần chú thích cho câu lệnh đơn và dùng /*...*/ để chú thích cho một nhóm
3. Thực Thi Các Câu Lệnh SQL
a. Thự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 bộ phân phận phân tích cú pháp (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ả.
b. 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 có kế hoạch thực hiện (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.
c. 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 lô công việc (batch job) và yêu cầu thực thi.
II - Truy vấn tạo lập
CREATE DATABASE:
Cú pháp:
CREATE DATABASE database_name [ ON     [ [ ,...n ] ] ] [ LOG ON { [ ,...n ] } ]
::=
[ PRIMARY ] ( [ NAME = logical_file_name , ]     FILENAME = 'os_file_name'     [ , SIZE = size ]     [ , MAXSIZE = { max_size | UNLIMITED } ]     [ , FILEGROWTH = growth_increment ] ) [ ,...n ]
Mục đích: Tạo cơ sở dữ liệu có tên là database_name.
Giải thích:
ON : các thông số file lưu lại cơ sở dữ liệu vừa tạo.
LOG ON : file log cho cơ sở dữ liệu
PRIMARY: dành cho PRIMARY file (nếu có nhiều file).
NAME: tên logic cho file được định nghĩa.
FILENAME : file vật lý trên đĩa.
SIZE : độ lớn của file.
MAXSIZE : độ lớn max của file
FILEGROWTH : khối lượng đĩa được thêm vào file mỗi lần file cần thêm khoảng trống (tăng thêm).
Ví dụ:
CREATE DATABASE DB_Item
ON
( NAME = DB_Item,
FILENAME = ‘D:\BT\DeAnMonHoc\DB_Item.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = 'DB_Item_log',
FILENAME = ‘D:\BT\DeAnMonHoc\DB_Item.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GO
CREATE DEFAULT: Tạo giá trị ngầm định (default) có tên rồi gán cho trường nào đó.
Cú pháp:
CREATE DEFAULT default_name AS default_value
Ví dụ:
CREATE DEFAULT phonedflt AS 'unknown'
Sau đó thì gắn DEFAULT cho một trường bất kỳ:
sp_bindefault phonedflt, 'authors.phone'
và bỏ DEFAULT:
EXEC sp_unbindefault phonedflt
CREATE FUNCTION: Tạo hàm người dùng trong SQL Server.
Cú pháp:
CREATE  FUNCTION [ owner_name. ] function_name     ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS scalar_return_data_type
[ WITH [ [,] ...n] ]
[ AS ]
BEGIN     function_body     RETURN scalar_expression END
owner_name: Tên của ID người dùng. Tên này phải tồn tại.
function_name: tên hàm.
@parameter_name : tên biến AS kiểu biến = giá trị mặc định
RETURN : cho giá trị trả về của hàm.
Ví dụ:
CREATE FUNCTION funcThanhTien (@SoLuong Int,@DonGia Float)
RETURNS float
AS
BEGIN
Declare @ThanhTien AS float
Set @ThanhTien = @SoLuong * @DonGia
RETURN(@ThanhTien)
END
Sử dụng hàm:
SELECT funcThanhTien(10,5) AS ThanhTien
Kết quả:
ThanhTien
----------------
50
CREATE PROCEDURE: Tạo thủ tục trong SQL Server.
Cú pháp:
CREATE PROC [ EDURE ] procedure_name [ ; number ]     [ { @parameter data_type }         [ VARYING ] [ = default ] [ OUTPUT ]     ] [ ,...n ] [ WITH     { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [ ...n ]
Ví dụ:
USE pubs
IF EXISTS (SELECT name FROM sysobjects
WHERE name = proc_item_info' AND type = 'P')
DROP PROCEDURE proc_item_info
GO
Create Proc proc_item_info(@MaDoDung bigint)
AS
BEGIN
SELECT [MaDoDung],[TenDoDung],[MoTa],[TenLoai],
[TenNXB],[TacGia],[GiaTien],[NamXuatBan]
FROM [tblDoDung] i
INNER JOIN [tblLoai] c ON i.MaLoai=c.MaLoai
INNER JOIN [tblNhaXuatBan] p ON p.MaNXB=i.MaNXB
WHERE [MaDoDung] = @MaDoDung
END
GO
CREATE TABLE: Tạo bảng dữ liệu (table) trong SQL Server.
Cú pháp:
CREATE TABLE     [ database_name.[ owner ] . | owner. ] table_name     ( {         | column_name AS computed_column_expression         | ::= [ CONSTRAINT constraint_name ] }
            | [ { PRIMARY KEY | UNIQUE } [ ,...n ]     ) [ ON { filegroup | DEFAULT } ] [ TEXTIMAGE_ON { filegroup | DEFAULT } ] ::= { column_name data_type }     [ COLLATE ]     [ [ DEFAULT constant_expression ]         | [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ]     ]     [ ROWGUIDCOL]     [ ] [ ...n ] ::= [ CONSTRAINT constraint_name ]     { [ NULL | NOT NULL ]         | [ { PRIMARY KEY | UNIQUE }             [ CLUSTERED | NONCLUSTERED ]             [ WITH FILLFACTOR = fillfactor ]             [ON {filegroup | DEFAULT} ] ]         ]         | [ [ FOREIGN KEY ]             REFERENCES ref_table [ ( ref_column ) ]             [ ON DELETE { CASCADE | NO ACTION } ]             [ ON UPDATE { CASCADE | NO ACTION } ]             [ NOT FOR REPLICATION ]         ]         | CHECK [ NOT FOR REPLICATION ]         ( logical_expression )     }
::= [ CONSTRAINT constraint_name ]     { [ { PRIMARY KEY | UNIQUE }         [ CLUSTERED | NONCLUSTERED ]         { ( column [ ASC | DESC ] [ ,...n ] ) }         [ WITH FILLFACTOR = fillfactor ]      ...
 

Các chủ đề có liên quan khác

Top