mysql命令(四)--约束

来源:互联网 发布:淘宝卖衣服货源 编辑:程序博客网 时间:2024/05/17 09:39
  1. 约束:
    约束是为了保证数据的完整性
    约束分为表级约束和列级约束
    约束类型包括:
    NOT NULL 非空约束
    PRIMARY KEY 主键约束
    UNIQUE KEY 唯一约束
    DEFAULT 默认约束
    FOREIGN KEY 外键约束

  2. 外键约束:
    保持数据的完整性,一致性
    实现一对一或者一对多的关系
    要求:
    父表(被参照)和子表(具有外键列)必须使用相同的存储引擎,而且禁止使用临时表
    数据表的存储引擎只能使用InnoDB
    外键列和参照列必须具有相似的数据类型,数字的长度或是否有符号位必须相同,字符串的长度则可以不同
    外键列和参照列必须创建索引,参照列没有索引,MYSQL则会自动创建,而外键列没有的话,不会自动创建
    在创建表的时候会自动为主键创建索引

         create table provinces(        id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,        pname VARCHAR(20) NOT NULL        );     create table users(        id SMALLINT unsigned  PRIMARY key auto_increment,        username varchar(10) not null,        pid smallint unsigned,        foreign key (pid) references provinces(id)        );
  3. 查看索引:
    SHOW INDEXS FROM table_name;
    SHOW INDEXS FROM table_name\G;

  4. 外键约束的参照操作:
    CASCADE:从父表删除或者更新自动删除或者更新字表中的行
    SET NULL:从父表删除或者更新行,自动设置字表中的外键列为NULL,
    如果使用该选项,必须保证字表的参照列不为NOT NULL
    RESTRICT:拒绝对父表的删除或者更新操作
    NO ACTION:标准SQL的关键字,在MYSQL中与RESTRICT相同

  5. 表级约束和列级约束
    对一个数据列建立的约束,称为列级约束
    对多个数据列建立的约束,称为表级约束
    列级约束既可以在列定义时声明,也可以在列定以后声明
    表级约束只能在列定义之后声明
    主键约束,外键约束,唯一约束可以为列级约束或表级约束,而NOT NULL和DEFAULT一般为列级约束

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 邮箱提示中转站剩余容量不足怎么办 手机邮箱密码忘记了怎么办 垃圾邮件被系统删除了怎么办 邮箱里的邮件下载不了怎么办 qq邮箱下载不了文件怎么办 苹果手机忘记邮箱密码怎么办 oppo手机安装包损坏怎么办 手机安装包损坏无法安装怎么办 手机qq安装包损坏了怎么办 安装包损坏无法安装怎么办 方舟生存进化安装包损坏怎么办 如果安装包坏了怎么办 酷狗下载音乐收费怎么办 酷狗下载歌曲收费怎么办 酷狗音乐下载歌曲要钱怎么办 酷狗音乐下载要钱怎么办 手机酷狗音乐下载收费怎么办 咪咕视频静音了怎么办 卡西欧自拍神器死机了怎么办 手机一自拍就死机怎么办 微信怎么黑屏了怎么办 宝宝睡袋买大了怎么办 社保中间断了一年怎么办 京东阅读换手机怎么办 酷狗自动续费怎么办 qq音乐下载需要钱怎么办 电脑播放音乐没声音怎么办 酷狗账号注销了怎么办 电脑酷狗音乐没有声音怎么办 百度云的视频被净网怎么办 v380用户名或密码错误怎么办 课堂派没签到的怎么办 微信加密忘记了怎么办 视频容量太大上传不了视频怎么办 小米手机打不开主页面怎么办 qq离线文件过期了怎么办 百度云有转存任务正在进行怎么办 港版索尼手机的浏览器怎么办 手机下载文件不能直接打开怎么办 上传到电脑视频打不开了怎么办 百度云播放很卡怎么办