主键约束(primary key)

主键约束能够唯一确定一张表中的记录,也就是可以通过某个字段添加约束,就可以是的该字段不重复,且不为空

create table user (id int primary key,name char,phone int(11));

联合主键(只要联合主键的值加起来不完全相同就可以添加成功)

create table user3 (id int,name char(3),phone char(11),primary key (id,name));

联合主键的表中,只要插入的数据的主键的值加起来不完全相同,就可以添加成功

自增约束(primarykey和auto_increment联合使用)

当创建表时没有添加主键约束怎么办?

可以使用alter语句来修改表的结构

语法:alter table 表名 add primary key (字段名);

同样可以应用alter语句来删除主键

语法:alter table 表名 drop primary key ;

通过修改字段的方式添加主键约束(modify)

语法:alter table 表名 modify 字段名 字段类型 primary;

外键约束(foreign key.......references)

涉及到两个表:父表(主表)、子表(副表)

特性:主表中没有的数据,在副表中不可以直接添加-可先在主表中添加相应记录,再往副表中添加记录

   主表中的记录被副表引用,是不可以直接删除主表中的记录的-要先删除副表中的相应记录,再删除主表中的这条记录

唯一约束(unique)

约束创建的字段的值不可以重复

语法1:create table 表名 (字段1  字段数据类型,字段2  字段数据类型  unique);

语法2:create table 表名(字段1,字段数据类型,字段2 字段2数据类型,unique(字段1));

 同时给多个字段添加唯一约束

插入的数据这些键组合在一起不重复就可以

语法:create table 表名(字段1,字段数据类型,字段2 字段2数据类型,unique(字段1,字段2));

  删除唯一约束

语法:alter table 表名 drop index 字段名;

通过modify添加唯一约束

语法:alter table 表名 modify 字段名  字段数据类型  nique;

  

非空约束(not null)

修饰的字段不能为空(NULL)

语法1:create table 表名 (字段1  字段数据类型,字段2  字段数据类型  not null);

默认约束

就是当我们插入记录时,如果没有传值,就会使用默认值

mysql的建表约束的更多相关文章

  1. mysql建表约束

    --mysql建表约束--主键约束它能够唯一确定一张表中的内容,也就是我们通过某个字段添加约束,就可以是的该字段唯一(不重复)且不为空.create table  user(    id int pr ...

  2. mysql workbench 建表时 PK,NN,UQ,BIN,UN,ZF,AI解释

    mysql workbench 建表时 - PK: primary key (column is part of a pk) 主键 - NN: not null (column is nullable ...

  3. mysql怎样建表及mysql优化

    1.符合数据库三范式 2.字段选择合适的数据类型 3.注意表之间的联系,一对多,多对多,一对一 4.拆分表,把不常用的字段单独成表. 5.建立索引,哪些字段建立索引?建立索引的原则?最左前缀原则,wh ...

  4. MySQL常见建表选项以约束

    一.CREATE TABLE 选项 1.在定义列的时候,指定列选项 1)DEFAULT <literal>:定义列的默认值 当插入一个新行到表中并且没有给该列明确赋值时,如果定义了列的默认 ...

  5. MySQL 分区建索引

    200 ? "200px" : this.width)!important;} --> 介绍 mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张 ...

  6. mysql数据库建表的基本规范

    1.创建表的时候必须指定主键,并且主键建立后最好不要再有数据修改的需求 mysql从5.5版本开始默认使用innodb引擎,innodb表是聚簇索引表,也就是说数据通过主键聚集( 主键下存储该行的数据 ...

  7. MySQL常见建表选项及约束

    阅读目录---MySQL常见的建表选项及约束: 1.create table选项 1.指定列选项:default.comment 2.指定表选项:engine.auto_increment.comme ...

  8. mysql分区表之三:MySQL分区建索引[转]

    介绍 mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张独立的表,从“information_schema.INNODB_SYS_TABLES”系统表可以看到每个分区都存 ...

  9. Mysql查看建表语句以及修改引擎

    更多内容推荐微信公众号,欢迎关注: 1 查看系统支持的存储引擎 show engines; 2 查看表使用的存储引擎 两种方法: a.show table status from db_name wh ...

随机推荐

  1. Flume详解

    Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚合和移动大量日志数据.它具有基于流数据流的简单灵活的架构.它具有可靠的可靠性机制和许多故障转移和恢复机制,具有强大的容错性.它使用简单的可扩 ...

  2. delphi 特殊窗体

    delphi 窗体阴影 放窗体创建事件里面 SetClassLong(Handle, GCL_STYLE, GetClassLong(Handle, GCL_STYLE) or CS_DROPSHAD ...

  3. linux Netcat命令--网络工具瑞士军刀

    https://www.cnblogs.com/ikaka/p/5197316.html

  4. hexo next修改代码区主题,修改字体样式,大小

    文章目录 广告 修改代码区主题 站点_config.yml 主题_config.yml 修改字体样式,大小 ps 我自己的方式 广告 本人博客地址:https://mmmmmm.me 源码:https ...

  5. jsp-解决自写Servlet老是报错404

    写好servlet进行测试老是报404解决方案. 1.确保web.xml配置好 2.Bulid Path项目,在Libraries界面Add External JARs,在tomcat的lib目录下面 ...

  6. jsp-提交表单乱码解决

    jsp提交表单有两种方式,一种是get,一种是post,对于两种方式都可能出现乱码,以下给出两种乱码方式的解决方案. 1.post提交解决乱码 //设置解码方式,post提交解决乱码 比较简单 req ...

  7. day 91 Django学习之django自带的contentType表

      Django学习之django自带的contentType表   通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net ...

  8. css中图片有缩放和转动效果

    现在html中利用div来包裹住一张图片. <div class="xuanzhuan"> <img src="images/top.png" ...

  9. Dubbo 3.0 预览版解读,6到飞起~

    , false).start(); ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new St ...

  10. 大道浮屠诀---cwRsync同步工具的使用

    目的: 在日常生活中,我们有时候会遇到这样类似的问题 ---需要把一台服务器上的某个重要的文件进行备份(拷贝另外的服务器上) ---需要同步系统上的配置文件到其他系统 利用此cwRsync软件可以解决 ...