SlideShare a Scribd company logo
Session 11

Tạo bảng và sử dụng các kiểu
          dữ liệu
Tổng quan
   Kết quả của câu lệnh SELECT được gọi là tập kết
    quả
   Sau câu lệnh SELECT là danh sách các cột được sử
    dụng trong câu truy vấn
   Dấu (*) được dùng để hiển thị tất cả các cột trong
    bảng
   Mệnh đề AS đưa ra kết quả của một cột biết trước
   Điều kiện Boolean được sử dụng với mệnh đề Where
    để kiểm tra điều kiện của các hàng
   Các toán tử như CUBE và ROLLUP được sử dụng
    với mệnh đề GROUP BY để tóm tắt dữ liệu
   Mệnh đề ORDER BY chỉ các yêu cầu mà ở đó các
    cột nên được lưu trữ trong tập kết quả
                                  RDBMS and Data Management/Session 11/2 of 40
Mục tiêu của bài học
   Định nghĩa các kiểu dữ liệu và danh sách các chỉ
    mục trong SQL Server 2005
   Mô tả cách tạo, hiệu chỉnh và xóa bảng trong cơ sở
    dữ liệu SQL Server
   Mô tả cách thêm, hiệu chỉnh và xóa các cột cũng như
    các ràng buộc trong bảng
   Mô tả cách làm việc với các typed và untyped XML
   Giải thích cách tạo, sử dụng và xem các giản đồ XML
   Giải thích cách sử dụng XQuery để truy cập dữ liệu
    XML


                               RDBMS and Data Management/Session 11/3 of 40
Các kiểu dữ liệu
   Kiểu dữ liệu là một thuộc tính, nó chỉ định kiểu của dữ liệu
    và dung lượng có thể lưu trữ của một đối tượng
   Các kiểu dữ liệu ép buộc dữ liệu phải toàn vẹn
    SQL Server 2005 hỗ trợ 3 kiểu dữ liệu:
     
       Kiểu dữ liệu hệ thống : được cung cấp bởi SQL Server
       2005
     
       Kiểu dữ liệu người dùng : Là kiểu dữ liệu được tạo ra
       dựa trên kiểu dữ liệu hệ thống
     
       Kiểu dữ liệu được định nghĩa trong ngôn ngữ lập trình :
       Là các kiểu dữ liệu được tạo ra bằng cách sử dụng
       ngôn ngữ lập trình, chúng được hỗ trợ trong .Net
       Framework


                                      RDBMS and Data Management/Session 11/4 of 40
Các kiểu dữ liệu hệ thống (1-4)
  Mục      Kiểu dữ liệu                                Mô tả
          int             Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 4 byte trong
                          bộ nhớ máy tính. Nó thường được sử dụng để lưu trữ giá trị số
                          nguyên
          smallint        Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 2 byte trong
                          bộ nhớ máy tính. Nó có thể lưu trữ các số nguyên từ -32768
                          đến 32767.
          tinyint         Một cột của kiểu này chiếm 1 byte trong bộ nhớ. Có giá trị từ 0
                          đến 255
Exact
          bigint          Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 8 byte trong
Numbers
                          bộ nhớ máy tính. Nó có thể lưu trữ các số nguyên từ -2^63 (-
                          9223372036854775807) đến 2^63-1
          numeric         Một cột được khai báo kiểu dữ liệu này sẽ có độ chính xác cao
                          và có thể co dãn kích thước lưu trữ trong bộ nhớ.
          money           Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 8 byte trong
                          bộ nhớ máy tính. Biểu diễn giá trị dữ liệu tiền tệ từ (-

                          2^63/10000) đến (2^63-1).
                                                   RDBMS and Data Management/Session 11/5 of 40
Các kiểu dữ liệu hệ thống (2-4)


       Mục         Kiểu dữ liệu                              Mô tả
Approximate     float             Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 8 byte
numerics                          trong bộ nhớ máy tính. Biễu diễn các số chấm động từ
                                  -1.79E+308 đến 1.79E+308.
                real              Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 4 byte
                                  trong bộ nhớ máy tính. Biễu diễn các số chấm động có độ
                                  chính xác từ -3.4E+38 đến 3.40E+38.
                datetime          Biễu diễn ngày và giờ. Được lưu trữ như là 2 số integer,
Date and time                     chiếm 8 byte.
                smalldatetime     Biểu diễn ngày và time.




                                                     RDBMS and Data Management/Session 11/6 of 40
Các kiểu dữ liệu hệ thống (3-4)
       Mục                Kiểu dữ liệu                           Mô tả

Character String   char                  Lưu trữ dữ liệu kí tự, nó được cố định kích thước và
                                             không hỗ trợ Unicode.
                   varchar               Lưu trữ dữ liệu kí tự, độ dài có thể thay đổi và không
                                             hỗ trợ Unicode.
                   text                  Lưu trữ dữ liệu kí tự, độ dài có thể thay đổi và không
                                             hỗ trợ Unicode.
Unicode            nchar                 Lưu trữ dữ liệu kí tự, nó được cố định kích thước và
Types                                        có hỗ trợ Unicode.
                   nvarchar              Lưu trữ dữ liệu kí tự, độ dài có thể thay đổi và có hỗ
                                             trợ Unicode.




                                                     RDBMS and Data Management/Session 11/7 of 40
Các kiểu dữ liệu hệ thống (4-4)
Mục            Kiểu dữ liệu       Mô tả

               Timestamp          Một cột được khai báo kiểu dữ liệu này sẽ sử
                                  dụng 8 byte trong bộ nhớ máy tính. Nó chứa
                                  các số binary tự động phát sinh (mỗi hàng là
                                  một số duy nhất).

               binary(n)          Lưu trữ dữ liệu binary có độ đài cố định với độ
                                  dài tối đa là 8000byte.
Các kiểu dữ
               varbinary(n)       Lưu trữ dữ liệu binary có độ đài thay đổi với độ
   liệu khác
                                  dài tối đa là 8000byte. .
               image               Lưu trữ dữ liệu binary có độ đài thay đổi với
                                  độ dài tối đa là (2^30-1) byte.
               uniqueidentifier   Một cột được khai báo kiểu dữ liệu này sẽ sử
                                  dụng 16 byte trong bộ nhớ máy tính. Ngoài ra
                                  nó lưu trữ một GUID (Globally Unique
                                  Identifier)




                                             RDBMS and Data Management/Session 11/8 of 40
Kiểu dữ liệu người dùng (1-2)
Kiểu dữ liệu người dùng được dựa trên các kiểu dữ liệu
được hệ thống cung cấp.Chúng có thể được tạo bằng cách sử
dụng câu lệnh CREATE TYPE
Cú pháp:
CREATE TYPE [ schema_name. ] type_name {FROM base_type [ (
   precision [ , scale ] ) ] [ NULL | NOT NULL ]    } [ ; ]

where,

    schema_name là tên của giản đồ mà kiểu dữ liệu người dùng đang được tạo ra
    type_name là tên kiểu dữ liệu người dùng
    base_type là tên của kiểu dữ liệu hệ thống cơ sở
    precision and scale -Chỉ ra độ chính xác và độ co dãn đối với kiểu dữ liệu numeric
    NULL | NOT NULL - qui định kiểu dữ liệu có cho phép chứa giá trị null hay không


                                                      RDBMS and Data Management/Session 11/9 of 40
Kiểu dữ liệu người dùng (2-2)
Ví dụ:
CREATE TYPE usertype FROM varchar(20) NOT NULL


                    Kết quả:




                                 RDBMS and Data Management/Session 11/10 of 40
Tạo bảng
Cú pháp:
 CREATE TABLE [database_name] . [ schema_name ] table_name
 ( {dụ:
 Ví <column_definition> | <computed_column_definition> }
   [ <table_constraint> ] [ ,...n ] ) [ ; ]
 <column_definition> ::= column_name <data_type>
 CREATE TABLE PhoneGallery ( PhoneID int, Photo
 <data type> ::=)[ type_schema_name . ] type_name
 varbinary(max)
 <column_constraint> ::= [ CONSTRAINT constraint_name ] {
 GO
    { PRIMARY KEY | UNIQUE }] | [ FOREIGN KEY ] REFERENCES
 INSERT INTO PhoneGallery (PhoneID, Photo)
 [ schema_name . ] referenced_table_name [ ( ref_column ) ]
 GOON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT
 [
 } ] [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET
 SELECT TOP 10 ProductPhotoID, ThumbNailPhoto FROM
 DEFAULT } ] | CHECK ( logical_expression )
 Production.ProductPhoto
 GO




                                    RDBMS and Data Management/Session 11/11 of 40
