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 ...
随机推荐
- thinkphp 数据库缓存
默认的数据库驱动位于Think\Db\Driver命名空间下面,驱动类必须继承Think\Db类,每个数据库驱动必须要实现的接口方法包括(具体参数可以参考现有的数据库驱动类库): 驱动方法 方法说明 ...
- 关于移动端使用swiper做图片文字轮播的思考
最近做移动端网页的时候,需要在首页添加一个公告的模块,用来轮播公告消息标题并且能链接到相应的详情页面,最开始用的是swiper插件,在安卓上测试完全没有问题,但是在苹果机上就没有那么灵敏了,来回切换首 ...
- IOI 2005 River (洛谷 3354)
题目描述 几乎整个Byteland王国都被森林和河流所覆盖.小点的河汇聚到一起,形成了稍大点的河.就这样,所有的河水都汇聚并流进了一条大河,最后这条大河流进了大海.这条大河的入海口处有一个村庄--名叫 ...
- NX二次开发-UFUN替换组件UF_ASSEM_substitute_component
NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_assem.h> #include <u ...
- NX二次开发-NXOPEN自动切换到工程图模块
UFUN的API里是没有切换到工程图的函数的,NXOPEN里是有方法可以用的.不过应该是不支持NX9以下的版本. NX9的不能录制出来,在UI类里有方法 NX9+VS2012 #include < ...
- csp-s模拟测试92
csp-s模拟测试92 关于$T1$:最短路这一定建边最短路. 关于$T2$:傻逼$Dp$这一定线段树优化$Dp$. 关于$T3$:最小生成树+树P+换跟一定是这样. 深入(?)思考$T1$:我是傻逼 ...
- (转)基于SAML的单点登录介绍
转:http://www.cnblogs.com/zsuxiong/archive/2011/11/19/2255497.html 一.背景知识: SAML即安全断言标记语言,英文全称是Securit ...
- 【2018ACM/ICPC网络赛】徐州赛区
呃.自闭了自闭了.我才不会说我写D写到昏天黑地呢. I Characters with Hash 题目链接:https://nanti.jisuanke.com/t/31461 题意:给你一个字符串 ...
- scrapy 多个爬虫运行
from scrapy import cmdline import datetime import time import os import scrapy from scrapy.crawler i ...
- 归档和解档配合NSFile存储数据
NSString *Name = @"yc"; //第一个常量NSDocumentDirectory表示正在查找沙盒Document目录的路径(如果参数为NSCachesDirec ...