Trong data type kiểu dữ liệu text là gì


Trung Tâm CNTT - Trường ĐHCN Tp.HCM
BÀI 5: KIỂU DỮ LIỆU  LÀM VIỆC VỚI BẢNG

5.1 Kiểu dữ liệu data type


Kiểu dữ liệu là một đặc tính của một cột Column. Nó định rõ loại dữ liệu và dạng dữ liệu được nhập vào cột.
Có 2 nhóm:
System-Supplied datatype: Các kiểu dữ liệu cơ bản được hỗ trợ bởi SQL Server. User-defined datatype: Các kiểu dữ liệu của người dùng tự định nghĩa dựa trên
các kiểu dữ liệu cơ bản.
5.1.1  System-Supplied Datatype. System-Supplied Datatype là kiểu dữ liệu cơ bản được hỗ trợ bởi SQL Server. Các
đối tượng lưu chứa dữ liệu đều có một kiểu dữ liệu để lưu, các đối tượng đó có thể là
-  Các cột Column trong các bảng. -  Các tham số parameters trong strored procedures.
-  Các biến Variables trong stored procedure, function, script, batch. -  Các hàm T_SQL trả về một hoặc nhiều giá trị thuộc một kiểu dữ liệu nào đó.
Ta có thể dùng các kiểu dữ liệu  để  tạo các ràng buộc toàn vẹn dữ liệu. Ví dụ  cột TENNV thì khơng thể được định nghĩa với kiểu dữ liệu là Date, vì cột Date chỉ chấp
nhận giá trị ngày. Khi ta gán kiểu dữ liệu cho một đối tượng nào đó thì ta cần quan tâm đến các tính chất
sau:
-  Loại dữ liệu được chứa đựng bởi đối tượng. -  Chiều dài lưu trữ giá trị hoặc là kích cở của nó.
-  Tính đúng của số đối với các kiểu số.
Các kiểu dữ liệu cơ bản:
Loại Kiểu dữ liệu cơ sở
Kích cở Vùng giá trị
Mô tả Binary
8 KB 09, a..f, A..F
Varbinary 8 KB
09, a..f, A..F Chứa các bit thông
tin Binary
Image 231 -1 bytes
231 1 bytes Dữ liệu hình ảnh
Char 255 bytes
1..8000 ký tự Ký tự hoặc chuỗi
Varchar 255 bytes
1..8000 ký tự Ký tự hoặc chuỗi
Character Text
2147483647 bytes 231-1 ký tự 2147483647
Ký tự hoặc chuỗi Datetime
8 bytes 01011753-31129999
Chuỗi biểu diễn ngày giờ
Date and Time
Smalldatetime 4 bytes
111900 - 662079 Chuỗi biểu diễn
ngày giờ Decimal
17 bytes -1038-1 - 1038-1
Số thực Decimal
Numeric 17 bytes
-1038-1 - 1038-1 Số thực
Float 8 bytes
-1.79E+308 - 1.79E+308 Số thực
Foating point
Real 4 bytes
-3.40E+38 -3.40E+38 Số thực
Integer Bigint
8 bytes -263 - 263
Số nguyên
Trung Tâm CNTT - Trường ĐHCN Tp.HCM
Int 4 bytes
-231 - 231-1 Số nguyên
Smallint 2 bytes
-215 - 215-1 Số nguyên
Tinyint 1 bytes 0..255
Số nguyên Money
8 bytes -263 - 263-1
Dữ liệu tiền tệ Monetary
Smalmoney 4 bytes
-214748.3648 - 214748.3648  Dữ liệu tiền tệ Bit
1 bytes 0 hoặc 1
Dữ liệu có một trong hai trạng thái
0 hoặc 1 Cursor Kiểu DL cho biến hoặc giá trị trả về của procedure, tham chiếu đến 1 mẫu
tin Timestamp 8
bytes Chuỗi có dạng:
0x000000100000a90 Theo dõi mẫu tin
nào bị thay đổi dữ liệu
Uniqueidentifier 16 bytes
Số thập lục phân SQL_variant Là
kiểu dữ liệu có thể chứa bất kỳ loại dữ tùy ý của SQL Server ngoại trừ
text, ntext, image, and the timestamp data type
Special
Table Nchar
4000 ký tự Ký tự hoặc chuỗi
Nvarchar 4000 ký tự Ký
tự hoặc chuỗi Unicode
Ntext 230-1 ký tự Ký
tự hoặc chuỗi
5.1.2  User-defined datatype. Người sử  dụng có thể  dựa yêu cầu cần lưu trữ và các kiểu dữ liệu cơ  bản  để  định
nghĩa ra một kiểu dữ liệu của người dùng dùng để lưu trữ một dữ liệu đặc biệt nào đó. SQL Sever cho phép bạn cải tiến các kiểu dữ liệu để đảm bảo tính nhất quán khi làm
việc trong môi trường dữ liệu đa dạng trong các bảng hay các CSDL khác nhau.
User-defined data type không cho phép bạn định nghĩa các kiểu dữ liệu phức hoặc có cấu trúc.
Mỗi một User-defined data type có thể được định nghĩa riêng cho một CSDL hoặc cho toàn bộ các CSDL. Nếu User-defined data type được định nghĩa trong CSDL
Master thì nó được dùng chung cho tồn bộ các CSDL.
Các User-defined data type mà bạn tạo trong CSDL model thì sẽ có trong tất cả các CSDL mới tạo một cách tự động.
Mỗi user-defined data type được lưu thành một mẫu tin trong bảng systypes.
Bạn có thể tạo và xóa user-defined data type bằng các thủ tục hệ thống. Tên của kiểu dữ liệu phải tuân thủ qui tắt định danh và phải là duy nhất trong mỗi CSDL.
Định nghĩa mỗi user-defined data type trong giới hạn của các kiểu dữ liệu cơ bản. Phải chỉ định mặc định là chấp nhận giá trị NULL hay NOT NULL khi đối tượng
khơng có giá trị.
Tạo một User-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
Trung Tâm CNTT - Trường ĐHCN Tp.HCM EXEC sp_addtype isbn, smallint, NOT NULL
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, char10, 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, varchar63, NULL
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.
Sp_droptype type
Ví dụ: EXEC sp_droptype isbn
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

5.2 Làm việc với bảng của SQL Server