zoukankan      html  css  js  c++  java
  • 2

    上一节讲的是直接在创建表的时候添加条件约束,但是有时候是在表格创建完毕之后,再添加条件约束的,那么这个又该如何实现?

    其实,跟上一节所写的SQL代码,很多是相同的,只是使用了修改表的ALTER关键字及添加约束的ADD CONSTRAINT关键字而已,其他大同小异。

    代码如下:

    USE PersonInfo  --使用PersonInfo数据库
    GO
    
    IF EXISTS (SELECT * FROM sys.tables WHERE [name] = 'Employee ')  --如果存在Employee这张表
    DROP TABLE Employee  --则删除
    GO
    
    IF EXISTS(SELECT * FROM sys.tables WHERE [name] = 'Person')  --如果存在Person这张表
    DROP TABLE Person --则删除
    GO
    
    CREATE TABLE Person --创建Person(人物)表
    (
      --索引
      PersonID int IDENTITY(1,1) NOT NULL,-- 创建一个整型、自增为1、标识种子为1、不允许为空的列PersonID
      --名字
      Name nvarchar(20) NOT NULL, --创建一个Unicode非固定长度(最多存储20个Unicode字符)的列Name
      --年龄
      Age int NOT NULL ,--创建一个整型的列Age
      --性别
      Gender bit NOT NULL, --创建一个类型为bit的列Gender
      --身份信息
      [Identity] nchar(18) NOT NULL--创建一个非Unicode非固定长度(最多存储18个非Unicode字符)的列Identity
    )
    
    ALTER TABLE Person
    ADD  CONSTRAINT PK_PersonID PRIMARY KEY(PersonID), --为PersonID创建主键约束
         CONSTRAINT CK_Age CHECK(Age >=18 AND Age <=55),--为Age创建检查约束
         CONSTRAINT DF_Gender DEFAULT(1) FOR Gender,--为Gender创建默认约束
         CONSTRAINT CK_Identity CHECK (LEN([Identity])=18),--为Identity创建检查约束
         CONSTRAINT UQ_Identity UNIQUE([Identity]) --为Identity创建唯一约束
    GO         
    
    CREATE TABLE Employee --创建Employee(雇员)表
    (
        --索引
        EmployeeID int IDENTITY(1,1001) NOT NULL, -- 创建一个整型、自增为1、标识种子为1001、不允许为空的列EmployeeID
        --人物索引 
        PersonID int NOT NULL ,
        --职位 
        Post nvarchar(20) NOT NULL,--创建一个Unicode非固定长度(最多存储20个Unicode字符)的列Post
        --入职时间 
        EntryTime datetime --创建一个类型为datetime的列EntryTime
    )
    GO
    
    ALTER TABLE Employee
    ADD CONSTRAINT PK_EmployeeID PRIMARY KEY(EmployeeID),--为EmlpoyeeID创建主键约束
        CONSTRAINT FK_PersonID FOREIGN KEY(PersonID) REFERENCES Person(PersonID),--为PersonID创建外键约束
        CONSTRAINT DF_EntryTime DEFAULT getdate() FOR EntryTime--为EmlpoyeeID创建默认约束
    GO

    结果:

  • 相关阅读:
    sublime开启vim模式
    git命令行界面
    搬进Github
    【POJ 2886】Who Gets the Most Candies?
    【UVA 1451】Average
    【CodeForces 625A】Guest From the Past
    【ZOJ 3480】Duck Typing
    【POJ 3320】Jessica's Reading Problemc(尺取法)
    【HDU 1445】Ride to School
    【HDU 5578】Friendship of Frog
  • 原文地址:https://www.cnblogs.com/cncc/p/5585732.html
Copyright © 2011-2022 走看看