当前位置:网站首页>MySQL——增删改查进阶
MySQL——增删改查进阶
2022-08-03 18:26:00 【大本钟下送快递】
目录
一,数据库的约束
1.not null——指定列非空
create table student (
id int not null,
sn int ,
name varchar(20),
qq_mail varchar(20)
);
2.unique——指定值唯一
create table student (
id int ,
sn int unique,
name varchar(20),
qq_mail varchar(20)
);
使用unique约束,数据库自动给对应列创建索引
3.default——默认值约束
create table student (
id int ,
sn int ,
name varchar(20) default ' 未命名',
qq_mail varchar(20)
);
4.primary key——主键约束
create table student (
id int primary key auto_increment,
sn int ,
name varchar(20) ,
qq_mail varchar(20)
);
1.相当于 unique+not null
2.一个表中只能有一个(分布式部署时不能保证不重复)
3.常与 auto_increment 搭配使用,可自动增加值,也支持手动分配.
手动分配后,按手动分配后新数据继续自增
生成公式=(时间戳+机房编号/主机编号+随机因子)==>计算哈希值
5.foreign key——外键约束
create table classes (
id int primary key auto_increment,
name varchar(20),
`desc` varchar(100)
);
create table students (
id int primary key auto_increment,
sn int unique,
name varchar(20),
qq_mail varchar(20),
classes_id int,
foreign key (classes_id) references classes(id)
);
父表为classes,子表为students
1.子表存在,不能直接删父表
2.被约束的不能直接删除
拓展:逻辑删除
将数据标记为无效
6.check约束——了解
create table students (
id int primary key auto_increment,
sn int unique,
name varchar(20),
sex varchar(20),
check (sex='男' or sex='女')
);
使用时不报错且自动忽略
二,表的设计
1.主要思路
(1).根据需求,找到“实体”
(2).梳理实体间的关系
一对一
一对多
多对多
需要额外一个关联表
三,新增
可以把查询的结果插到另一个表中
insert into 表1 select * from 表2 [where ];
四,查询
1.count——计算行数
select count(列/*)from 表
注意:
count(列),若该列为null,则不计算;若该列为*,所有列为空也计算
2.sum——若干行之间进行加和
select sum(列名) from 表名;
空值不参加运算,直接跳过
3.avg——求若干行平均数
4.max——求若干行最大值
5.min——求若干行最小值
边栏推荐
猜你喜欢
随机推荐
【Azure 事件中心】使用Azure AD认证方式创建Event Hub Consume Client + 自定义Event Position
六、用户身份认证
ImportError: /lib/libgdal.so.26: undefined symbol: sqlite3_column_table_name
智能合约安全——delegatecall (2)
WEB 渗透之RCE
Higher mathematics - chapter ten infinite series - constant term series
三丁基-巯基膦烷「tBuBrettPhos Pd(allyl)」OTf),1798782-17-8
从技术全景到场景实战,透析「窄带高清」的演进突破
gcc的学习及 版本太低如何在conda环境下重新进行安装
ASA归因:如何评估关键词的投放价值
How to install and start VNC remote desktop service on cloud GPU?
注意力机制的详细理解
2022/08/02------Ugly number
VsCode预览Geojson数据
B628芯片电路图,B628升压IC的PCB布局PCB
常见荧光染料修饰多种基团及其激发和 发射波长数据一览数据
Mock模拟数据,并发起get,post请求(保姆级教程,一定能成功)
Digital IC Handwriting - MCMM, WNS and TNS
云渲染的优势与劣势
深度学习常用公式与命令总结(更新中)