一.数据库
1.概述:数据库database简称db , 就是用来存储数据和管理数据 的仓库 。
二.数据库结构
1, 数据库 : 创建库,删除库,修改库,查询库 – 增删改查
2, 表: 指定字段,行(一条一条的记录)和列(每条记录的相关数据) – 增删改查
3, 数据/记录 : 存储 和 管理数据 – 增删改查
三.SQL语言
1.全称是结构化查询语言. 专门用来对数据库进行操作 .
2.查询所有数据库:show databases;
3.创建数据库:create database cgb2108;
4.删除数据库(慎用):drop database cgb2108;
5.使用指定数据库:use cgb2108;
5.查询表:show tables;
6.创建表:create table 表名(字段名称 字段类型(字段长度),字段2,字段3....);
7.修改表:alter table 表名 添加字段 字段名称 字段类型(字段长度);
8.删除表(慎用):drop table 表名;
9.查询所有记录:select * from 表名;
10.向表中插入记录:insert into 表名 values(字段1的值,字段2的值,字段3的值);
11.修改记录:update 表名 set 字段名=字段的新值;
12.删除记录:delete from 表名;
四.字段约束
1.主键约束:PRIMARY KEY 哪个字段添加了主键约束,哪个字段就是一张表里的唯一的主键.
约束了字段的值,必须唯一且不能为空
主键自动递增策略: 主键的值交给了数据库去管理,数据库会查到当前记录中的最大值+1.
2.非空约束:not null 哪个字段添加了非空约束,哪个字段的值不能为null
3.唯一约束:UNIQUE 哪个字段添加了唯一约束,哪个字段的值就必须唯一
五.聚合函数
常见的聚合函数: count() max() min() avg() sum()
1.count() 把一列的所有值聚合起来,然后做数据分析
2.max() 获取最大值
3.min() 获取最小值
4.avg() 获取平均值
5.sum() 获取总和
分组:1,分组:group by,把数据按照维度分组,后,数据分析 口诀: 什么时候要分组?查询时出现了混合列 按照什么分组?按照非聚合列分组
六.事务
Transaction,保证多条操作要么全成功,要么全失败.
事务的四大特性:
1,原子性: 把多条SQL,看做是一个原子,密不可分,要么全成功,要么全失败.
2,隔离性: 数据库为了保证性能也支持高并发,但是有安全隐患.保证多个操作之间是隔离的
3,持久性: 对数据库的操作是持久生效影响的
4,一致性: 保证数据在多个系统中是一致的
隔离级别: 从上至下,安全性越来越好,但是性能越来越差
1, 读未提交: 性能最好,但是安全性最差
2, 读已提交: 性能较差,安全性较高,Oracle数据库的默认隔离级别
3, 可重复读: 性能较差,安全性较高,MySQL数据库的默认隔离级别
4, 串行化: 性能太差
七.索引
概述:为了提高查询效率. 索引会单独生成一张表,要合理的使用索引.
1.单值索引: 一个索引只包含一个字段
2.唯一索引: 一个索引只包含一个字段,但字段的值不能重复
3.复合索引: 一个索引可以包含着多个字段,使用复合索引要遵循最左特性
八.视图
和索引一样,都是对数据库优化的有效方案.
特点:
1, 可以把视图当做表来使用 2,视图里存的数据是 SQL查询到的结果 3,SQL无法优化,要合理的使用视图
十.多标联查
1, 笛卡尔积(通过逗号连接表名): 语法 select * from 表名1,表名2,表名3
2, 连接查询:
内连接inner join:取两张表的交集
左连接left join:取左表的所有和右表满足条件的
右连接right join:取右表的所有和左表满足条件的
3, 子查询
把上次的查询结果作为这次的查询条件