当前位置:网站首页>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——求若干行最小值
边栏推荐
猜你喜欢
随机推荐
【汇编语言02】第2章 寄存器——理论知识
PHP基础笔记-NO.1
LeetCode - 102. 二叉树的层序遍历;110. 平衡二叉树;098. 验证二叉搜索树
PHP base notes - NO. 1
WEB 渗透之SSRF
【Azure 事件中心】使用Azure AD认证方式创建Event Hub Consume Client + 自定义Event Position
有人知道flink sql 使用tableEnv.executeSql执行后,怎么获取到任务运行的
AI智能剪辑,仅需2秒一键提取精彩片段
Install porterLB
Execution plan of mysql
【牛客在线OJ】-字符逆序
如何成为优秀的产品运营?
Shell编程案例
常见荧光染料修饰多种基团及其激发和 发射波长数据一览数据
【mysql】SIGN(x) function
调用EasyCVR云台控制接口时,因网络延迟导致云台操作异常该如何解决?
走进通信:为什么4G信号满格,却上不了网呢
你想知道的 Watch App 开发
常见亲脂性细胞膜染料DiO, Dil, DiR, Did光谱图和实验操作流程
技术开发人员常用的安全浏览器