这里主要是数据库 MySql 基础
#添加库的方法:将代码拷贝进编辑页面 直接运行即可添加当前正在使用的库
数据库的好处
1、 可以持久化数据到本地
2、 结构化查询
一、 数据库的常见概念
1、 DB 数据库 存储数据的容器
2、 DBMS 数据库管理系统 又称为数据库软件或数据库产品 用于创建或管理DB
3、 SQL 机构化查询语言 用于和数据库通信的语言 不是某个数据库软件特有的 而是几乎所有的主流数据库软件通用的语言
二、 数据库存储数据的特点
1、 数据存放到表中 然后表再放到库中
2、 一个库可以有多张表 每张表具有唯一的表名来标识自己
3、 表中有一个或多个列 列又称为“字段” 相当于java中的属性
4、 表中的每一行数据 相当于java中的对象
三、 常见的数据库管理系统
Mysql oracle db2 sqlserver
MySQL基础指令
1 查看当前所有的数据库
show databases;
create databases;
2 打开指定的库
use 库名;
3 查看当前库的所有表
show tables;
4 查看其他库的所有表
show tables from 库名;
5 创建表
create 表名{
列名 列类型,
列名,列类型,
......
}
6 查看表结构
desc 表名
select*from department #查询所有内容
show index from 表名;# 显示 表的索引
7 隔离级别
select @@transaction isolation; # 显示当前mysql连接的隔离级别
set session transaction isolation level read uncommitted; #更改当前的隔离级别
set global transaction isolation level read committed;设置数据库系统的全局的隔离级别
条件查询【重点】
语法实现:
select
查询列表
from
表名
where
筛选条件;
分类:
一 按条件表达式筛选
条件运算符:>< = =!<> >= <=
二 按逻辑表达式筛选
逻辑运算符:&& || ! and or not
三 模糊查询
like between and in in is null
排序查询
引入:
select*from employees;# 将所有的内容查询出来
重点;
语法:
select 查询列表
from 表
【where 筛选条件】
order by 排序列表 【asc|desc】 # 升序或降序
【】 里面的是可选项 可有可无
特点:
asc 升序 desc 降序
如果不写 默认升序
order by 子句一般支持单个字段 多个字段 表达式 函数 别名
order by 字句一般放在查询字句的最后面
引入案例:
查询员工工资信息:
工资从高到低
select * from employees
order by salary desc;
工资从低到高
select * from employess
order by salary asc;
引入一个比较全面的案例【重点理解记忆】
查询部门编号>=90 的员工信息 按入职时间的先后进行排序
select *
from employees
where department_id>=90
order by hiredate asc;
分组查询【重点】
语法:
select 分组函数,列(要求出现在group by的后面)
from 表
【where 筛选条件】
group by 分组的列表
【order by 子句】 排序
注意:查询列表必须特殊,要求是分组函数和group by后出现的字段
特点:
分组查询中的筛选条件分类两类
数据源 | 位置 | 关键字 | |
---|---|---|---|
分组前筛选 | 原始表 | group by字句的前面 | where |
分组后筛选 | 分组后的结果集 | group by 字句的前面 | having |
查询每个部门每个工种的平均工资 并且按平均工资的高低排序
select avg(salary),department_id,job_id
from employees
where department_id is not null
group by jod_id,department_id # 分组
having avg(salary)>10000 # 筛选条件
order by avg(salary)desc;#降序