mysql-(二)-数据约束

数据约束:对用户操作数据表的约束

1.默认值

作用:当用户对使用默认值的字段不插入值的时候,就使用默认值

create table student(
    id int,
    name varchar(20),
    address varchar(20)
)

insert into student (id,name) values(1,"cxspace");

不插入address,显示值为 NULL

drop table student

create table student(
    id int,
    name varchar(20),
    address varchar(20) default ‘阿富汗‘  --默认值约束
)

当执行上面的insert的时候,mysql自动未为没有插入值的字段,插入default值

inset into student (id , NAME , address) values(1,‘奥巴马‘,NULL)

//执行该语句,address字段值显示为null

注意:默认值字段允许为空!!!

2.非空

create table student(

       id int,
       name varchar(20),
       gender varchar(2)  not null   --非空约束

)

执行

insert into student( id , name) values (1,‘haha‘);

一.报错,说明指定未非空的字段必须赋值

insert into student (id ,name , gender) values (2 , ‘mike‘ , null);

二.报错,非空字段不能赋予null值

3.唯一

create table student(

       id int  unique,    ---唯一约束
       name varchar(20),
)

执行

insert into student (1,‘tom‘);

insert into student (1,‘jack‘);  //执行这个语句报错

违反唯一约束报错

执行

insert into student(name) values(‘jhon‘);

不报错,唯一可以不给值

如果在执行一次上面语句,包不报错???

不报错,唯一约束对NULL值不起作用

总结:唯一的字段可以插入null值,也可以插入多个null值

4.主键(非空+唯一)

create table student (
    id int primary key, --主键
    name varchar(20)
)

执行下面语句

insert into student(name) values (‘lisi‘); 

报错===违反非空约束

执行下面语句

insert into student (1,‘tom‘);

insert into student (1,‘jack‘);  //执行这个语句报错

报错===违反唯一约束

通常情况下

1===每张表都会设置一个主键字段,用以标记表中每条字段的唯一性.

2===建议不要选取包含业务含义的字段作为主键,给每张表设计一个非业务含义的id字段.

5.自增长

6.外键

时间: 2024-10-12 22:34:53

mysql-(二)-数据约束的相关文章

二十七、mysql如何确保数据不丢失?有几点值得我们借鉴

本篇文章我们先来看一下mysql是如何确保数据不丢失的,通过本文我们可以了解mysql内部确保数据不丢失的原理,学习里面优秀的设计要点,然后我们再借鉴这些优秀的设计要点进行实践应用,加深理解. 预备知识 mysql内部是使用b+树的结构将数据存储在磁盘中,b+树中节点对应mysql中的页,mysql和磁盘交互的最小单位为页,页默认情况下为16kb,表中的数据记录存储在b+树的叶子节点中,当我们需要修改.删除.插入数据时,都需要按照页来对磁盘进行操作. 磁盘顺序写比随机写效率要高很多,通常我们使用

Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle

Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq  index2 3. 检查约束 (Check Counstraint) 对该列数据的范围.格式的限制(如:年龄.性别等)2 4. 默认约束 (Default Counstraint) 该数据的默认值2 5. trigger2 6. 外键机制  参照完整性:2 7. 断言约束:不必与特定的列绑定,可以理解为能应用于多个表的

五种完整性约束分别是什么——基于MySQL数据库的数据约束实例

为了防止不符合规范的数据进入数据库,在用户对数据进行插入.修改.删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确.有效.相容. #数据约束 #五种完整性约束: #NOT NULL :非空约束,指定某列不能为空: #UNIQUE : 唯一约束,指定某列或者几列组合不能重复 #PRIMARY KEY :主键,指定该列的值可以唯一地标识该列记录 #FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于参照完

mysql大数据备份与还原(二)

mysql大数据备份和增量备份及还原 Xtrabackup实现是物理备份,而且是物理热备 目前主流的有两个工具可以实现物理热备:ibbackup和xtrabackup :ibbackup是需要授权价格昂贵,而xtrabackup功能比ibbackup强大而且是开源的 Xtrabackup提供了两种命令行工具: xtrabackup:专用于备份InnoDB和XtraDB引擎的数据: innobackupex:这是一个perl脚本,在执行过程中会调用xtrabackup命令可以实现备份InnoDB,

Mysql高手系列 - 第27篇:mysql如何确保数据不丢失的?我们借鉴这种设计思想实现热点账户高并发设计及跨库转账问题

Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能. 欢迎大家加我微信itsoku一起交流java.算法.数据库相关技术. 这是Mysql系列第27篇. 本篇文章我们先来看一下mysql是如何确保数据不丢失的,通过本文我们可以了解mysql内部确保数据不丢失的原理,学习里面优秀的设计要点,然后我们再借鉴这些优秀的设计要点进行实践应用,加深理解. 预备知识 mysql内部是使用b+树的结构将数据存储在磁盘中,b+树中节点对应mysql中的页,mysql和磁盘交互的最小

javaweb学习总结(三十四)——使用JDBC处理MySQL大数据

一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时是需要用程序把大文本或二进制数据直接保存到数据库中进行储存的. 对MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和blob分别又分为: TINYTEXT.TEXT.MEDIUMTEXT和LONGTEXT TINYBLOB.BLOB.MEDIUMBLOB和L

javaweb(三十四)——使用JDBC处理MySQL大数据

一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时是需要用程序把大文本或二进制数据直接保存到数据库中进行储存的. 对MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和blob分别又分为: TINYTEXT.TEXT.MEDIUMTEXT和LONGTEXT TINYBLOB.BLOB.MEDIUMBLOB和L

mysql更改数据文件目录及my.ini位置| MySQL命令详解

需求:更改mysql数据数据文件目录及my.ini位置. 步骤: 1.查找my.ini位置,可通过windows服务所对应mysql启动项,查看其对应属性->可执行文件路径,获取my.ini路径. "D:\MySQL\MySQL Server 5.5\bin\mysqld" --defaults-file="D:\MySQL Data\my.ini" MySQL55 2.编辑my.ini中对应datadir 改前:datadir="D:\MySQL

MySQL的数据备份以及pymysql的使用

一.MySQL的数据备份 语法: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql #示例: #单库备份 mysqldump -uroot -p123 db1 > db1.sql mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql #多库备份 mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db