一 数据表操作
1.1 数据库中的数据类型
1.2 数据表的操作
1.2.1 创建数据表
1.2.2 修改数据
1.2.3 删除数据列
在编写sql语句时,分行写可以性会大大提高
1.2.4 删除数据表
sql操作🀄️级
一、单biao查询
1.1 单表-多条件查询
1.2 单表-全字段和🈯️定字段查询📖
1⃣️ 单表-查询🈯️定表🀄️的所有数据
select * from <TB_NAME>;
2⃣️ 单表-单条件查询
select * from <tab_name> where 条件;
3⃣️ 🈯️定字段:查询的数据表中,需🈯️定要提取数据的
4⃣️ 单表-🈳️值查询
5⃣️ 单表 between-and查询
操作案例:
6⃣️ 单表-IN查询
数据库提供了一种特殊的查询,
可以针对用户需要的具体值进行匹配获取
1⃣️ 通过in 操作符号,完成✅字段和指定数据的匹配查询
select * from <tab_name> where 字段 in (一串数据);
2⃣️ 通过in操作符号,完成✅字段和指定数据的反匹配查询
select * from <tab_name> where 字段 not in (一串数据)
案例;
7⃣️ 单表-模糊查询
需求提及部分内容的查看操作,就需要用到模糊查询
select * from <tab_name> where 字段 like'天%‘;
SELECT * FROM <TAB_NAME> WHERE LIKE "地_“;
%:模糊匹配符号,匹配0到n个字符
_:模糊匹配符号,匹配一个任意字符
8⃣️ 单表排序查询
查询数据的同时,需要按照需求进行排序才能更友好的使用数据sql语法中提供了基本的排序操作
select * from <tab_name> order by 字段名称 asc | decs;
asc:按照自然顺序排列
desc:按照自然顺序倒序排列
9⃣️ 单表-分页查询
数据量较大的情况下,一次查看所有数据非常不方便sql提供了分页查询的操作,可以按照页码的方式分页查看数据
select * from <tab_name> limit start, size;
start:开始查询的编号,不是员工编号,而是查询的记录编号
size:每页娴熟的内容条目数量
操作案例:
🔟 单表-分组查询
需求中如果要查看每个只鹅日的员工都有哪些,应该怎么查看。
目的:查看每个岗位上都有哪些人
sql语法中提供每个岗位上都有哪些人
操作案例:
job列 empname列 FROM employee表儿
以job进行分组,group_content只不过是sql
语句提供的一个加(逗号)的功能。
11 聚合查询
11.1 统计查询count
查询符合条件的记录数
-- 查询📖指定表中所有数据的总数量(消耗性能)
select count(*) from <tab_name>;
-- 查询📖指定表🀄️所有数据总数量(推荐)
select count(1) form <tab_name>;
操作案例:
11.2 平均值查询Avg
操作案例:
11.3 极值查询 -Max、Min
操作案例:
二、多表查询
2.1 数据表约束
2.1.1 主键约束: primary key
2.1.2 唯一约束:unique
2.1.3 默认约束:default
2.1.4 非空约束
2.1.5 外键约束
-- 外键约束
1 描述两个数据表之间的关系(语法上)
2 满足外键关联的数据方能增加到数据库当
中,减少垃圾数据。(就是 主键的依赖关系,没有produce表无法添加商店,produce里面 只有两个跳数据也就是两个店长,那么商店也就只能关联到那两个店长,so 想关联其他的🆔 店长 也没有,减少了废物数据的增加)看不懂没关系下面🈶️图
-- 如下就是可以防止🈶️垃圾数据的插入
2.2 多表关联关系
2.2.1 多对多
2.2.2 一对一关系
2.2.3 多对多关系
2.3 多表 [(联合查询 )🇺🇳📖]
2.3.1 直接关联查询📖
one:直接关联:查询所有数据
造成了查询数据出现重复数据,以及一些不关心的数据
-- 关联查询📖
select * from employee, department
where employee.deptno = department.deptno
and employee.empname = '🧧李俊';
two:直接关联:指定字段查询
造成了查询语句比较繁琐
-- 关联查询,指定字段查询
select employee.empno, employee.empname, employee.nickname,
employee.job, employee.hirdate, employee.salary, employee.comm,
department.deptname, department.location
from employee, department
where employee.deptno = department.deptno
and employee.empname = '李俊';
three:直接关联:指定别名查询📖
-- 关联查询,指定别名(简洁名称)
select e.empno, e.empname, e.nickanme, e.hirdate,
e.salary, e.comm,
d.deptname, d.location
from employee e, department d
where e.deptno = d.deptno
and e.empname = '🧧李俊';
2.3.2 单行子查询
2.3 事物的隔离级别
2.3.1 事物的隔离级别是什么?
事物的隔离级别就是为了保障数据ACID玉安泽的同时提升数据操作性能的
ACID是指在 数据库管理系统(DBMS)中事物所具有的四个特性:原子性、一致性、隔离性、持久性
事物:在数据库系统中,一个事务是指由一系列连续的数据库操作组成的一个完整的逻辑过程。
这组操作执行前后,系统需要处于一个可预知的、一致的状态。
2.3.2 事物隔离的四个级别
2.3.2.1 读未提交
read uncommited: 读未提交
操作效率是最高的,但是数据的稳定性是最差的:脏读
2.3.2.2 读以提交
read commited: 读以提交 (脏读)
数据库的默认事物,使用最多的隔离级别
相对效率较低,数据库稳定性较差(不可重复读)
2.3.2.3 可重复读
repeat read: 可重复读
操作效率较低(一个未完成❎的事物🀄️读取不到别人提交的数据),数据的稳定性较高。
2.3.2.4 串行化、序列化
serializable: 序列化,串行化
操作效率最低,数据的稳定性最高
所有操作的事情,全部排队,任何一件事情必须等待前一件事情全部完成✅才能开始
2.3.3 事务的操作语法:怎么操作事物
一、基本语法:
1 设置 数据库连接 事物级别 具体名称
set setssion transaction level read commited;
2 开启事物
start transaction;
3 提交事物
commit();
4 回滚事物:将所有发生额数据改变全部恢复
rollback();
二、基本案例
# 测试数据表:用户表和朋友表
# 用户表
create table my_users(
id int primary key,
uname varchar(50));
# 朋友表
create table friend(
id int primary key,
fname varchar(50),
uid int);
# 测试事物管理
具体细节 详细文档不在此公布