mysql的建表约束
主键约束(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的建表约束的更多相关文章
- mysql建表约束
--mysql建表约束--主键约束它能够唯一确定一张表中的内容,也就是我们通过某个字段添加约束,就可以是的该字段唯一(不重复)且不为空.create table user( id int pr ...
- 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 ...
- mysql怎样建表及mysql优化
1.符合数据库三范式 2.字段选择合适的数据类型 3.注意表之间的联系,一对多,多对多,一对一 4.拆分表,把不常用的字段单独成表. 5.建立索引,哪些字段建立索引?建立索引的原则?最左前缀原则,wh ...
- MySQL常见建表选项以约束
一.CREATE TABLE 选项 1.在定义列的时候,指定列选项 1)DEFAULT <literal>:定义列的默认值 当插入一个新行到表中并且没有给该列明确赋值时,如果定义了列的默认 ...
- MySQL 分区建索引
200 ? "200px" : this.width)!important;} --> 介绍 mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张 ...
- mysql数据库建表的基本规范
1.创建表的时候必须指定主键,并且主键建立后最好不要再有数据修改的需求 mysql从5.5版本开始默认使用innodb引擎,innodb表是聚簇索引表,也就是说数据通过主键聚集( 主键下存储该行的数据 ...
- MySQL常见建表选项及约束
阅读目录---MySQL常见的建表选项及约束: 1.create table选项 1.指定列选项:default.comment 2.指定表选项:engine.auto_increment.comme ...
- mysql分区表之三:MySQL分区建索引[转]
介绍 mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张独立的表,从“information_schema.INNODB_SYS_TABLES”系统表可以看到每个分区都存 ...
- Mysql查看建表语句以及修改引擎
更多内容推荐微信公众号,欢迎关注: 1 查看系统支持的存储引擎 show engines; 2 查看表使用的存储引擎 两种方法: a.show table status from db_name wh ...
随机推荐
- webstorm常见快捷方法与遇到的一些问题
1.动态添加标签快捷写法 例子:生成10个文字按顺序编号的class为task-item的div 2.win10下webstorm的terminal无法输入? 打开一个 cmd.exe,标题栏 右键 ...
- Dart编程运算符
表达式是一种特殊类型的语句,它计算为一个值.每个表达都由 操作数 - 表示数据 运算符 - 定义如何处理操作数以生成值. 考虑以下表达式 2 + 3.在该表达式中,2和3是操作数,符号+(加号)是 运 ...
- 大转盘抽奖css3+js(简单书写)
今天花了一段时间简单写了下抽奖大转盘,这里写的只是自己想到的简单的写了下(也希望收获其他想法),后续,再写的话会更新. 大体思路:页面加载完成后,通过监听开始按钮的点击事件.然后会根据产生的随机数,通 ...
- Python内置的一个用于命令项选项与参数解析的模块argparse
一.argparse简单使用 我们先来看一个简单示例.主要有三个步骤: 创建 ArgumentParser() 对象 调用 add_argument() 方法添加参数 使用 parse_args() ...
- NX二次开发-UFUN创建倒圆UF_MODL_create_blend
NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建块 UF_FEATURE_SIGN S ...
- iOS开发静态库冲突——如何查看静态库(.O)中方法名
1.bug产生 应用第三方静态库之后提示冲突错误: 2.bug分析 一般会提示哪两个库冲突: CameraShowGLView.o是自己创建的类编译生成的: libLechangeSDK.a是添加的静 ...
- 2019 牛客多校第一场 F Random Point in Triangle
题目链接:https://ac.nowcoder.com/acm/contest/881/F 题目大意 给定二维平面上 3 个整数表示的点 A,B,C,在三角形 ABC 内随机选一点 P,求期望$E ...
- 20140316 window live write 插件 推荐代码高亮插件 构造函数只能用初始化成员列表方式的例子
1.window live write 插件:http://www.cnblogs.com/liuxianan/archive/2013/04/13/3018732.html 2.推荐代码高亮插件:W ...
- linux 下安装maven私服
1.下载最新nexus安装包 下载地址:https://www.sonatype.com/download-oss-sonatype 2.下载JDK7,nexus2版本支持JDK7:nexus1版本支 ...
- Docker学习のDocker中部署静态页网站
前言:部署一个静态页网站,我们需要 常见映射80端口的交互式容器 安装Nginx(或其他服务器) 安装文本编辑器vim 创建静态页面 修改Ngnix的配置文件 运行Ngnix 验证网站的防高温 一.设 ...