完整性约束条件主要有:primary key(主键), auto_increment(自增长), poreign key(外键), not null(非空), unique key(唯一), default(默认值)

一、primary key:

  设置主键的作用:作为一条数据的唯一标识,像每个人的身份证一样。

  1)一般加在无意义的字段上,如 id

  2)标主键字段的要求:值不重复且值具有唯一性。主键不能为空

  3)可以设置“单字段主键”和“多字段主键(复合主键)”,用多个字段确定唯一性

  4)primary书写时可省略

#设置单字段主键
create TABLE if not EXISTS student(
id int PRIMARY key, #设置主键
name varcahr()
)engine=innodb charset = utf8; #设置多字段段主键
create TABLE if not EXISTS timez(
id int auto_increment,
atime year,
card char(18),
primary key(id,card) #将id与card同时设置为主键,设置后的结构图如下所示:
)engine=innodb charset = utf8; desc timez; #用此3命令查看表结构

注意点:当设置复合主键时,如设置2个字段为主键,可以允许2个字段中的某一个值可以与其他值重复,但是不可以2个值均重复,插入值进行验证:

insert into timez values("",'','');
insert into timez values("1",'2000','11111111111111112'); #均可添加值成功

二、auto_increment:

  1)通过设置主键进行自增长,默认从1开始,每次+1

  2)一个表中只能有1个自增长字段,而且自增长的字段一定配合主键使用,也就是说“被标识为自增长的字段,一定是主键,但是主键不一定是自增长的”自增长只对整数类、整数列有效,对字符串无意义

#新建数据库
create TABLE if not EXISTS timea(
id int PRIMARY key auto_increment, #将id设置为主键,并且为自增长
atime year
)engine=innodb charset = utf8; #向数据库插入值,验证auto_increment
insert into timea values(1,'2000'); #向timea表中自己给定自增长列的值为1
insert into timea(atime ) values('2000'); #直接插入atime的值,id自动填充值为2
insert into timea values(null,'2000'); #用null也可以,id自动填充3
insert into timea values(default,'2000'); #用default也可以,id自动填充4 #已创建的表,修改自增长开始的值
alter table timea auto_increment=9; #重新设定了自增长的值,则再次插入数据时,id的值为9,依次插入时+1 #开始创建表时,自定义 自增长开始的值
create TABLE if not EXISTS timea(
id int PRIMARY key auto_increment, #将id设置为主键,并且为自增长
atime year
)engine=innodb auto_increment=8 charset = utf8; #创建表时手动设定了自增长的值为8,则插入数据时,id的值不从1开始,而是8,依次插入时+1
#向timea表中自己给定自增长列的值为1

