zoukankan      html  css  js  c++  java
  • sql约束

    SQL 约束:
    NOT NULL约束 - 确保列不能有NULL值
    默认值约束 default - 提供未指定时为列的值时的默认值
    唯一值约束 unique - 确保了在一列中的所有的值是唯一的
    主键 primary key - 唯一标识数据库表中的每一行/记录
    外键 foreign key - 唯一标识任何其他数据库表中的行/记录
    检查约束 check - CHECK约束可以确保列中的所有值满足一定的条件
    索引 index - 使用非常快速地创建和检索数据库中的数据。


    sql唯一值约束
    添加约束格式:alter table add constraint 约束名称 约束类型(unique,primary key 等)(column ,可以多个)

    表已经存在,修改id为唯一约束
    alter table manager modify id int(10) not null unique;
    或者:
    alter table manager add constraint cmm unique(id,name);

    删除:
    alter table manager drop contraint cmm;
    如果上面sql删除失败,使用以下(我自己操作是把id也设为唯一约束了,表结构里cmm变成了索引,就以删除索引方式删除掉,只有name设置为唯一约束时,以上sql执行ok;网上说,mysql应该使用以下的):
    alter table manager drop index cmm;


    主键约束
    新建:create table manager ( id int(10),name(20),primary key(id,name));
    修改:ALTER TABLE manager add PRIMARY KEY(id); ALTER TABLE manager add CONSTRAINT mana PRIMARY KEY (id,name);
    删除:alter table manager drop primary key;
    主键设计:1.不允许null;2.不允许重复;3.不能是其他表的外键;4.表包含应用于自身的 PRIMARY XML 索引


    外键约束
    CREATE TABLE manager (id INT(10),NAME varchar(20), sex INT(10),address VARCHAR(20) );
    CREATE TABLE staff ( id INT(20),NAME varchar(20),sex INT(10), manaid INT(10) REFERENCES manager(id) )
    修改:
    ALTER TABLE staff ADD FOREIGN KEY(manaid) REFERENCES manager(id);
    新建或者修改失败原因:两个字段的类型长度约束不一致等


    检查约束
    CREATE TABLE staff1 (id INT(10),sex INT (2) NOT NULL ,CHECK (sex<=2))
    ALTER TABLE staff ADD CHECK (sex<=1);
    alter table staff drop check;


    索引
    ALTER TABLE manager ADD INDEX INX_SCH (sex) USING BTREE;
    备注:建议在需要搜索的字段加索引;更新有索引的表会比较慢,索引本身也需更新

  • 相关阅读:
    让xamarin的Entry绑定时,支持Nullable类型
    xamarin.forms 绑定页面里指定元素的某个属性值
    俄文环境下,字符串转数字失败
    使用devstack安装openstack
    在linux中访问macos 下的分区。
    git 多用户多仓库配置
    Macos上 ProxyChains 的坑, 需要关闭 sip
    MacOS 的预览 Preview 打开pdf 容易卡死 解决方案
    一客户端使用多个密钥对登录多个主机的解决方案.
    MacOS 10.13.6 下装xcode 流程
  • 原文地址:https://www.cnblogs.com/vanoraxnc/p/8919122.html
Copyright © 2011-2022 走看看