Xem mẫu

  1. 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/
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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