zoukankan      html  css  js  c++  java
  • SQL中主键的相关操作

    PRIMARY KEY 关键字可以用来设置主键约束,PRIMARY KEY 关键字可以指定一列或者多列中的数据值具有唯一性,不存在相同的数据值。

    在列上创建主键约束的语法格式如下:

    column_name data_type PRIMARY KEY
    

    定义数据表tb_emp2,其主键为id,SQL语句如下:  

    CREATE  TABLE  tb_emp2
    (
        id   INT PRIMARY KEY,  --定义id 为tb_emp2中的主键
        name  VARCHAR(25) NOT NULL,
        deptId  CHAR(20) NOT NULL,
        salary  FLOAT NOT NULL      
    );
    

    给主键加约束名称,SQL语句如下:

    CREAT  TABLE  tb_emp3
    (
        id     INT NOT  NULL,
        name  VARCHAR(25)  NOT NULL,
        deptId  CHAR(20) NOT NULL,
        salary FLOAT NOT NULL
        CONSTRAINT 员工编号  --给tb_emp3表中的id添加主键约束名称为:员工编号
        PRIMARY KEY(id)        
    );
    

    在创建Table中,忘记给Table添加主键。后续添加主键的方法如下:

    ALTER  TABLE  able_name 
    ADD
     COUSTRAINT  约束名称
    PRIMARY KEY [CLUSTERED | NONCLUSTERED] [列名] [, ...n]
    

    实例:定义tb_emp4,创建完成后忘了给Table添加主键,现将id字段添加为主键

    CREATE  TABLE  tb_emp4
    (
        id  INT  NOT  NULL,
        name  VARCHAR(15) NOT NULL,
        deptId  CHAR(20) NOT NULL,
        salary  FLOAT  NOT NULL
    );
    执行下面这段SQL语句,就能给tb_emp4添加一个主键
    
    GO
    ALTER tb_emp4
    ADD
    CONSTRAINT  员工编号
    PRIMARY  KEY(id)
    

    定义多字段联合主键(意思就是在一个Table中定义两个字段为主键) PRIMARY KEY

    实例:在tb_emp5表中,假设没有主键id,为了确定一个员工,可以将name,deptId联合起来作为主键。SQL语句如下:

    CREATE  TABLE  tb_emp5
    (
         name VARCHAR(15),
         deptId   INT,
        salary  FLOAT,
          CONSTRAINT  姓名部门约束
          PRIMARY KEY(name,deptId)    --将name跟deptId两个字段同时定义为主键
    );
    

    使用主键约束需注意的事项:

    1、一个表只能包含一个PRIMARY KEY 约束

    2、由PRIMARY KEY 约束生成的索引不会使表中的非聚集索引超过249个,聚集索引超过1个。

    3、如果没有为PRIMARY KEY约束指定 CLUSTERED 或  NONCLUSTERED,并且没有为UNIQUE约束指定聚集索引,则将对该PRIMARY KEY约束使用 CLUSTERED。

    4、在PRIMARY KEY约束中定义的所有列都必须定义为 not null 定义的约束也一样 不能为 not null  

    删除主键的方法使用DROP语句将其删除: 

    ALTER   TABLE  table_name
    DROP
    CONSTRAINT  约束名
    

    删除tb_emp5表中定义的联合主键,SQL语句如下:

    ALTER  TABLE  tb_emp5
    DROP
    CONSTRAINT  姓名部门约束
    

     注:执行完删除主键,可以在SSMS对象资源管理器中,查看tb_emp5表中的主键信息。

     

      

     

       

  • 相关阅读:
    BFS(广搜训练题目)
    练习赛1(补题)
    练习赛1(AC题)
    codeup 1743: 算法3-4:表达式求值
    数学相关(更新ing)
    c语言常用函数(更新ing)
    大牛的博客(学习不止,更新不止)
    51nod 1005 大数加法
    js1-----预览js内容
    css10---转载---定位,浮动
  • 原文地址:https://www.cnblogs.com/leiminghui/p/13067898.html
Copyright © 2011-2022 走看看