MYSQL—— 完整性约束条件中primary key、auto_increment使用总结!的更多相关文章

  1. [MySQL数据库之表的约束条件:primary key、auto_increment、not null与default、unique、foreign key:表与表之间建立关联]

    [MySQL数据库之表的约束条件:primary key.auto_increment.not null与default.unique.foreign key:表与表之间建立关联] 表的约束条件 约束 ...

  2. MYSQL - JSON串中查找key对应的值

    1.建表 -- 建表 drop table if exists ta_product2; CREATE TABLE ta_product2( id int primary key auto_incre ...

  3. SQLite中的自增关键字:AUTO_INCREMENT、INTEGER PRIMARY KEY与AUTOINCREMENT

    1.SQLite不支持关键字AUTO_INCREMENT 1)AUTO_INCREMENT不生效的问题 SQL语句: CREATE TABLE todo (     id INTEGER AUTO_I ...

  4. 【MySQL】完整性约束条件与设计范式

    完整性约束条件 概念: 对表中的数据进行限定,保证数据的正确性.有效性和完整性. 分类: 主键约束:primary key 非空约束:not null 唯一约束:unique 外键约束:foreign ...

  5. 关于主键(PRIMARY KEY)和自增(AUTO_INCREMENT)结合使用的知识点

    1.主键(PRIMARY KEY)和自增(AUTO_INCREMENT)同时使用两种写法:    a.主键(PRIMARY KEY)和自增(AUTO_INCREMENT)分两行写        创建一 ...

  6. 字符编码,存储引擎,MySQL字段类型,MySQL字段约束条件

    字符编码 查看MySQL默认编码命令:\s """ 如果是5.X系列 显示的编码有多种 latin1 gbk 如果是8.X系列 显示的统一是utf8mb4 utf8mb4 ...

  7. mysql在ubuntu中的操作笔记(详)

    1.安装mysql客户端流程: -  登录navicat官网下载 -  将压缩包拷贝ubuntu中进行解压,解压命令:tar zxvf navicat.tar.gz -  进入解压目录,运行命令./s ...

  8. MySQL字段约束条件、字段类型、存储引擎、配置文件

    字符编码与配置文件 # 查看MySQL默认字符编码 \s ''' 如果是5.X系列 显示的编码有很多种 Latin1 gbk 如果是8.X系列 显示的统一是utf8mb4 utf8mb4是utf8优化 ...

  9. MySQL 并行复制演进及 MySQL 8.0 中基于 WriteSet 的优化

    MySQL 8.0 可以说是MySQL发展历史上里程碑式的一个版本,包括了多个重大更新,目前 Generally Available 版本已经已经发布,正式版本即将发布,在此将介绍8.0版本中引入的一 ...

随机推荐

  1. mysql cluster部署

    一.mysql cluster的基本概念 1.mysql cluster的组成            管理(MGM)节点:这类节点的作用是管理MySQL Cluster内的其他节点,如提供配置数据.启 ...

  2. mybatis源码解读(二)——构建Configuration对象

    Configuration 对象保存了所有mybatis的配置信息,主要包括: ①. mybatis-configuration.xml 基础配置文件 ②. mapper.xml 映射器配置文件 1. ...

  3. (原创)ubuntu 10.04+ruby1.9.2+rails3 安装记录

    第一步当然是现在ruby 1.9.2 的sourcecode了,因为现在的ubuntu 源中还没有1.9.2的版本 我下载的是ruby-1.9.2-p290.tar.gz 然后解压到/usr/loca ...

  4. windows10不能修改hosts解决方案(亲测)

    hosts文本解释: 有时候我们要破解一些软件与服务器通讯,所以通常都需要更改Hosts文件来达到目的,XP系统可以直接修改保存,但是Win10系统却提示没有权限去修改,那么我们要怎样办呢,我们修改的 ...

  5. Yii2数据接口

    写接口之前先确认那你已经安装了Yii2的basic版或者advanced版,如果还没有,赶快去看这篇文章:composer安装Yii2. 现在默认你已经安装了basic版或者advanced版了,并且 ...

  6. python笔记:#005#算数运算符

    算数运算符 计算机,顾名思义就是负责进行 数学计算 并且 存储计算结果 的电子设备 目标 算术运算符的基本使用 01. 算数运算符 算数运算符是 运算符的一种 是完成基本的算术运算使用的符号,用来处理 ...

  7. HTML学习笔记8:表单

      什么是表单?     一个网页表单可以将用户输入的数据发送到服务器进行处理.因为互联网用户使用复选框,单选按钮或文本字段填写表格,所以WebForms的形式类似文件或数据库.例如,WebForms ...

  8. Hibernate Session总结

    现在我们可以在 IDEA 下新建一个 Hibernate 项目,接着上次内容这次主要总结一下 Hibernate 的 Session,及其核心方法. Session 概述 Session 接口是 Hi ...

  9. 集成支付宝,报警告warning: (arm64) /Users/tommy/Desktop/Project/ios-msdk-git/AlipaySDK4Standard/AlipaySDK/Library/UTDI

    集成支付宝的时候遇到的问题,找到了解决办法,还说明了原因,非常好,觉得应该记下来,反正以我的记性下次一定是会忘光光哒~ 1)  Go to Build Settings -> Build Opt ...

  10. 令状态寄存器访问指令(MRS,MSR)

    ARM中有两条指令用于在状态寄存器和通用寄存器之间传送数据. 针对32位的ARM处理器,状态寄存器就是一个32位长的寄存器.每个位的含义如下图: 分成了4部分: 1,条件标志位 N(Negative) ...