Cột được phép null – Column Nullability
 Đặc trưng của khả năng Null của một cột quyết định các
hàng trong bảng có thể chứa một giá trị Null cho cột đó
 Khả năng Null của một cột có thể được định nghĩa khi tạo
một bảng hoặc định dạng một bảng
 Từ khóa NULL được sử dụng để chỉ ra rằng giá trị
null là được phép trong cột
 Từ khóa NOT NULL được sử dụng để chỉ ra rằng
giá trị null là không được phép

   Ví du:
 CREATE TABLE StoreDetails
 (StoreID int NOT NULL, Name varchar(40) NULL)
                                     RDBMS and Data Management/Session 11/12 of 40
Định nghĩa DEFAULT 1-2
   Một định nghĩa Default có thể
    được định sẵn một cột để gán cho
    nó một giá trị măc định nếu không
    giá trị được chỉ định trong thời
    gian khởi tạo

   Một định nghĩa DEFAULT có thể
    cho tạo một cột trong thời gian tạo
    bảng hoặc được thêm vào ở trạng
    thái sau cùng đến một bảng đã
    tồn tại


                                 RDBMS and Data Management/Session 11/13 of 40
Định nghĩa DEFAULT 2-2
   Ví dụ:
   Định nghĩa DEFAULT không thể được tạo trên cột đã định
   nghĩa với:
CREATE TABLE StoreProduct( ProductID int NOT NULL, Name
varchar(40) NOT NULL, Price money NOT NULL DEFAULT (100))

   Một kiểu dữ liệu timestamp

   Một thuộc tính IDENTITY hoặc ROWGUIDCOL

  Có tồn tại sự định nghĩa mặc định hoặc đối tượng mặc
  Ví dụ:
  định
 INSERT INTO StoreProduct (ProductID, Name) VALUES (111,
 ‘Rivets’)


                                    RDBMS and Data Management/Session 11/14 of 40
Thuộc tính IDENTITY 1-3
  Thuộc tính IDENTITY của SQL Server được sử dụng để tạo ra các cột
  nhận dạng, chúng chứa các giá trị tự động phát sinh tuần tự để nhận
  dạng duy nhất mỗi hàng trong một bảng

  Một thuộc tính nhận dạng có hai thành phần:
      Giá trị khởi đầu
      Giá trị tăng

  Một bảng thường dùng các từ khoá và các chức năng khác nhau có
  thể được kêt hợp với các cột định dạng:

       Thuộc tính/Hàm                           Mô tả

Từ khoá IDENTITYCOL       Tìm giá trị của cột nhận dạng
Hàm OBJECTPROPERTY()      Xác định nếu một bảng có một cột IDENTITY
Hàm COLUMNPROPERTY        Tìm tên của cột IDENTITY trong một bảng

                                            RDBMS and Data Management/Session 11/15 of 40
Thuộc tính IDENTITY 2-3
 Cú pháp:
CREATE TABLE <table_name> (column_name data_type [ IDENTITY
[(seed_value, increment_value)]] NOT NULL )
where,
         - seed_value là giá trị khởi đầu .
          - increment_value là giá trị tăng.



  Ví dụ:
CREATE TABLE Person.ContactPhone ( Person_ID int
IDENTITY(500,1) NOT NULL, MobileNumber bigint NOT NULL )

 Ở đây, trong ví dụ này, 500 là giá trị khởi đầu và 1 là giá trị tăng

                                                 RDBMS and Data Management/Session 11/16 of 40
Thuộc tính IDENTITY 3-3
Sau đó, nếu câu lệnh SELECT được viết để chỉ hiển thị PersonID, màn
hình xuất ra là:
                                Kết quả:


Ví dụ:
INSERT INTO Person.ContactPhone (MobileNumber) VALUES
(983452201)
GO
INSERT INTO Person.ContactPhone (MobileNumber) VALUES
(993026654)
GO




                                           RDBMS and Data Management/Session 11/17 of 40
Cột nhận dạng duy nhất tổng thể1-
2
    Cột nhận dạng duy nhất tổng thể có thể
     được tạo ra cho mỗi bảng chứa các giá trị,
     các giá trị đó là duy nhất trong tất cả các
     máy tính trong mạng
    Chỉ có một cột là cột nhận dạng duy nhất
     tổng thể trong mỗi bảng
    Để tạo và làm việc với cột nhận dạng duy
     nhất tổng thể, chúng ta phải sử dụng kết
     hợp từ khóa ROWGUIDCOL, kiểu dữ liệu
     uniqueidentifier và hàm NEWID


                                    RDBMS and Data Management/Session 11/18 of 40
Cột nhận dạng duy nhất tổng thể 2-
2
Ví dụ:                      Kết quả:
 CREATE TABLE Person.CellularPhone( Person_ID
 uniqueidentifier DEFAULT NEWID() NOT NULL, PersonName
 varchar(60) NOT NULL)




Ví dụ:
  INSERT INTO Person.CellularPhone(PersonName)
  VALUES(‘William Smith’)
  GO
  SELECT * FROM Person.CellularPhone


                                       RDBMS and Data Management/Session 11/19 of 40
Ràng buộc – Constraint
   Ràng buộc là thuộc tính được chỉ định
    cho một cột hoặc một tập hợp các cột
    trong bảng để ngăn ngừa các giá trị
    không nhất quán được nhập vào
    SQL Server 2005 hỗ trợ các loại ràng
    buộc sau:

   PRIMARY KEY
   UNIQUE
   FOREIGN KEY
   CHECK
   NOT NULL
                                   RDBMS and Data Management/Session 11/20 of 40
