Bài giảng Ngôn ngữ T-SQL

1. Giới thiệu T -SQL

2. Kiểu dữ liệu

3. Hàm và biểu thức trong T -SQL

4. Tạo Table

5. Sửa cấu trúc Table

pdf40 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 4231 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Ngôn ngữ T-SQL, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
-Defined Data Type 
 Dùng thủ tục hệ thống sp_addtype để tạo một user-defined 
data type. 
sp_addtype type, system_data_type [,'NULL' | 'NOT NULL'] 
 Ví dụ 1: Tạo kiểu dữ liệu tên là isbn với kiểu dữ liệu cơ bản 
là smallint và không chấp nhận giá trị Null 
 EXEC sp_addtype isbn, ‘smallint’, ‘NOT NULL’ 
Kiểu dữ liệu - Data Type 
10 
 Ví dụ 2: Tạo kiểu dữ liệu tên là zipcode với kiểu dữ liệu cơ 
bản là char, độ dài tối đa là 10 và chấp nhận giá trị Null 
 EXEC sp_addtype zipcode, 'char(10)', NULL 
 Ví dụ 3: Tạo kiểu dữ liệu tên là longstring với kiểu dữ liệu 
cơ bản là varchar, độ dài tối đa là 63 và chấp nhận giá 
trị Null 
 EXEC sp_addtype longstring, 'varchar(63)', NULL 
Kiểu dữ liệu - Data Type 
11 
Xem các user-defined data types trong CSDL hiện hành: 
 Dùng thủ tục sp_help hoặc truy vấn trong 
information_schema.domains 
 Ví dụ: Use SalesDB 
 Sp_help 
 hoặc 
 SELECT domain_name, data_type, character_maximum_length 
 FROM information_schema.domains 
 ORDER BY domain_name 
Kiểu dữ liệu - Data Type 
12 
 Xoá một User-Defined Data Type: dùng thủ tục hệ 
thống sp_droptype để xóa một user-defined data type từ 
bảng systypes. Một user-defined data type không thể 
xóa được nếu nó được tham chiếu bởi các bảng và 
những đối tượng khác. 
 Cú pháp: Sp_droptype type 
 Ví dụ: 
 EXEC sp_droptype isbn 
Kiểu dữ liệu - Data Type 
13 
 Dùng Enterprise Manager để tạo: 
13 
Kiểu dữ liệu - Data Type 
14 
Hàm và biểu thức trong T-SQL 
Function Description 
General 
Functions 
ISDATE(exp) Returns 1 if exp is a valid date 
ISNULL(exp1,exp2) Returns Null if exp1 is NULL, 
otherwise exp1 returned 
ISNUMERIC(exp) Returns 1 if exp is a number type 
NULLIF(exp1, exp2) Returns NULL if both expressions are 
equivalent, otherwise returns is exp1 
String 
Functions 
ASCII(char) Returns the ASCII value of a 
Character. 
CHAR(int) Returns the character value for 
an ASCII integer value. 
CHARINDEX(string1
, string2, start) 
Returns the starting position for 
string1 in string2 optionally starting 
at position start. 
15 
Hàm và biểu thức trong T-SQL 
Function Description 
String 
Functions 
NCHAR(int) 
Returns the UNICODE character 
represented by int. 
LEN(string) Returns the length of the string. 
LOWER(string) Returns the string passed in with all 
characters converted to lowercase. 
UPPER(string) Returns the string passed in with 
all characters converted to 
uppercase. 
16 
Hàm và biểu thức trong T-SQL 
Function Description 
String 
Functions 
REPLACE(string1, 
string2, string3) 
Searches string1 for string2 and 
replaces string2 with string 3. 
REPLICATE(string, 
int) 
Returns a string with int number of 
char repeated. 
REVERSE(string) 
Returns the reverse of a character 
expression. 
RIGHT( string, int) 
Returns the int number of 
characters from the right side of 
the string. 
17 
Hàm và biểu thức trong T-SQL 
Function Description 
String 
Functions 
RTRIM(string) Returns the string with all blank 
spaces from the end of the string 
Removed. 
LEFT(string, int) Returns the first int characters from 
String. 
LTRIM(string) Returns the string with all blank 
spaces from the left side of the string 
removed. 
18 
Hàm và biểu thức trong T-SQL 
Function Description 
String 
Functions 
SPACE(int) Returns int number of spaces. 
STR(float, length, 
decimal) 
Converts a numeric value to a string. 
STUFF(string, start, 
length, char) 
Removes length characters from string 
starting with character start and 
replaces them with char. 
SUBSTRING(string, 
start, int) 
Returns a portion of the string string 
starting at position start and 
continuing for int characters. 
19 
Hàm và biểu thức trong T-SQL 
Function Description 
String 
Functions 
UNICODE(Unicod
e string) 
Returns the numeric value of the 
first character of a UNICODE 
Expression. 
PATINDEX(string1, 
string2) 
Returns the starting position of 
string1 in string2. Wildcards may be 
used in string1. 
20 
Hàm và biểu thức trong T-SQL 
Function Description 
Date and 
Time 
Functions 
DATENAME(dat
epart, date) 
Returns a character string that 
represents 
the datepart of date. 
DATEPART(day/
month/..,day) 
Returns the specific part of the date 
as an integer. 
DAY(date) Returns the numeric day of the 
week for date. 
21 
Hàm và biểu thức trong T-SQL 
Function Description 
GETDATE() GETDATE() Returns the current 
server date and time. 
MONTH(date) Returns the numeric month number 
of date. 
YEAR (date) Returns the numeric year number of 
date. 
22 
Bảng dữ liệu - Table 
 Bảng là một đối tượng của CSDL được dùng để lưu trữ dữ liệu. 
 Dữ liệu trong bảng được tổ chức thành các hàng (rows) và cột 
