Xem mẫu
- Lê Thị Tú Kiên - HQT SQL Server 1
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
SQL SERVER
TS Lê Thị Tú Kiên
kienltt@hnue.edu.vn
Murach's SQL
Server 2012, C8
http://fit.hnue.edu.vn/~kienltt/SQLSERVER/
- Bài 2
Các kiểu dữ liệu và hàm
trong SQL Server
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 2
- Nội dung
Các kiểu dữ liệu
Một số hàm chuyển đổi kiểu dữ liệu
Cách sử dụng các hàm
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 3
- SQL Server data type categories
(Các kiểu dữ liệu trong SQL Server được chia ra làm 4 nhóm chính)
String (Xâu kí tự)
Numeric (Số)
Temporal (date/time)
Other (Một số kiểu khác)
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 4
- ANSI-standard data types
and SQL Server equivalents
(Bảng tương ứng giữa các kiểu dữ liệu trong SQL Server với các
kiểu dữ liệu của chuẩn ANSI)
Synonym for ANSI-standard SQL Server data type used
data type
binary varying varbinary
char varying varchar
character varying
character char
dec decimal
double precision float
float real or float
integer int
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 5
- ANSI-standard data types
and SQL Server equivalents (continued)
Synonym for ANSI-standard SQL Server data type used
data type
national char nchar
national character
national char varying nvarchar
national character varying
national text ntext
rowversion timestamp
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 6
- The integer data types (Các kiểu DL số nguyên)
Type Bytes
bigint 8
int 4
smallint 2
tinyint 1
bit 1
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 7
- The decimal data types (Kiểu dữ liệu số thập phân)
Type Bytes
decimal[(p[,s])] 5-17
numeric[(p[,s])] 5-17
money 8
smallmoney 4
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 8
- The real data types (Kiểu số thực)
Type Bytes
float[(n)] 4 or 8
real 4
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 9
- String data types for storing standard characters
(Kiểu xâu kí tự lưu trữ kí tự chuẩn)
Type Bytes
char[(n)] n
varchar[(n)]
String data types for storing Unicode characters
(Kiểu xâu kí tự lưu trữ kí tự Unicode)
Type Bytes
nchar(n) 2×n
nvarchar(n)
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 10
- Date/time data types prior to SQL Server 2008
(Kiểu dữ liệu ngày tháng trong các phiên bản SQL Server trước
năm 2008)
Type Bytes
datetime 8
smalldatetime 4
Date/time data types for SQL Server 2008 and later
(Kiểu dữ liệu ngày tháng trong các phiên bản SQL Server từ năm
2008 trở lại đây)
Type Bytes
date 3
time(n) 3-5
datetime2(n) 6-8
datetimeoffset(n) 8-10
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 11
- Common date formats
Format Example
yyyy-mm-dd 2012-04-30
mm/dd/yyyy 4/30/2012
mm-dd-yy 4-30-12
Month dd, yyyy April 30, 2012
Mon dd, yy Apr 30, 12
dd Mon yy 30 Apr 12
Common time formats
Format Example
hh:mi 16:20
hh:mi am/pm 4:20 pm
hh:mi:ss 4:20:36
hh:mi:ss:mmm 4:20:36:12
hh:mi:ss.nnnnnnn 4:20:36.1234567
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 12
- Một số chú ý khi sử dụng kiểu dữ liệu ngày tháng
Giá trị một ngày tháng đặt trong cặp ngoặc đơn.
Nếu NSD (người sử dụng) không xác định thời gian trong một giá
trị kiểu ngày tháng thì thời gian mặc định được lấy là 12:00 a.m.
Nếu NSD (người sử dụng) không xác định ngày trong một giá trị
kiểu ngày tháng thì ngày mặc định được lấy là 1/1/1900.
Mặc định, với giá trị kiểu năm được lưu dưới dạng hai chữ số thì
các năm từ 00 đến 99 được hiểu là các năm từ 2000 đến 2049, còn
các năm từ 50 đến 99 được hệ thống hiểu là các năm từ 1950 đến
1999.
NSD có thể thiết lập thời gian đồng hồ 12 giờ hoặc 24 giờ, mặc
định là 12 giờ.
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 13
- The large value data types
for SQL Server 2005 and later
varchar(max)
nvarchar(max)
varbinary(max)
How the large value data types map
to the old large object types
SQL Server 2005 and later Prior to 2005
varchar(max) text
nvarchar(max) ntext
varbinary(max) image
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 14
- Order of precedence for common data types
Precedence Category Data type
Highest Date/time datetime
Các kiểu dữ liệu có
smalldatetime thể được tự động
Numeric float chuyển đổi (chuyển
real
decimal
đổi không tường
money minh).
smallmoney Thông thường các
int
smallint
kiểu dữ liệu có mức
tinyint ưu tiên thấp hơn sẽ
bit tự động được chuyển
String nvarchar
nchar sang kiểu dữ liệu có
varchar mức ưu tiên cao hơn.
Lowest char
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 15
- Expressions that use implicit conversion
(Ví dụ chuyển đổi kiểu tự động)
InvoiceTotal * .0775
-- InvoiceTotal (money) converted to decimal
PaymentTotal – 100
-- Numeric literal converted to money
PaymentDate = '2012-04-05'
-- Date literal converted to smalldatetime value
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 16
- Conversions that can’t be done implicitly
(Các trường hợp không tự động chuyển đổi)
From data type To data type
(Từ kiểu DL) (Đến kiểu DL)
char, varchar, nchar, nvarchar money, smallmoney
datetime, smalldatetime decimal, numeric, float, real, bigint,
int, smallint, tinyint, money,
smallmoney, bit
money, smallmoney char, varchar, nchar, nvarchar
Để chuyển đổi được các trường hợp trên, ta cần dùng các hàm
chuyển đổi kiểu dữ liệu một cách tường minh (ép kiểu).
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 17
- The syntax of the CAST function
(Hàm chuyển đổi kiểu dữ liệu CAST)
CAST(expression AS data_type)
A SELECT statement that uses the CAST function
(Ví dụ sử dụng hàm CAST để chuyển đổi kiểu dữ liệu)
SELECT InvoiceDate, InvoiceTotal,
CAST(InvoiceDate AS varchar) AS varcharDate,
CAST(InvoiceTotal AS int) AS integerTotal,
CAST(InvoiceTotal AS varchar) AS varcharTotal
FROM Invoices;
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 18
- How to convert data when performing
integer division
(Cách chuyển kiểu dữ liệu khi thực hiện phép chia kiểu số
nguyên)
Operation Result
50/100 0
50/CAST(100 AS decimal(3)) .500000
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 19
- The syntax of the CONVERT function
(Hàm chuyển kiểu dữ liệu CONVERT)
CONVERT(data_type, expression [, style])
Convert and format dates
(Ví dụ sử dụng hàm convert và định dạng ngày tháng)
SELECT CONVERT(varchar, InvoiceDate) AS varcharDate,
CONVERT(varchar, InvoiceDate, 1) AS varcharDate_1,
CONVERT(varchar, InvoiceDate, 107) AS varcharDate_107,
CONVERT(varchar, InvoiceTotal) AS varcharTotal,
CONVERT(varchar, InvoiceTotal, 1) AS varcharTotal_1
FROM Invoices;
Murach's SQL Server 2012, C8 Lê Thị Tú Kiên - HQT SQL Server Slide 20
nguon tai.lieu . vn