一、数据库
二、MySQL,SQL语言(可以操作所有关系型数据库)
1.SQL四种语言的具体用途
2.DDL操作数据库、表
1.操作数据库:CRUD
2.操作表
创建表
例子:
查询表
修改表
删除表
3. DML:增删改表中数据
4.DQL:查询表中的数据
1.基础查询
2.条件查询
SQL查询语句的例子
3.排序查询:
4.聚合函数:将一列数据作为一个整体,进行纵向的计算
eg. select 函数名(列名) from 表名
select count(name) from student;
5.分组查询:
eg.按性别分组,分别求出男、女同学的平均分
select sex,avg(math) from student group by sex;
6.分页查询:类似百度搜索出来结果,底部的第1、2、3、4......页
eg.select * from limit 查询数据显示的索引,每页显示的条数
select * from limit 0,3 //表示每页显示三条,从第0条数据开始
公式:(当前页码)开始的索引=(当前页码-1)*每页显示的条数
5.MySQL约束
1.非空约束:not null (该属性的值不为空)
2.唯一约束:unique (该属性的值是唯一、不重复的)
3.主键约束:primary key (非空且唯一,一张表只能有一个字段为主键)
4.自动增长(通常与主键约束一起使用):auto_increment
比如将id设置为自动增长,那么就可以不用设置id的值,可以写为null,它会自动在上一条记录的基础上+1
eg. insert into 表名 values(null,'aaa');
① insert into 表名 values(12,'aaa');
② insert into 表名 values(null,'aaa');
比如在②之前添加了①这条数据,则id内自动增长的数据为13
5.外键约束:foreign key(让表与表产生关系,从而保证数据的正确性)
6.外键约束:联级操作(产生关系的表,主表更改值时,外键字段的值也会改变)
同更新、同删除(更新、删除主表外键相关字段时,外键字段也会同时更新、删除所有记录)
6.数据库的设计
1.一对多(多对一)的关系
2.多对多的关系
3.一对一的关系
一般情况下,一对一关系都是合成一张表
案例:(设计数据库表)
4.数据库设计的范式
- 第一范式(1NF):每一列都是不可分割的原子数据项
- 第二范式(2NF):消除第一范式的部分函数依赖
- 第三范式(3NF):消除第二范式的传递依赖
5.数据库的备份和还原
要先备份,才可以有数据还原
7.多表查询
笛卡尔积:查询结果有 m*n 条记录
A 表:有n条记录;B 表:有m条记录
语法:select 列名列表
from 表名列表
where...
内连接查询:
- 隐式内连接:使用where消除无用数据
- 显式内连接:
外连接查询:
- 左外连接:查询左表所有数据以及两表交集部分
- 右外连接:查询右表所有数据以及两表交集部分
子查询:查询里嵌套查询
- 子查询的结果是单行单列的:子查询作为条件
- 子查询的结果是多行单列的:子查询作为条件
- 子查询的结果是多行多列的:子查询作为虚拟表
多表查询练习:视频JavaWeb P73
使用左外连接查询,可以将左表的全部数据输出,包括没有领导的员工
8.DCL: 管理用户,授权
管理用户:
mysql中忘记root用户的密码:
权限管理:
三、事务
1、事务的基本介绍
- 开启事务:start transaction;
- 回滚:rollback;(出现异常,事务回滚到开启事务的时候)
- 提交:commit; (操作执行结束,并且没有出错)
MySQL数据库中事务默认自动提交
- 如果手动开启事务,没有手动 commit 提交事务的话,所进行的操作是不会保存到数据库中的
2.事务的四大特征(面试题)
- 原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败
- 持久性:当事务提交或回滚后,数据库会持久化的保存数据
- 隔离性:多个事务之间,相互独立
- 一致性:事务操作前后,数据总量不变
(1条消息) 数据库(事务的四大特性)_吃人陈乐游刘的博客-CSDN博客_数据库事务的四大特性https://blog.csdn.net/qq_53463161/article/details/117535536(1条消息) 事务特性(4道面试题)_weixin_30362083的博客-CSDN博客https://blog.csdn.net/weixin_30362083/article/details/97207933
3.事务的隔离级别