IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 2021-11-05 -> 正文阅读

[大数据]2021-11-05

约束

1.什么是约束?常见的约束有哪些呢?
在创建表的时候、可以给表的字段添加相应的约束,添加约束的目的是为了保证表中的数据的合法性、有效性、完整性。
常见的约束有哪些呢?
非空约束(not null):约束的字段不能为NULL
唯一约束(unique):约束的字段不能重复
主键约束(primary key):约束的字段既不能重复,也不能为NULL(简称PK)
外键约束(foreign key):…(简单FK)
检查约束(check):注意Oracle数据库有check约束,但是mysql没有,目前mysql不支持该约束。

非空约束 not null

drop table if exists t_user;
create table t_user (
id int;
username varchar(255) not null,
password varchar(255) 
);
//insert into t_user (id,password) values(1,'123');//error
insert into t_user(id,username,password); values(1,'lisi','123');

唯一性约束(unique)

唯一约束修饰的字段具有唯一性,不能重复,但可以为NULL
*案例:给某一列添加unique

drop table if exists t_user;
create table t_user(
id int,
username varchar(255) unique
);
insert into t_user values(1,'zhangsan');
insert into t_user values(2,'zhangsan');
Error!!
insert into t_user(id) values(2);
insert into t_user(id) values(3);
insert into t_user(id) values(4);

案例:给出两个或者多个列添加unique

drop table if exists t_user;
create table t_user(
id int;
usercode varchar(255),
username varchar(255),
unique(usercode,username)
);

drop table if exists t_user;
create table t_user(
id int,
usercode varchar(255) unique,
username varchar(255) unique,
unique(usercode,username) //多个字段联合起来添加1个约束unique[表级约束]
);

insert into t_user values(1,'111','zs');
insert into t_user values(2,'111','ls');
insert into t_user values(3,'222','zs');
select *from t_user;
insert into t_user values(4,'111','zs');
Error 1062 (23000)....

drop table if exists t_user;
creat table t_user(
id int;
usercode varchar(255) unique,
username varchar(255) unique
);
insert into t_user values(1,'111','zs');
insert into t_user values(2,'222','ls');
ERROR 1062

主键约束

主键相关的术语?
主键的约束:primary key
主键字段:id字段添加primary key之后,id叫做主键字段
主键值:id字段中的每一个值都是主值。

主键的分类?
根据主键字段数量来划分:
单一主键(推荐的,常用的。)
复合主键(多个字段联合起来添加一个主键的约束)(复合主键不建议使用,因为复合主键违背三范式。)
根据主键性质来划分:
自然主键:主键值最好是一个和业务没有任何关系的自然数
业务主键:主键值和系统的业务挂钩

一张表主键约束只能有一个(必须记住)

使用表级约束方式定义主键:

drop table if exists t_user;
create table t_user(
id int,
username varchar(255),
primary key(id)
);
insert into t_user(id,username) values(1,'zs');
insert into t_user(id,username) values(2,'ls');
insert into t_user(id,username) values(3,'ws');
insert into t_user(id,username) values(4,'cs');
select *from t_user;

insert into t_user(id,username) values(4,'cx');
ERROR 1062

*mysql提供主键值自增:(非常重要。)

`drop table if exists t_user;
create table t_user(
id int primary key auto_increment,//id字段自动维护一个自镇的数字,从1开始,以1递增。
username varchar(255)
);
insert into t_user(username) values('a');
insert into t_user(username) values('b');
insert into t_user(username) values('c');
insert into t_user(username) values('d');
insert into t_user(username) values('e');
insert into t_user(username) values('f');
select * from t_user;

提示:Oracle当中也提供一个自增机制。叫做:序列(sequence)对象

外键值 foreign key

外键值是否可以为NULL?
外键值可以为NULL。
外键字段引用其他的表的某个字段的时候,被引用的字段必须为主键?
注意:被引用 的字段不一定是主键,但至少具有unique约束。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-12 19:39:55  更:2021-11-12 19:40:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:01:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码