Primary Key – Khoá chính
Cú pháp: buộc thêm một khóa chính trong khi tạo tạo một
 Cú pháp để PRIMARY KEY được sử dụng để bảng:
   Ràng                                                              khóa
 CREATE TABLE <table_name> vẹn thực thể bảng:
   chính và đảm bảo toàn ( Column_name datatype PRIMARY KEY
CREATE column_list] )
    [, TABLE <table_name> (<column_name> <datatype>
[, column_list] CONSTRAINT constraint_name PRIMARY KEY)
Ví dụ:
CREATE TABLE Person.ContactPhone ( Person_ID int PRIMARY
KEY, MobileNumber bigint, ServiceProvider varchar(30),
Ví dụ:
LandlineNumber bigint)
INSERT INTO Person.ContactPhone VALUES (101,983345674,’Hutch’,
   NULL)
GO
INSERT INTO Person.ContactPhone VALUES(101,989010002,’Airtel’,
   NULL)
GO




                                     RDBMS and Data Management/Session 11/21 of 40
UNIQUE - Khóa duy nhất
 Ràng buộc khóa duy nhất được sử dụng để bảo đảm
  rằng chỉ các giá trị duy nhất được nhập vào trong cột
  hoặc một tập hợp các cột. Nó cho phép nhà phát triển
Cúchắc chắn rằng không có các giá trị trùng lặp được nhập
   pháp:
  vào
CREATE TABLE <table_name> ([column_list, ] <column_name>
<data_type>  UNIQUE [,column_list])
   Khóa chính là hoàn toàn duy nhất
Ví dụ:
 Ràng buộc khóa duy nhất đảm bảo ràng buộc thực thể

 CREATE vì khi một ràng buộc được áp dụng,int PRIMARY hai
   bởi TABLE Person.ContactPhone (Person_ID không có
 KEY, MobileNumber bigint UNIQUE,ServiceProvider với cột đó
   hàng trong bảng có thể có cùng một giá trị đối
varchar(30),LandlineNumber bigint UNIQUE)
  Ràng buộc UNIQUE cho phép null
Ví dụ:
INSERT INTO Person.ContactPhone values (101, 983345674,
’Hutch’, NULL)

                                    RDBMS and Data Management/Session 11/22 of 40
FOREIGN KEY – Khóa ngoại 1-
     2
    Một khóa ngoại trong một bảng là một cột, nó chỉ đến một
     khóa chính trong một bảng khác

    Ràng buộc khóa ngoại được sử dụng để đảm bảo toàn vẹn
     tham chiếu

Cú pháp:
CREATE TABLE <table_name1>([ column_list,] <column_name>
<datatype> FOREIGN KEY REFERENCES <table_name2>
(pk_column_name> [, column_list])




                                      RDBMS and Data Management/Session 11/23 of 40
FOREIGN KEY – Khóa ngoại 2-
    2
Ví dụ:
                       Kết qua:
CREATE TABLE Person.PhoneExpenses (Expense_ID int PRIMARY
   KEY, MobileNumber bigint FOREIGN KEY REFERENCES
   Person.ContactPhone (MobileNumber), Amount bigint)




Ví dụ:

 INSERT INTO Person.PhoneExpenses values(101, 993026654,
 500)
 SELECT * FROM Person.PhoneExpenses




                                     RDBMS and Data Management/Session 11/24 of 40
Ràng buộc kiểm tra
    Ràng buộc kiểm tra giới hạn giá trị có thể được
     nhập vào trong cột
    Ràng buộc kiểm tra đảm bảo toàn vẹn dữ liệu

Ví dụ:
CREATE TABLE Person.PhoneExpenses ( Expense_ID int PRIMARY
KEY, MobileNumber bigint FOREIGN KEY REFERENCES
Person.ContactPhone (MobileNumber), Amount bigint CHECK
(Amount >0))




                                     RDBMS and Data Management/Session 11/25 of 40
Ràng buộc NOT NULL
Ràng buộc NOT NULL bảo đảm rằng
không được phép nhập giá trị null vào
cột này
Ràng buộc NOT NULL được sử dụng
để bảo đảm toàn vẹn miền, tương tự
như ràng buộc kiểm tra



                      RDBMS and Data Management/Session 11/26 of 40
Thêm cột vào một bảng
Cú pháp:
ALTER TABLE <table_name> ADD <column_name1>
   <data_type1>[,<column_name2> <data_type2>,
   ...]




Ví dụ:

 ALTER TABLE Person.ContactPhone ADD
 RentalCharges money




                                       RDBMS and Data Management/Session 11/27 of 40
Chỉnh sửa cột trong bảng
Cú pháp:
ALTER TABLE <table_name> ALTER COLUMN <column_name1>
   <data_type1>   [,<column_name2> <data_type2>   ...]



Ví dụ:

ALTER TABLE Person.ContactPhone ALTER COLUMN ServiceProvider
varchar(45)




                                     RDBMS and Data Management/Session 11/28 of 40
Xoá cột trong bảng
 Cú pháp:
ALTER TABLE <table_name> DROP COLUMN
   <column_name1> [,<column_name2> ...]



 Ví dụ:
ALTER TABLE Person.ContactPhone DROP COLUMN
ServiceProvider




                                      RDBMS and Data Management/Session 11/29 of 40
Thêm và xoá các ràng buộc
Cú pháp:
ALTER TABLE <table_name> ADD CONSTRAINT <constraint_name>
   <constraint_type> <column_name1> [<condition>]

Ví dụ:
ALTER TABLE Person.ContactPhone ADD CONSTRAINT          CHK_RC CHECK
(RentalCharges >0)

Cú pháp:
 ALTER TABLE <table_name> DROP CONSTRAINT <constraint>


Ví dụ:

 ALTER TABLE Person.ContactPhone DROP CONSTRAINT CHK_RC

                                     RDBMS and Data Management/Session 11/30 of 40
Làm việc với XML
    Thuận lợi khi làm việc với cơ sở dữ liệu XML tự
    nhiên trong SQL Server là:
   Dễ dàng quản lý và tìm kiếm dữ liệu: tất cả các dữ liệu XML
    được lưu trữ cục bộ ở một nơi, vì thế dễ dàng tìm kiếm và
    quản lý
   Sự thực thi tốt hơn: Các truy vấn từ một cơ sở dữ liệu XML
    được thi hành tốt sẽ nhanh hơn các truy vấn bằng tài liệu đã
    lưu trữ trong hệ thống tập tin. Ngoài ra, về bản chất, cơ sở
    dữ liệu sẽ phân tách mỗi tài liệu khi lưu trữ chúng
   Dễ dàng xử lý dữ liệu: các tài liệu lớn có thể được xử lý dễ
    dàng


                                       RDBMS and Data Management/Session 11/31 of 40
Tạo bảng với cột XML
Cú pháp:                         Kết quả:
CREATE TABLE <table_name> (   [ column_list,] <column_name>
  xml [, column_list])

Ví dụ:
CREATE TABLE Person.PhoneBilling (Bill_ID int PRIMARY KEY,
MobileNumber bigint UNIQUE, CallDetails xml)

Ví dụ:
INSERT INTO Person.PhoneBilling VALUES
(100,9833276605,‘<Info><Call>Local</Call><Time>45 minutes
</Time><Charges>200</Charges></Info>’)
SELECT CallDetails FROM Person.PhoneBilling


                                      RDBMS and Data Management/Session 11/32 of 40
XML định kiểu và không định kiểu
Có hai cách lưu trữ dữ liệu XML trong các cột kiểu dữ liệu
XML và các biến:
       Được phân loại-Typed
       Không phân loại -Untyped

Một thể hiện XML mà nó được kết hợp với một lược đồ
được gọi là thể hiện XML được phân loại (Typed XML). Ở
đây, dữ liệu có thể được xác định tính hợp lệ trong khi nó
được lưu trữ vào trong cột dữ liệu XML

Một thể hiện XML không được phân loại (Untyped XML)
không có sự kết hợp với một lược đồ XML. SQL Server
không thực hiện việc kiểm tra tính hợp lệ của dữ liệu
nhập vào trong cột
                                   RDBMS and Data Management/Session 11/33 of 40
Giản đồ XML
              CREATE XML SCHEMA COLLECTION
                 CricketSchemaCollection
Ví dụ:        AS N’<xsd:schema
                 xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
         <xsd:attribute name=”score” type=”xsd:string” />
                <xsd:element name=”MatchDetails”>
                            </xsd:restriction>
                   <xsd:complexType>
                          </xsd:complexContent>
                     <xsd:complexContent>
                        </xsd:complexType>
                        <xsd:restriction base=”xsd:anyType”>
                     </xsd:element>
                          <xsd:sequence>
                   </xsd:sequence>
                             <xsd:element name=”Team”
                 </xsd:restriction>
                 minOccurs=”0” maxOccurs=”unbounded”>
               </xsd:complexContent>
             </xsd:complexType><xsd:complexType>
           </xsd:element>        <xsd:complexContent>
         </xsd:schema>’            <xsd:restriction
                 base=”xsd:anyType”>
                                     <xsd:sequence />
                                     <xsd:attribute
                 name=”country” type=”xsd:string” />


                                     RDBMS and Data Management/Session 11/34 of 40
Cách sử dụng XML đã định kiểu
Ví dụ:
   CREATE TABLE CricketTeam (TeamID int IDENTITY NOT
   NULL, TeamInfo xml(CricketSchemaCollection) )

Ví dụ:
   INSERT INTO CricketTeam (TeamInfo) VALUES
   (‘<MatchDetails><Team country=”Australia”
   score=”355”></Team><Team country=”Zimbabwe”
   score=”200”></Team><Team country=”England”
   score=”475”></Team></MatchDetails>’)
Ví dụ:
    DECLARE @team xml(CricketSchemaCollection)
    SET @team = ‘<MatchDetails><Team
      country=”Australia”></Team></MatchDetails>’
    SELECT @team

                                     RDBMS and Data Management/Session 11/35 of 40
XQuery 1-4
XQuery:
 Cho phép truy vấn và khôi phục dữ liệu XML
bằng cách sử dụng một ngôn ngữ có tên là XQuery
 Kết hợp các cú pháp quen thuộc với người lập
trình, người làm việc việc với cơ sở dữ liệu quan hệ,
và ngôn ngữ Xpath, để chọn các đoạn hoặc các tập
hợp riêng lẻ của các phần tử từ tài liệu XML
 Để truy vấn một thể hiện XML được lưư trong
một biến hoặc cột kiểu xml, các phương thức kiểu
xml được sử dụng


                                 RDBMS and Data Management/Session 11/36 of 40
XQuery 2-4
   Một vài phương thức thuộc kiểu xml được sử dụng với
   XQuery là:
Ví dụ:
   exist():
 USE AdventureWorks
 SELECT TeamID FROM CricketTeam để xác định nếu một hoặc
   Phương thức được sử dụng WHERE
   nhiều nút được chỉ định xuất hiện trong tài 1
    TeamInfo.exist(‘(/MatchDetails/Team)’) = liệu XML

Ví dụ:
    query():
    Phương thức query() có thể được sử dụng để truy lục hoặc
 USE AdventureWorks của tài liệu XML hoặc các đoạn có chọn
    toàn bộ nội dung
 SELECT TeamInfo.query(‘/MatchDetails/Team’) AS Info FROM
 CricketTeam tài liệu
    lựa trong



                                   RDBMS and Data Management/Session 11/37 of 40
XQuery 3-4
 Kết quả:




             RDBMS and Data Management/Session 11/38 of 40
XQuery 4-4
Phương thức value() có thể được rút ra các giá trị vô hướng
từ một kiểu dữ liệu
Ví dụ:

USE AdventureWorks
SELECT TeamInfo.value(‘(/MatchDetails/Team/@score)[1]’,
‘varchar(20)’) AS Score FROM CricketTeam where
TeamID=23



 Kết quả:



                                    RDBMS and Data Management/Session 11/39 of 40
Tóm tắt
   Kiểu dữ liệu là một thuộc tính được sử dụng để chỉ định loại dữ liệu của
    một đối tượng và kích thước lưu trữ của nó
   SQL Server 2005 hỗ trợ 3 kiểu dữ liệu: kiểu dữ liệu hệ thống, kiểu dữ
    liệu người dùng và kiểu dữ liệu được định nghĩa trong ngôn ngữ lập trình
   Đặc tính cho phép NULL của một cột xác định rằng các hàng trong bảng
    có thể chứa giá trị null đối với cột đó. SQL Server sử dụng các từ khóa
    NULL và NOT NULL để mô tả về đặc tính này
   Từ khóa DEFAULT được sử dụng để chỉ định một giá trị mặc định cho
    một cột khi giá trị của cột đó chưa biết. Trong khi đó, thuộc tính
    IDENTITY được sử dụng để tạo ra một cột nhận dạng, nó chứa các giá
    trị tuần tự được tự động phát sinh, và để nhận dạng tính duy nhất của
    mỗi hàng trong bảng.
   Một ràng buộc là một luật mà nó được gán cho một hoặc tập hợp các cột
    trong bảng để đảm bảo tính toàn vẹn
   Kiểu dữ liệu xml được sử dụng để lưu trữ tài liệu và các phân đoạn XML
    trong cơ sở dữ liệu SQL Server
   XQuery là ngôn ngữ được sử dụng để truy vấn dữ liệu XML được lưu trữ
    trong cơ sở dữ liệu XML

                                               RDBMS and Data Management/Session 11/40 of 40

More Related Content

What's hot

Báo cáo quản lý cửa hàng máy tính
Báo cáo quản lý cửa hàng máy tínhBáo cáo quản lý cửa hàng máy tính
Báo cáo quản lý cửa hàng máy tính
thuvienso
 
Báo cáo thực tập tốt nghiệp
Báo cáo thực tập tốt nghiệpBáo cáo thực tập tốt nghiệp
Báo cáo thực tập tốt nghiệpSammy Chiu
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
Võ Phúc
 
Bài giảng an toàn ứng dụng web và csdl PTIT
Bài giảng an toàn ứng dụng web và csdl PTITBài giảng an toàn ứng dụng web và csdl PTIT
Bài giảng an toàn ứng dụng web và csdl PTIT
NguynMinh294
 
Httt bai tap
Httt bai tapHttt bai tap
Httt bai tap
duong duong
 
Bài gảng cơ sở an toàn thông tin PTIT
Bài gảng cơ sở an toàn thông tin PTITBài gảng cơ sở an toàn thông tin PTIT
Bài gảng cơ sở an toàn thông tin PTIT
NguynMinh294
 
Khóa luận tốt nghiệp Một số giải pháp đảm bảo an toàn bảo mật thông tin cho c...
Khóa luận tốt nghiệp Một số giải pháp đảm bảo an toàn bảo mật thông tin cho c...Khóa luận tốt nghiệp Một số giải pháp đảm bảo an toàn bảo mật thông tin cho c...
Khóa luận tốt nghiệp Một số giải pháp đảm bảo an toàn bảo mật thông tin cho c...
https://www.facebook.com/garmentspace
 
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đĐề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Đề tài: Hệ thống hỗ trợ điểm danh sinh viên trường ĐH Hải Phòng
Đề tài: Hệ thống hỗ trợ điểm danh sinh viên trường ĐH Hải PhòngĐề tài: Hệ thống hỗ trợ điểm danh sinh viên trường ĐH Hải Phòng
Đề tài: Hệ thống hỗ trợ điểm danh sinh viên trường ĐH Hải Phòng
Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Báo cáo mô hình quản lý khách sạn
Báo cáo mô hình quản lý khách sạnBáo cáo mô hình quản lý khách sạn
Báo cáo mô hình quản lý khách sạnbaran19901990
 
tổng hợp bài tập java có đáp án chi tiết
 tổng hợp bài tập java có đáp án chi tiết tổng hợp bài tập java có đáp án chi tiết
tổng hợp bài tập java có đáp án chi tiết
Hoàng Trí Phan
 
Xây dựng biểu đồ use case
Xây dựng biểu đồ use caseXây dựng biểu đồ use case
Xây dựng biểu đồ use caseTrung Chinh Hà
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Công Nghệ Thông Tin, 9 Điểm
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Công Nghệ Thông Tin, 9 ĐiểmDanh Sách 200 Đề Tài Báo Cáo Thực Tập Công Nghệ Thông Tin, 9 Điểm
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Công Nghệ Thông Tin, 9 Điểm
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Hệ thống quản lý mua hàng siêu thị mini
Hệ thống quản lý mua hàng siêu thị miniHệ thống quản lý mua hàng siêu thị mini
Hệ thống quản lý mua hàng siêu thị mini
Han Nguyen
 
Đề tài: Hệ thống thông tin quản lý bán hàng tại công ty thương mại
Đề tài: Hệ thống thông tin quản lý bán hàng tại công ty thương mạiĐề tài: Hệ thống thông tin quản lý bán hàng tại công ty thương mại
Đề tài: Hệ thống thông tin quản lý bán hàng tại công ty thương mại
Dịch vụ viết bài trọn gói ZALO 0917193864
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
thuhuynhphonegap
 
Xây dựng cơ sở dữ liệu quản lý khách sạn
Xây dựng cơ sở dữ liệu quản lý khách sạnXây dựng cơ sở dữ liệu quản lý khách sạn
Xây dựng cơ sở dữ liệu quản lý khách sạn
nataliej4
 
Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...
Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...
Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...
Viết thuê trọn gói ZALO 0934573149
 
Mô hình hóa yêu cầu
Mô hình hóa yêu cầuMô hình hóa yêu cầu
Mô hình hóa yêu cầuNguyen Tran
 

What's hot (20)

Báo cáo quản lý cửa hàng máy tính
Báo cáo quản lý cửa hàng máy tínhBáo cáo quản lý cửa hàng máy tính
Báo cáo quản lý cửa hàng máy tính
 
Báo cáo thực tập tốt nghiệp
Báo cáo thực tập tốt nghiệpBáo cáo thực tập tốt nghiệp
Báo cáo thực tập tốt nghiệp
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Bài giảng an toàn ứng dụng web và csdl PTIT
Bài giảng an toàn ứng dụng web và csdl PTITBài giảng an toàn ứng dụng web và csdl PTIT
Bài giảng an toàn ứng dụng web và csdl PTIT
 
Httt bai tap
Httt bai tapHttt bai tap
Httt bai tap
 
Bài gảng cơ sở an toàn thông tin PTIT
Bài gảng cơ sở an toàn thông tin PTITBài gảng cơ sở an toàn thông tin PTIT
Bài gảng cơ sở an toàn thông tin PTIT
 
Khóa luận tốt nghiệp Một số giải pháp đảm bảo an toàn bảo mật thông tin cho c...
Khóa luận tốt nghiệp Một số giải pháp đảm bảo an toàn bảo mật thông tin cho c...Khóa luận tốt nghiệp Một số giải pháp đảm bảo an toàn bảo mật thông tin cho c...
Khóa luận tốt nghiệp Một số giải pháp đảm bảo an toàn bảo mật thông tin cho c...
 
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đĐề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
 
Đề tài: Hệ thống hỗ trợ điểm danh sinh viên trường ĐH Hải Phòng
Đề tài: Hệ thống hỗ trợ điểm danh sinh viên trường ĐH Hải PhòngĐề tài: Hệ thống hỗ trợ điểm danh sinh viên trường ĐH Hải Phòng
Đề tài: Hệ thống hỗ trợ điểm danh sinh viên trường ĐH Hải Phòng
 
Báo cáo mô hình quản lý khách sạn
Báo cáo mô hình quản lý khách sạnBáo cáo mô hình quản lý khách sạn
Báo cáo mô hình quản lý khách sạn
 
tổng hợp bài tập java có đáp án chi tiết
 tổng hợp bài tập java có đáp án chi tiết tổng hợp bài tập java có đáp án chi tiết
tổng hợp bài tập java có đáp án chi tiết
 
Xây dựng biểu đồ use case
Xây dựng biểu đồ use caseXây dựng biểu đồ use case
Xây dựng biểu đồ use case
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Công Nghệ Thông Tin, 9 Điểm
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Công Nghệ Thông Tin, 9 ĐiểmDanh Sách 200 Đề Tài Báo Cáo Thực Tập Công Nghệ Thông Tin, 9 Điểm
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Công Nghệ Thông Tin, 9 Điểm
 
Hệ thống quản lý mua hàng siêu thị mini
Hệ thống quản lý mua hàng siêu thị miniHệ thống quản lý mua hàng siêu thị mini
Hệ thống quản lý mua hàng siêu thị mini
 
Đề tài: Hệ thống thông tin quản lý bán hàng tại công ty thương mại
Đề tài: Hệ thống thông tin quản lý bán hàng tại công ty thương mạiĐề tài: Hệ thống thông tin quản lý bán hàng tại công ty thương mại
Đề tài: Hệ thống thông tin quản lý bán hàng tại công ty thương mại
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
 
Xây dựng cơ sở dữ liệu quản lý khách sạn
Xây dựng cơ sở dữ liệu quản lý khách sạnXây dựng cơ sở dữ liệu quản lý khách sạn
Xây dựng cơ sở dữ liệu quản lý khách sạn
 
Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...
Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...
Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...
 
Mô hình hóa yêu cầu
Mô hình hóa yêu cầuMô hình hóa yêu cầu
Mô hình hóa yêu cầu
 

Similar to Bài 11 tạo bảng và sử dụng các kiểu dữ liệu

Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Hoa Le
 
Bài 2 : Các đối tượng trong CSDL - SQL server
Bài 2 : Các đối tượng trong CSDL - SQL serverBài 2 : Các đối tượng trong CSDL - SQL server
Bài 2 : Các đối tượng trong CSDL - SQL server
MasterCode.vn
 
csdl bai-thuchanh_01
csdl bai-thuchanh_01csdl bai-thuchanh_01
csdl bai-thuchanh_01
kikihoho
 
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Truong Ho
 
Sql server chuong 2 nkhanh
Sql server chuong 2 nkhanhSql server chuong 2 nkhanh
Sql server chuong 2 nkhanh
Nguyễn Duy Hưng
 
Sql server chuong 2 nkhanh
Sql server chuong 2 nkhanhSql server chuong 2 nkhanh
Sql server chuong 2 nkhanh
John Carter
 
ERD - Database Design
ERD - Database DesignERD - Database Design
ERD - Database Design
yht4ever
 
Chuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfChuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdf
Criz20
 
Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)
khanhtoankmz
 
Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1
Nguyễn Trọng
 
Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION
Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTIONBáo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION
Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION
nataliej4
 
Stata bai1
Stata bai1Stata bai1
Stata bai1
Ngà Phan
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
pisu412
 
b1-gioithieu-190213084421.pdf
b1-gioithieu-190213084421.pdfb1-gioithieu-190213084421.pdf
b1-gioithieu-190213084421.pdf
QuyVo27
 
Cơ sở dữ liệu PTIT slide 2
Cơ sở dữ liệu PTIT slide 2Cơ sở dữ liệu PTIT slide 2
Cơ sở dữ liệu PTIT slide 2
NguynMinh294
 
Bai1 xaydung csdl-access
Bai1 xaydung csdl-accessBai1 xaydung csdl-access
Bai1 xaydung csdl-access
Hào Kiệt
 
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.comBài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
mai_non
 
Digital library standard and technology
Digital library standard and technologyDigital library standard and technology
Digital library standard and technology
Minh Tri Lam
 

Similar to Bài 11 tạo bảng và sử dụng các kiểu dữ liệu (20)

Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
 
J2 me 07_4
J2 me 07_4J2 me 07_4
J2 me 07_4
 
Bài 2 : Các đối tượng trong CSDL - SQL server
Bài 2 : Các đối tượng trong CSDL - SQL serverBài 2 : Các đối tượng trong CSDL - SQL server
Bài 2 : Các đối tượng trong CSDL - SQL server
 
csdl bai-thuchanh_01
csdl bai-thuchanh_01csdl bai-thuchanh_01
csdl bai-thuchanh_01
 
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
 
Sql server chuong 2 nkhanh
Sql server chuong 2 nkhanhSql server chuong 2 nkhanh
Sql server chuong 2 nkhanh
 
Sql server chuong 2 nkhanh
Sql server chuong 2 nkhanhSql server chuong 2 nkhanh
Sql server chuong 2 nkhanh
 
ERD - Database Design
ERD - Database DesignERD - Database Design
ERD - Database Design
 
Chuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfChuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdf
 
Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)
 
Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1
 
Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION
Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTIONBáo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION
Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION
 
