| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 【简单易懂】MySQL增删改查(进阶) -> 正文阅读 |
|
[大数据]【简单易懂】MySQL增删改查(进阶) |
目录 1.数据库约束1.1 约束类型
1.2 NULL约束
创建表时,可以指定某列不为空:
?如果往 id 列插入空值,就直接报错 1.3 UNIQE:唯一约束uniqe就是指定列的每一个数值为唯一值,不能有重复。如果往指定的列中插入重复值也会报错。
?如下列表信息中已经表明 1.4 DEFAULT:默认值约束default 就是给插入空数据时指定默认值,也可以手动默认
?往表中增加信息 ?将name 默认为 ‘guangming’
? 1.5 PRIMARY KEY:主键约束对于一个表来说,只能有一个列被指定为主键,并且 primary key 是 not null 和 unique 的结合,确保某列有唯一标识,有助于更容易更快速的找到表中的一个特定的记录。 确认了主键,该列既不能为空又不能为重复值。 如下插入数据,将 id 列为空,最终显示结果为错误 ?插入重复值,为错误 ?对于主键的关键用法就是使用在数字自增中,auto_ncrement 是主要句子 创建表
?插入数据
?在插入数据中,并没有插入 id ,但是表中可以自动生成 ?自增主键也可以手动指定 id, 但是后序的自增是从指定的 id 开始的 ?1.6 FOREIGN KEY:外键约束外键用于关联其他表的主键或唯一建
?例如创建一张学生表和班级表,学生表就依赖于班级表,学生表就为‘字表’,班级表就为‘父表’ ?先创建一个班级表 ? ?classId 既是 class 表的主键,又是? student 表的外键 ?然后构造一个学生表,来指定一下 外键约束 ?往表中插入数据,其中 classId 为1,在class 表中存在,所以插入成功 ?如果我们将classId 为10,在class 表中不存在,所以插入不成功
? ?外键约束,同样也约束着父表,当父表中的某个记录被子表中依赖着的时候,进行修改或者删除都会失败
? ?外键约束工作原理
2. 表的设计2.1 一对一 就是唯一性,例如每个人只有一个身份证号 2.2 一对多 以班级为例,一个班级可以有多个学生。 2.3 多对多 以学生和课程为例,一个学生可以选多们课,一门课可以被多个学生选 3. 新增?将查询到的结果插入新的表中,但是需要保证查询到的结果与插入到新的表中类型匹配,列的顺序可以不一样。 创建 A?表? 、 B表
?往表A中插入数据
?将查询A的结果插入表B中
4. 查询4.1 聚合查询4.1.1 聚合函数 常见的统计总数,计算平均值等,可以使用聚合函数来实现,常见的聚合函数有:
count 函数 的用法 查询? exam 表的人数, count(*)
?在 count 时,也可以指定某个列,如,指定math 列,count(math)
?
?sum 求和函数 将列的若干个数值相加 例如,求 math 列的总成绩, sum(math)
?
?例如对name进行计算,sum(name)
?一个聚合函数里面的参数,也可以通过表达式的方式进行运算
?还可以用 as 起别名来显示;
?例如,先筛选出 english 大于 85 的,然后将大于 85 的求和
4.1.2 GROUP BY子句
?例如对 emp 表进行分组在聚合函数查询
?如下,先去掉 name 是 liliu 的,在进行对 role 分组
? 4.1.3 HAVING
?如下,先对role 进行分组,求avg, 然后执行筛选条件 having, 最终将筛选之后的显示出来。
4.2 联合查询
?例如先单独查询 表 a 和表 student ,
?进行联合查询
?加上条件,可以单独列出一行的信息,
?只保留名字和成绩,student.name = exam.name 是两个表中名字一样的
? 4.2.1 内连接语法
? 4.2.2 外连接
语法
4.2.3 自连接
自连接是指在同一张表连接自身进行查询。
4.2.4 子查询
子查询是指嵌入在其他
sql
语句中的
select
语句,也叫嵌套查询
单行子查询:返回一行记录的子查询
查询与
“
不想毕业
”
同学的同班同学:
多行子查询:返回多行记录的子查询
案例:查询
“
语文
”
或
“
英文
”
课程的成绩信息
4.2.5 合并查询
在实际应用中,为了合并多个
select
的执行结果,可以使用集合操作符
union
,
union all
。使用
UNION 和 UNION ALL
时,前后查询的结果集中,字段需要一致。
union
该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。
案例:查询
id
小于
3
,或者名字为
“
英文
”
的课程:
union all
该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。
案例:查询
id
小于
3
,或者名字为
“Java”
的课程
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 14:40:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |