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 ... 
随机推荐
- 凑出和相等的k组数,玄学结论——hdu6616
			[1,n]n个数分成k组,每组n/k个,问k组数和相等的解决方案 首先(1+n)*n/2判定一下是否可以被k整除 n/k为偶数时显然成立 n/k为奇数时每组数前三个很难配,我想了一种玄学的结论,也证明 ... 
- HAProxy服务器 、Keepalived热备 、Keepalived+LVS
			配置HAProxy负载平衡集群 1.1 问题 准备三台Linux服务器,两台做Web服务器,一台安装HAProxy,实现如下功能: 客户端访问HAProxy,HAProxy分发请求到后端Real Se ... 
- fasttext的基本使用 java 、python为例子
			fasttext的基本使用 java .python为例子 今天早上在地铁上看到知乎上看到有人使用fasttext进行文本分类,到公司试了下情况在GitHub上找了下,最开始是c++版本的实现,不过有 ... 
- [转] 多个文件目录下Makefile的写法
			1.前言 目前从事于linux下程序开发,涉及到多个文件,多个目录,这时候编译文件的任务量比较大,需要写Makefile.关于Makefile的详细内容可以参考网上流传非常广泛的<跟我一起写Ma ... 
- CVE-2017-3248简单复现
			我是这样操作的 目标跟windows在一个段,linux是另一个段的,我的虚拟机 windows主机上 `java -cp ysoserial.jar ysoserial.exploit.JRMPLi ... 
- Java常用文件下载与查找的URL
			Java JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html Tomcat: http://tomcat.a ... 
- EXCEL表格链接SQLSEVER数据库
			Sub 数据库连接() Set Cnn = CreateObject("ADODB.Connection") Set rs = CreateObject(" ... 
- SQL语句:一张表和另一张表的多重匹配查询
			1.两个表结构如下图 2.如何查询成如下图所示 3.SQL语句是: select id,name=stuff(( select ','+t2.name from a t1 join b t2 on c ... 
- Let's Encryt免费SSL证书申请[我司方案]
			Let's Encrypt颁发的证书是目前生产的大多数浏览器都信任的,您只需下载并运行Let's Encrypt客户端来生成一个证书即可. 在颁发证书之前,需要验证您的域名的所有权.首先,在您的主机上 ... 
- 校园商铺-4店铺注册功能模块-5店铺注册之Service层的实现
			1. 创建接口 ShopService.java package com.csj2018.o2o.service; import java.io.File; import com.csj2018.o2 ... 
