溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL?Server數據庫如何創建表及約束條件

發布時間:2022-11-15 09:17:37 來源:億速云 閱讀:183 作者:iii 欄目:開發技術

這篇文章主要介紹“SQL Server數據庫如何創建表及約束條件”,在日常操作中,相信很多人在SQL Server數據庫如何創建表及約束條件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”SQL Server數據庫如何創建表及約束條件”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

    1.創建數據庫:

    CREATE DATABASE my_db;

    2.創建表:

    CREATE TABLE Persons
    (
    Id_P int,
    LastName varchar(255),
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
    )

    數據類型:

    int   smallint  tinyint   整數 , 

    char(size)     容納固定長度的字符串,

    varchar(size)      容納可變長度的字符串,

    date(yyyymmddd)     容納日期。

    3.約束:

     NOT NULL                  約束強制列不接受 NULL 值。

    UNIQUE                      約束唯一標識數據庫表中的每條記錄。

    PRIMARY KEY              PRIMARY KEY 約束唯一標識數據庫表中的每條記錄。

    FOREIGN KEY             一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。

    CHECK                       約束用于限制列中的值的范圍。

    DEFAULT                    約束用于向列中插入默認值。

    3.1.Not  Null

    CREATE TABLE Persons
    (
    Id_P int 
    NOT NULL
    ,
    LastName varchar(255) 
    NOT NULL
    ,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
    )

    3.2.UNIQUE

    CREATE TABLE Persons
    (
    Id_P int NOT NULL 
    UNIQUE
    ,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
    )

    當表已被創建時,如需在 "Id_P" 列創建 UNIQUE 約束:

    ALTER TABLE Persons
    ADD UNIQUE (Id_P)

    如需命名UNIQUE 約束:

    ALTER TABLE Persons
    ADD CONSTRAINT uc_PersonID UNIQUE (Id_P)

    如需撤銷 UNIQUE 約束,請使用下面的 SQL:

    ALTER TABLE Persons
    DROP CONSTRAINT uc_PersonID

    3.3.PRIMARY KEY

    CREATE TABLE Persons
    (
    Id_P int NOT NULL 
    PRIMARY KEY
    ,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
    )

    如果在表已存在的情況下為 "Id_P" 列創建 PRIMARY KEY 約束:

    ALTER TABLE Persons
    ADD PRIMARY KEY (Id_P)

    如需命名PRIMARY KEY 約束:

    ALTER TABLE Persons
    ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P)

    如需撤銷 PRIMARY KEY 約束:

    ALTER TABLE Persons
    DROP CONSTRAINT pk_PersonID

    3.4.FOREIGN KEY

    "Persons" 表:

    SQL?Server數據庫如何創建表及約束條件

    "Orders" 表:

    SQL?Server數據庫如何創建表及約束條件

    請注意,"Orders" 中的 "Id_P" 列指向 "Persons" 表中的 "Id_P" 列。

    "Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY。

    "Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY。

    FOREIGN KEY 約束用于預防破壞表之間連接的動作。

    FOREIGN KEY 約束也能防止非法數據插入外鍵列,因為它必須是它指向的那個表中的值之一。

    CREATE TABLE Orders
    (
    Id_O int NOT NULL PRIMARY KEY,
    OrderNo int NOT NULL,
    Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
    
    )

    如果在 "Orders" 表已存在的情況下為 "Id_P" 列創建 FOREIGN KEY 約束:

    ALTER TABLE Orders
    ADD 
    CONSTRAINT fk_PerOrders
     
    FOREIGN KEY (Id_P)
    REFERENCES Persons(Id_P)

    如需撤銷 FOREIGN KEY 約束:

    ALTER TABLE Orders
    DROP CONSTRAINT fk_PerOrders

    3.5.check

    下面的 SQL 在 "Persons" 表創建時為 "Id_P" 列創建 CHECK 約束。CHECK 約束規定 "Id_P" 列必須只包含大

    于 0 的整數。

    CREATE TABLE Persons
    (
    Id_P int NOT NULL 
    CHECK (Id_P>0)
    ,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
    )

    如果在表已存在的情況下為列創建 CHECK 約束以及為多個列定義 CHECK 約束:

    ALTER TABLE Persons
    
    ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')

    如需撤銷 CHECK 約束:

    ALTER TABLE Persons
    
    DROP CONSTRAINT chk_Person

    3.6.DEFAULT

    下面的 SQL 在 "Persons" 表創建時為 "City" 列創建 DEFAULT 約束:

    CREATE TABLE Persons
    (
    Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255) DEFAULT 'Sandnes'
    )

    如果在表已存在的情況下為 "City" 列創建 DEFAULT 約束:

    ALTER TABLE Persons
    ALTER COLUMN City SET DEFAULT 'SANDNES'

    撤銷 DEFAULT 約束:

    ALTER TABLE Persons
    ALTER COLUMN City DROP DEFAULT

    這些就是創建表的一些約束及示例。

    到此,關于“SQL Server數據庫如何創建表及約束條件”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女