(columns). 
 Mỗi hàng trong bảng biểu diễn một bản ghi (record) duy nhất. 
Mỗi cột biểu diễn một thuộc tính (attribute). 
 Tên cột trong 1 bảng không được trùng nhau nhưng cho phép 
tên cột có thể trùng nhau trong những bảng khác nhau của 
cùng 1 CSDL. 
 SQL Server cho phép: 
 Tối đa 2 triệu bảng trong 1 CSDL. 
 Tối đa 1024 cột trong 1 bảng 
 Tối đa 8060 bytes trong 1 hàng 22 
NGÔN NGỮ DDL 
23 
Bảng dữ liệu - Table 
 Các bước tạo một bảng 
 Bước 1: Xác định kiểu dữ liệu của các cột. 
 Bước 2: Xác định các cột có thể hoặc không thể có giá 
trị rỗng (null value). 
 Bước 3: Xác định các cột phải có các giá trị duy nhất. 
 Bước 4: Xác định khóa chính – khóa ngoại. 
 Bước 5: Xác định các giá trị mặc định. 
 Bước 6: Xác định các ràng buộc trên các cột (mô tả 
miền trị). 
 Bước 7: Tạo bảng và các chỉ mục của bảng. 
23 
NGÔN NGỮ DDL 
24 
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 } ] 
Tạo bảng - CREATE TABLE 
NGÔN NGỮ DDL 
25 
CREATE TABLE Sanpham 
( Masp CHAR(5), 
 Tensp VARCHAR(15), Dvt VARCHAR(10), Dongia 
SMALLMONEY, SlTon INT ) 
Cú pháp 
CREATE TABLE 
( ,….) 
Ví dụ 
Tạo bảng - CREATE TABLE 
NGÔN NGỮ DDL 
26 
Tạo bảng - CREATE TABLE 
NGÔN NGỮ DDL 
IDENTITY [ ( seed , increment )] 
 Tạo giá trị gia tăng duy nhất cho 1 cột, và cột này thường 
được dùng khoá chính cho bảng. 
 Giá trị được gán thường là các kiểu dữ liệu sau: tinyint, 
smallint, int, bigint, decimal(p,0), hay numeric(p,0). 
 Trong mỗi bảng chỉ cho phép 1 cột là identity mà thôi. 
 Seed: là giá trị đầu tiên được tạo. 
 Increment:là bước tăng để tạo ra giá trị kế tiếp. 
 Giá trị mặc định thường là (1,1). 
27 
Ví dụ 
CREATE TABLE NhaCungCap 
(MaNCC int Identity NOT NULL Primary key, TenNCC 
VarChar(25)) 
Cú pháp : Tạo cột có giá trị phát sinh tự động 
CREATE TABLE 
( 
INDENTITY(seed[, Increment]) NOT NULL….) 
Tạo bảng - CREATE TABLE 
NGÔN NGỮ DDL 
28 
Tạo bảng - CREATE TABLE 
NGÔN NGỮ DDL 
Cột tính toán - Computed column 
 Cú pháp: 
 column_name AS computed_column_expression 
 Là một cột ảo không được lưu trữ vật lý trong bảng. Nó được tính toán 