Stata bai1
Stata bai1Stata bai1
Stata bai1
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
 
b1-gioithieu-190213084421.pdf
b1-gioithieu-190213084421.pdfb1-gioithieu-190213084421.pdf
b1-gioithieu-190213084421.pdf
 
Cơ sở dữ liệu PTIT slide 2
Cơ sở dữ liệu PTIT slide 2Cơ sở dữ liệu PTIT slide 2
Cơ sở dữ liệu PTIT slide 2
 
Bai1 xaydung csdl-access
Bai1 xaydung csdl-accessBai1 xaydung csdl-access
Bai1 xaydung csdl-access
 
On thi kpdl
On thi kpdlOn thi kpdl
On thi kpdl
 
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.comBài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
 
Digital library standard and technology
Digital library standard and technologyDigital library standard and technology
Digital library standard and technology
 

Bài 11 tạo bảng và sử dụng các kiểu dữ liệu

  • 1. Session 11 Tạo bảng và sử dụng các kiểu dữ liệu
  • 2. Tổng quan  Kết quả của câu lệnh SELECT được gọi là tập kết quả  Sau câu lệnh SELECT là danh sách các cột được sử dụng trong câu truy vấn  Dấu (*) được dùng để hiển thị tất cả các cột trong bảng  Mệnh đề AS đưa ra kết quả của một cột biết trước  Điều kiện Boolean được sử dụng với mệnh đề Where để kiểm tra điều kiện của các hàng  Các toán tử như CUBE và ROLLUP được sử dụng với mệnh đề GROUP BY để tóm tắt dữ liệu  Mệnh đề ORDER BY chỉ các yêu cầu mà ở đó các cột nên được lưu trữ trong tập kết quả RDBMS and Data Management/Session 11/2 of 40
  • 3. Mục tiêu của bài học  Định nghĩa các kiểu dữ liệu và danh sách các chỉ mục trong SQL Server 2005  Mô tả cách tạo, hiệu chỉnh và xóa bảng trong cơ sở dữ liệu SQL Server  Mô tả cách thêm, hiệu chỉnh và xóa các cột cũng như các ràng buộc trong bảng  Mô tả cách làm việc với các typed và untyped XML  Giải thích cách tạo, sử dụng và xem các giản đồ XML  Giải thích cách sử dụng XQuery để truy cập dữ liệu XML RDBMS and Data Management/Session 11/3 of 40
  • 4. Các kiểu dữ liệu  Kiểu dữ liệu là một thuộc tính, nó chỉ định kiểu của dữ liệu và dung lượng có thể lưu trữ của một đối tượng  Các kiểu dữ liệu ép buộc dữ liệu phải toàn vẹn  SQL Server 2005 hỗ trợ 3 kiểu dữ liệu:  Kiểu dữ liệu hệ thống : được cung cấp bởi SQL Server 2005  Kiểu dữ liệu người dùng : Là kiểu dữ liệu được tạo ra dựa trên kiểu dữ liệu hệ thống  Kiểu dữ liệu được định nghĩa trong ngôn ngữ lập trình : Là các kiểu dữ liệu được tạo ra bằng cách sử dụng ngôn ngữ lập trình, chúng được hỗ trợ trong .Net Framework RDBMS and Data Management/Session 11/4 of 40
  • 5. Các kiểu dữ liệu hệ thống (1-4) Mục Kiểu dữ liệu Mô tả int Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 4 byte trong bộ nhớ máy tính. Nó thường được sử dụng để lưu trữ giá trị số nguyên smallint Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 2 byte trong bộ nhớ máy tính. Nó có thể lưu trữ các số nguyên từ -32768 đến 32767. tinyint Một cột của kiểu này chiếm 1 byte trong bộ nhớ. Có giá trị từ 0 đến 255 Exact bigint Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 8 byte trong Numbers bộ nhớ máy tính. Nó có thể lưu trữ các số nguyên từ -2^63 (- 9223372036854775807) đến 2^63-1 numeric Một cột được khai báo kiểu dữ liệu này sẽ có độ chính xác cao và có thể co dãn kích thước lưu trữ trong bộ nhớ. money Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 8 byte trong bộ nhớ máy tính. Biểu diễn giá trị dữ liệu tiền tệ từ (- 2^63/10000) đến (2^63-1). RDBMS and Data Management/Session 11/5 of 40
  • 6. Các kiểu dữ liệu hệ thống (2-4) Mục Kiểu dữ liệu Mô tả Approximate float Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 8 byte numerics trong bộ nhớ máy tính. Biễu diễn các số chấm động từ -1.79E+308 đến 1.79E+308. real Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 4 byte trong bộ nhớ máy tính. Biễu diễn các số chấm động có độ chính xác từ -3.4E+38 đến 3.40E+38. datetime Biễu diễn ngày và giờ. Được lưu trữ như là 2 số integer, Date and time chiếm 8 byte. smalldatetime Biểu diễn ngày và time. RDBMS and Data Management/Session 11/6 of 40
  • 7. Các kiểu dữ liệu hệ thống (3-4) Mục Kiểu dữ liệu Mô tả Character String char Lưu trữ dữ liệu kí tự, nó được cố định kích thước và không hỗ trợ Unicode. varchar Lưu trữ dữ liệu kí tự, độ dài có thể thay đổi và không hỗ trợ Unicode. text Lưu trữ dữ liệu kí tự, độ dài có thể thay đổi và không hỗ trợ Unicode. Unicode nchar Lưu trữ dữ liệu kí tự, nó được cố định kích thước và Types có hỗ trợ Unicode. nvarchar Lưu trữ dữ liệu kí tự, độ dài có thể thay đổi và có hỗ trợ Unicode. RDBMS and Data Management/Session 11/7 of 40
  • 8. Các kiểu dữ liệu hệ thống (4-4) Mục Kiểu dữ liệu Mô tả Timestamp Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 8 byte trong bộ nhớ máy tính. Nó chứa các số binary tự động phát sinh (mỗi hàng là một số duy nhất). binary(n) Lưu trữ dữ liệu binary có độ đài cố định với độ dài tối đa là 8000byte. Các kiểu dữ varbinary(n) Lưu trữ dữ liệu binary có độ đài thay đổi với độ liệu khác dài tối đa là 8000byte. . image Lưu trữ dữ liệu binary có độ đài thay đổi với độ dài tối đa là (2^30-1) byte. uniqueidentifier Một cột được khai báo kiểu dữ liệu này sẽ sử dụng 16 byte trong bộ nhớ máy tính. Ngoài ra nó lưu trữ một GUID (Globally Unique Identifier) RDBMS and Data Management/Session 11/8 of 40
  • 9. Kiểu dữ liệu người dùng (1-2) Kiểu dữ liệu người dùng được dựa trên các kiểu dữ liệu được hệ thống cung cấp.Chúng có thể được tạo bằng cách sử dụng câu lệnh CREATE TYPE Cú pháp: CREATE TYPE [ schema_name. ] type_name {FROM base_type [ ( precision [ , scale ] ) ] [ NULL | NOT NULL ] } [ ; ] where, schema_name là tên của giản đồ mà kiểu dữ liệu người dùng đang được tạo ra type_name là tên kiểu dữ liệu người dùng base_type là tên của kiểu dữ liệu hệ thống cơ sở precision and scale -Chỉ ra độ chính xác và độ co dãn đối với kiểu dữ liệu numeric NULL | NOT NULL - qui định kiểu dữ liệu có cho phép chứa giá trị null hay không RDBMS and Data Management/Session 11/9 of 40
  • 10. Kiểu dữ liệu người dùng (2-2) Ví dụ: CREATE TYPE usertype FROM varchar(20) NOT NULL Kết quả: RDBMS and Data Management/Session 11/10 of 40
  • 11. Tạo bảng Cú pháp: CREATE TABLE [database_name] . [ schema_name ] table_name ( {dụ: Ví <column_definition> | <computed_column_definition> } [ <table_constraint> ] [ ,...n ] ) [ ; ] <column_definition> ::= column_name <data_type> CREATE TABLE PhoneGallery ( PhoneID int, Photo <data type> ::=)[ type_schema_name . ] type_name varbinary(max) <column_constraint> ::= [ CONSTRAINT constraint_name ] { GO { PRIMARY KEY | UNIQUE }] | [ FOREIGN KEY ] REFERENCES INSERT INTO PhoneGallery (PhoneID, Photo) [ schema_name . ] referenced_table_name [ ( ref_column ) ] GOON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT [ } ] [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET SELECT TOP 10 ProductPhotoID, ThumbNailPhoto FROM DEFAULT } ] | CHECK ( logical_expression ) Production.ProductPhoto GO RDBMS and Data Management/Session 11/11 of 40
  • 12. Cột được phép null – Column Nullability  Đặc trưng của khả năng Null của một cột quyết định các hàng trong bảng có thể chứa một giá trị Null cho cột đó  Khả năng Null của một cột có thể được định nghĩa khi tạo một bảng hoặc định dạng một bảng  Từ khóa NULL được sử dụng để chỉ ra rằng giá trị null là được phép trong cột  Từ khóa NOT NULL được sử dụng để chỉ ra rằng giá trị null là không được phép Ví du: CREATE TABLE StoreDetails (StoreID int NOT NULL, Name varchar(40) NULL) RDBMS and Data Management/Session 11/12 of 40
  • 13. Định nghĩa DEFAULT 1-2  Một định nghĩa Default có thể được định sẵn một cột để gán cho nó một giá trị măc định nếu không giá trị được chỉ định trong thời gian khởi tạo  Một định nghĩa DEFAULT có thể cho tạo một cột trong thời gian tạo bảng hoặc được thêm vào ở trạng thái sau cùng đến một bảng đã tồn tại RDBMS and Data Management/Session 11/13 of 40
  • 14. Định nghĩa DEFAULT 2-2 Ví dụ: Định nghĩa DEFAULT không thể được tạo trên cột đã định nghĩa với: CREATE TABLE StoreProduct( ProductID int NOT NULL, Name varchar(40) NOT NULL, Price money NOT NULL DEFAULT (100)) Một kiểu dữ liệu timestamp Một thuộc tính IDENTITY hoặc ROWGUIDCOL Có tồn tại sự định nghĩa mặc định hoặc đối tượng mặc Ví dụ: định INSERT INTO StoreProduct (ProductID, Name) VALUES (111, ‘Rivets’) RDBMS and Data Management/Session 11/14 of 40
  • 15. Thuộc tính IDENTITY 1-3 Thuộc tính IDENTITY của SQL Server được sử dụng để tạo ra các cột nhận dạng, chúng chứa các giá trị tự động phát sinh tuần tự để nhận dạng duy nhất mỗi hàng trong một bảng Một thuộc tính nhận dạng có hai thành phần:  Giá trị khởi đầu  Giá trị tăng Một bảng thường dùng các từ khoá và các chức năng khác nhau có thể được kêt hợp với các cột định dạng: Thuộc tính/Hàm Mô tả Từ khoá IDENTITYCOL Tìm giá trị của cột nhận dạng Hàm OBJECTPROPERTY() Xác định nếu một bảng có một cột IDENTITY Hàm COLUMNPROPERTY Tìm tên của cột IDENTITY trong một bảng RDBMS and Data Management/Session 11/15 of 40
  • 16. Thuộc tính IDENTITY 2-3 Cú pháp: CREATE TABLE <table_name> (column_name data_type [ IDENTITY [(seed_value, increment_value)]] NOT NULL ) where, - seed_value là giá trị khởi đầu . - increment_value là giá trị tăng. Ví dụ: CREATE TABLE Person.ContactPhone ( Person_ID int IDENTITY(500,1) NOT NULL, MobileNumber bigint NOT NULL ) Ở đây, trong ví dụ này, 500 là giá trị khởi đầu và 1 là giá trị tăng RDBMS and Data Management/Session 11/16 of 40
  • 17. Thuộc tính IDENTITY 3-3 Sau đó, nếu câu lệnh SELECT được viết để chỉ hiển thị PersonID, màn hình xuất ra là: Kết quả: Ví dụ: INSERT INTO Person.ContactPhone (MobileNumber) VALUES (983452201) GO INSERT INTO Person.ContactPhone (MobileNumber) VALUES (993026654) GO RDBMS and Data Management/Session 11/17 of 40
  • 18. Cột nhận dạng duy nhất tổng thể1- 2  Cột nhận dạng duy nhất tổng thể có thể được tạo ra cho mỗi bảng chứa các giá trị, các giá trị đó là duy nhất trong tất cả các máy tính trong mạng  Chỉ có một cột là cột nhận dạng duy nhất tổng thể trong mỗi bảng  Để tạo và làm việc với cột nhận dạng duy nhất tổng thể, chúng ta phải sử dụng kết hợp từ khóa ROWGUIDCOL, kiểu dữ liệu uniqueidentifier và hàm NEWID RDBMS and Data Management/Session 11/18 of 40
  • 19. Cột nhận dạng duy nhất tổng thể 2- 2 Ví dụ: Kết quả: CREATE TABLE Person.CellularPhone( Person_ID uniqueidentifier DEFAULT NEWID() NOT NULL, PersonName varchar(60) NOT NULL) Ví dụ: INSERT INTO Person.CellularPhone(PersonName) VALUES(‘William Smith’) GO SELECT * FROM Person.CellularPhone RDBMS and Data Management/Session 11/19 of 40
  • 20. Ràng buộc – Constraint  Ràng buộc là thuộc tính được chỉ định cho một cột hoặc một tập hợp các cột trong bảng để ngăn ngừa các giá trị không nhất quán được nhập vào SQL Server 2005 hỗ trợ các loại ràng buộc sau:  PRIMARY KEY  UNIQUE  FOREIGN KEY  CHECK  NOT NULL RDBMS and Data Management/Session 11/20 of 40
  • 21. Primary Key – Khoá chính Cú pháp: buộc thêm một khóa chính trong khi tạo tạo một Cú pháp để PRIMARY KEY được sử dụng để bảng: Ràng khóa CREATE TABLE <table_name> vẹn thực thể bảng: chính và đảm bảo toàn ( Column_name datatype PRIMARY KEY CREATE column_list] ) [, TABLE <table_name> (<column_name> <datatype> [, column_list] CONSTRAINT constraint_name PRIMARY KEY) Ví dụ: CREATE TABLE Person.ContactPhone ( Person_ID int PRIMARY KEY, MobileNumber bigint, ServiceProvider varchar(30), Ví dụ: LandlineNumber bigint) INSERT INTO Person.ContactPhone VALUES (101,983345674,’Hutch’, NULL) GO INSERT INTO Person.ContactPhone VALUES(101,989010002,’Airtel’, NULL) GO RDBMS and Data Management/Session 11/21 of 40
  • 22. UNIQUE - Khóa duy nhất  Ràng buộc khóa duy nhất được sử dụng để bảo đảm rằng chỉ các giá trị duy nhất được nhập vào trong cột hoặc một tập hợp các cột. Nó cho phép nhà phát triển Cúchắc chắn rằng không có các giá trị trùng lặp được nhập pháp: vào CREATE TABLE <table_name> ([column_list, ] <column_name> <data_type> UNIQUE [,column_list]) Khóa chính là hoàn toàn duy nhất Ví dụ:  Ràng buộc khóa duy nhất đảm bảo ràng buộc thực thể CREATE vì khi một ràng buộc được áp dụng,int PRIMARY hai bởi TABLE Person.ContactPhone (Person_ID không có KEY, MobileNumber bigint UNIQUE,ServiceProvider với cột đó hàng trong bảng có thể có cùng một giá trị đối varchar(30),LandlineNumber bigint UNIQUE)  Ràng buộc UNIQUE cho phép null Ví dụ: INSERT INTO Person.ContactPhone values (101, 983345674, ’Hutch’, NULL) RDBMS and Data Management/Session 11/22 of 40
  • 23. FOREIGN KEY – Khóa ngoại 1- 2  Một khóa ngoại trong một bảng là một cột, nó chỉ đến một khóa chính trong một bảng khác  Ràng buộc khóa ngoại được sử dụng để đảm bảo toàn vẹn tham chiếu Cú pháp: CREATE TABLE <table_name1>([ column_list,] <column_name> <datatype> FOREIGN KEY REFERENCES <table_name2> (pk_column_name> [, column_list]) RDBMS and Data Management/Session 11/23 of 40
  • 24. FOREIGN KEY – Khóa ngoại 2- 2 Ví dụ: Kết qua: CREATE TABLE Person.PhoneExpenses (Expense_ID int PRIMARY KEY, MobileNumber bigint FOREIGN KEY REFERENCES Person.ContactPhone (MobileNumber), Amount bigint) Ví dụ: INSERT INTO Person.PhoneExpenses values(101, 993026654, 500) SELECT * FROM Person.PhoneExpenses RDBMS and Data Management/Session 11/24 of 40
  • 25. Ràng buộc kiểm tra  Ràng buộc kiểm tra giới hạn giá trị có thể được nhập vào trong cột  Ràng buộc kiểm tra đảm bảo toàn vẹn dữ liệu Ví dụ: CREATE TABLE Person.PhoneExpenses ( Expense_ID int PRIMARY KEY, MobileNumber bigint FOREIGN KEY REFERENCES Person.ContactPhone (MobileNumber), Amount bigint CHECK (Amount >0)) RDBMS and Data Management/Session 11/25 of 40
  • 26. Ràng buộc NOT NULL Ràng buộc NOT NULL bảo đảm rằng không được phép nhập giá trị null vào cột này Ràng buộc NOT NULL được sử dụng để bảo đảm toàn vẹn miền, tương tự như ràng buộc kiểm tra RDBMS and Data Management/Session 11/26 of 40
  • 27. Thêm cột vào một bảng Cú pháp: ALTER TABLE <table_name> ADD <column_name1> <data_type1>[,<column_name2> <data_type2>, ...] Ví dụ: ALTER TABLE Person.ContactPhone ADD RentalCharges money RDBMS and Data Management/Session 11/27 of 40
  • 28. Chỉnh sửa cột trong bảng Cú pháp: ALTER TABLE <table_name> ALTER COLUMN <column_name1> <data_type1> [,<column_name2> <data_type2> ...] Ví dụ: ALTER TABLE Person.ContactPhone ALTER COLUMN ServiceProvider varchar(45) RDBMS and Data Management/Session 11/28 of 40
  • 29. Xoá cột trong bảng Cú pháp: ALTER TABLE <table_name> DROP COLUMN <column_name1> [,<column_name2> ...] Ví dụ: ALTER TABLE Person.ContactPhone DROP COLUMN ServiceProvider RDBMS and Data Management/Session 11/29 of 40
  • 30. Thêm và xoá các ràng buộc Cú pháp: ALTER TABLE <table_name> ADD CONSTRAINT <constraint_name> <constraint_type> <column_name1> [<condition>] Ví dụ: ALTER TABLE Person.ContactPhone ADD CONSTRAINT CHK_RC CHECK (RentalCharges >0) Cú pháp: ALTER TABLE <table_name> DROP CONSTRAINT <constraint> Ví dụ: ALTER TABLE Person.ContactPhone DROP CONSTRAINT CHK_RC RDBMS and Data Management/Session 11/30 of 40
  • 31. Làm việc với XML Thuận lợi khi làm việc với cơ sở dữ liệu XML tự nhiên trong SQL Server là:  Dễ dàng quản lý và tìm kiếm dữ liệu: tất cả các dữ liệu XML được lưu trữ cục bộ ở một nơi, vì thế dễ dàng tìm kiếm và quản lý  Sự thực thi tốt hơn: Các truy vấn từ một cơ sở dữ liệu XML được thi hành tốt sẽ nhanh hơn các truy vấn bằng tài liệu đã lưu trữ trong hệ thống tập tin. Ngoài ra, về bản chất, cơ sở dữ liệu sẽ phân tách mỗi tài liệu khi lưu trữ chúng  Dễ dàng xử lý dữ liệu: các tài liệu lớn có thể được xử lý dễ dàng RDBMS and Data Management/Session 11/31 of 40
  • 32. Tạo bảng với cột XML Cú pháp: Kết quả: CREATE TABLE <table_name> ( [ column_list,] <column_name> xml [, column_list]) Ví dụ: CREATE TABLE Person.PhoneBilling (Bill_ID int PRIMARY KEY, MobileNumber bigint UNIQUE, CallDetails xml) Ví dụ: INSERT INTO Person.PhoneBilling VALUES (100,9833276605,‘<Info><Call>Local</Call><Time>45 minutes </Time><Charges>200</Charges></Info>’) SELECT CallDetails FROM Person.PhoneBilling RDBMS and Data Management/Session 11/32 of 40
  • 33. XML định kiểu và không định kiểu Có hai cách lưu trữ dữ liệu XML trong các cột kiểu dữ liệu XML và các biến:  Được phân loại-Typed  Không phân loại -Untyped Một thể hiện XML mà nó được kết hợp với một lược đồ được gọi là thể hiện XML được phân loại (Typed XML). Ở đây, dữ liệu có thể được xác định tính hợp lệ trong khi nó được lưu trữ vào trong cột dữ liệu XML Một thể hiện XML không được phân loại (Untyped XML) không có sự kết hợp với một lược đồ XML. SQL Server không thực hiện việc kiểm tra tính hợp lệ của dữ liệu nhập vào trong cột RDBMS and Data Management/Session 11/33 of 40
  • 34. Giản đồ XML CREATE XML SCHEMA COLLECTION CricketSchemaCollection Ví dụ: AS N’<xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”> <xsd:attribute name=”score” type=”xsd:string” /> <xsd:element name=”MatchDetails”> </xsd:restriction> <xsd:complexType> </xsd:complexContent> <xsd:complexContent> </xsd:complexType> <xsd:restriction base=”xsd:anyType”> </xsd:element> <xsd:sequence> </xsd:sequence> <xsd:element name=”Team” </xsd:restriction> minOccurs=”0” maxOccurs=”unbounded”> </xsd:complexContent> </xsd:complexType><xsd:complexType> </xsd:element> <xsd:complexContent> </xsd:schema>’ <xsd:restriction base=”xsd:anyType”> <xsd:sequence /> <xsd:attribute name=”country” type=”xsd:string” /> RDBMS and Data Management/Session 11/34 of 40
  • 35. Cách sử dụng XML đã định kiểu Ví dụ: CREATE TABLE CricketTeam (TeamID int IDENTITY NOT NULL, TeamInfo xml(CricketSchemaCollection) ) Ví dụ: INSERT INTO CricketTeam (TeamInfo) VALUES (‘<MatchDetails><Team country=”Australia” score=”355”></Team><Team country=”Zimbabwe” score=”200”></Team><Team country=”England” score=”475”></Team></MatchDetails>’) Ví dụ: DECLARE @team xml(CricketSchemaCollection) SET @team = ‘<MatchDetails><Team country=”Australia”></Team></MatchDetails>’ SELECT @team RDBMS and Data Management/Session 11/35 of 40
  • 36. XQuery 1-4 XQuery:  Cho phép truy vấn và khôi phục dữ liệu XML bằng cách sử dụng một ngôn ngữ có tên là XQuery  Kết hợp các cú pháp quen thuộc với người lập trình, người làm việc việc với cơ sở dữ liệu quan hệ, và ngôn ngữ Xpath, để chọn các đoạn hoặc các tập hợp riêng lẻ của các phần tử từ tài liệu XML  Để truy vấn một thể hiện XML được lưư trong một biến hoặc cột kiểu xml, các phương thức kiểu xml được sử dụng RDBMS and Data Management/Session 11/36 of 40
  • 37. XQuery 2-4 Một vài phương thức thuộc kiểu xml được sử dụng với XQuery là: Ví dụ: exist(): USE AdventureWorks SELECT TeamID FROM CricketTeam để xác định nếu một hoặc Phương thức được sử dụng WHERE nhiều nút được chỉ định xuất hiện trong tài 1 TeamInfo.exist(‘(/MatchDetails/Team)’) = liệu XML Ví dụ: query(): Phương thức query() có thể được sử dụng để truy lục hoặc USE AdventureWorks của tài liệu XML hoặc các đoạn có chọn toàn bộ nội dung SELECT TeamInfo.query(‘/MatchDetails/Team’) AS Info FROM CricketTeam tài liệu lựa trong RDBMS and Data Management/Session 11/37 of 40
  • 38. XQuery 3-4 Kết quả: RDBMS and Data Management/Session 11/38 of 40
  • 39. XQuery 4-4 Phương thức value() có thể được rút ra các giá trị vô hướng từ một kiểu dữ liệu Ví dụ: USE AdventureWorks SELECT TeamInfo.value(‘(/MatchDetails/Team/@score)[1]’, ‘varchar(20)’) AS Score FROM CricketTeam where TeamID=23 Kết quả: RDBMS and Data Management/Session 11/39 of 40
  • 40. Tóm tắt  Kiểu dữ liệu là một thuộc tính được sử dụng để chỉ định loại dữ liệu của một đối tượng và kích thước lưu trữ của nó  SQL Server 2005 hỗ trợ 3 kiểu dữ liệu: kiểu dữ liệu hệ thống, kiểu dữ liệu người dùng và kiểu dữ liệu được định nghĩa trong ngôn ngữ lập trình  Đặc tính cho phép NULL của một cột xác định rằng các hàng trong bảng có thể chứa giá trị null đối với cột đó. SQL Server sử dụng các từ khóa NULL và NOT NULL để mô tả về đặc tính này  Từ khóa DEFAULT được sử dụng để chỉ định một giá trị mặc định cho một cột khi giá trị của cột đó chưa biết. Trong khi đó, thuộc tính IDENTITY được sử dụng để tạo ra một cột nhận dạng, nó chứa các giá trị tuần tự được tự động phát sinh, và để nhận dạng tính duy nhất của mỗi hàng trong bảng.  Một ràng buộc là một luật mà nó được gán cho một hoặc tập hợp các cột trong bảng để đảm bảo tính toàn vẹn  Kiểu dữ liệu xml được sử dụng để lưu trữ tài liệu và các phân đoạn XML trong cơ sở dữ liệu SQL Server  XQuery là ngôn ngữ được sử dụng để truy vấn dữ liệu XML được lưu trữ trong cơ sở dữ liệu XML RDBMS and Data Management/Session 11/40 of 40