dựa vào các cột khác trong cùng bảng thông qua 1 biểu thức. 
 Ví dụ : cost AS price * qty. 
 Có thể được dùng trong mệnh đề SELECT, WHERE, hay ORDER BY 
 Không thể dùng trong lệnh INSERT hay UPDATE 
 Có thể được dùng như giá trị khóa trong chỉ mục hay 1 phần của các ràng 
buộc PRIMARY KEY hay UNIQUE nếu giá trị của nó được định nghĩa 
bởi 1 biểu thức xác định và kiểu dữ liệu của giá trị trả về hợp lệ. 
 Ví dụ: Cột tính toán a+b có thể được dùng làm chỉ mục nhưng 
a+DATEPART(dd, GETDATE()) không thể dùng làm chỉ mục 
29 
Tạo bảng - CREATE TABLE 
NGÔN NGỮ DDL 
Cột tính toán - Computed column 
 Ví dụ 1 
CREATE TABLE cthoadon 
( sohd int NOT NULL, 
 MaHang char(4) NOT NULL, 
 SoLuong int NOT NULL, 
 DonGia money, 
 ThanhTien AS SoLuong*DonGia 
) 
30 
Ví dụ 
CREATE TABLE KH 
(MaKh int Identity(1000,1) NOT NULL, TenKH 
Varchar(40)) 
ON FGROUP1 
Khai báo Filegroup chứa Table 
CREATE TABLE 
( ,…) 
ON FileGroupName 
Tạo bảng - CREATE TABLE 
NGÔN NGỮ DDL 
31 
Sửa cấu trúc bảng 
ALTER TABLE 
{ALTER COLUMN } 
| {ADD [ ]} 
| {DROP COLUMN } 
Cú pháp 
Ví dụ sửa kiểu dữ liệu cột 
ALTER TABLE SanPham 
ALTER COLUMN Dongia float 
32 
ALTER TABLE 
{ALTER COLUMN } 
| {ADD [ ]} 
| {DROP COLUMN } 
Cú pháp 
Ví dụ thêm cột 
ALTER TABLE SanPham 
ADD NgaySX SmallDateTime NOT NULL 
Sửa cấu trúc bảng 
33 
ALTER TABLE 
{ALTER COLUMN } 
| {ADD [ ]} 
| {DROP COLUMN } 
Syntax 
Example 
ALTER TABLE Sanpham 
DROP COLUMN NgaySX 
Sửa cấu trúc bảng 
34 
Xóa bảng khỏi CSDL 
DROP TABLE SanPham 
Cú pháp 
DROP TABLE 
Ví dụ 
35 
Bảng tạm 
• Bảng tạm được chứa trong CSDL TempDb và được xóa 
một cách tự động khi không còn sử dụng nữa. 
• Có hai loại: 
• Bảng tạm cục bộ 
• Bảng tạm toàn cục 
36 
Bảng tạm 
CREATE TABLE #MyLocalTemTable 
( ID INT Primary key, 
 ColA Varchar(30) NULL) 
Ví dụ: Tạo bảng tạm là #MyLocalTemTable 
Bảng tạm cục bộ: 
• Có một dấu # là ký tự đầu tiên trong tên bảng tạm. 
• Chỉ hiện thị đối với nối kết hiện hành dành cho người sử 
dụng. 
• Được xóa khi người dùng ngắt nối kết với các thể hiện của 
SQL Server. 
37 
Bảng tạm 
CREATE TABLE ##MyGobalTemTable 
( ID INT Primary key, 
 ColA Varchar(30) NULL) 
Ví dụ: Tạo bảng tạm là ##MyLocalTemTable 
Bảng tạm toàn cục: 
• Có hai dấu ## là 2 ký tự đầu tiên trong tên bảng tạm. 
• Chỉ hiển thị đối với bất kỳ người sử dụng nào sau khi 
chúng được tạo. 
• Được xóa khi tất cả người dùng đang tham chiếu table ngắt 
kết nối với SQL Server. 
38 
Cập nhập nội dung Table 
INSERT [INTO] VALUES 
Cú pháp: Thêm dòng 
Cú pháp: Thay đổi dữ liệu các dòng 
UPDATE 
SET 
WHERE 
DELETE FROM WHERE 
Cú pháp: Xóa dòng 
39 
Xem Tables 
SELECT FROM 
Cú pháp: Xem thông tin Table 
sp_help 
Cú pháp: Xem dữ liệu Table 
40 
Xóa tables 
DROP TABLE SanPham 
Cú pháp 
DROP TABLE 
Ví dụ 

File đính kèm:

  • pdfBài giảng Ngôn ngữ T-SQL.pdf