数据库(database):存储数据的仓库 相当于文件夹/目录
数据库的组成
表(table):相当于文件
Table结构:相当于表头
行(row):数据
字段(属性) 主键id 字段类型
Mysql:管理数据库(管理文件,文件夹)的软件
分类
DDL : 数据库 和 表
DML : row 增删改
DQL : row 查询(重点) Data Query Language
DTL : 事务,权限 Data Transaction Language
DDL
数据库(文件夹)基本操作
增(create) 删(delete) 改(update) 查(read)
Cmd登录数据库:mysql -uroot(用户名) -p(密码)
1. 查询:show databases 显示全部 /show create database 数据库名 显示单个
2. 创建/增:create database 数据库名
3. 删除:drop database 数据库名
4. 修改:不能改名字,只能删除然后创建
表(文件)基本操作
1.创建文件之前,必须进入到某个文件夹中
Use 数据库名
2.创建时候,给定表名,给定字段(表头) create table 表名( id int, username varchar(11), password varchar(11) );
3.删除
drop table 表名
4.修改 alert table 表名
修改表名 :ALTER TABLE <表名> RENAME TO <新表名>;
添加字段 :ALTER TABLE <表名> ADD <列名> <字段属性>;
修改字段 :ALTER TABLE <表名> CHANGE <旧列名> <新列名> <字段属性>;
删除字段 :ALTER TABLE <表名> DROP COLUMN <列名>;
DML
增
Insert into 表名(字段1,字段2...)values(值1,值2...)
Insert into values(值1,值2...)
字段列表 和值列表 个数一定要匹配
字段列表 和值列表 类型一定要匹配
Mysql数字类型不需要加引号
Mysql 日期,字符串 必须加引号
删
Delete from 表名 (where 条件)
改
Update 表名 set 字段1=值1,字段2=值2...(where 条件)
DQL
1.格式
Select 字段1【as 别名】,字段2...from 表名
【
Where 普通条件
Group by 分组字段 having 分组条件
Order by 排序字段 排序规则
】
查询全部信息 select * from 表名
去重 select distinct 字段 from 表名
2.where条件查询
(1)关键字
Like /_任意一个词 /%任意0,1,2...词
name like 'XX'; select * from 表名where name like 'X' ;
name like '%X' 以X结尾
name like 'X%' 以X开头
3. 升降序
Asc 升序(默认) desc 降序
聚合函数
功能点 统计-》统计图/分页
Avg :求平均值 select avg(字段名) from表名
Count:统计个数函数 select count(字段名)from 表名
Max/min :求最大值最小值 select max/min(字段名)from 表名
Sum:求和函数 :select sum(字段名)from 表名
分组函数 group by
可查询 分组字段 聚合函数 分完组,是一个整体,不存在单独属性
分页函数 limit
1.格式 limit m,n ( m 角标/下标 从0开始 n多少条)
2. select * from 表名 limit (pageNum-1)*pageSize ,pageSize
PageNum:页数 pageSize:条数
表约束
Create table 表名
(
表头字段 类型 [XX约束 xx约束2],
表头字段 类型 [XX约束 xx约束2],
)
唯一约束 : unique
不允许字段重复出现
非空 : not null
不允许字段不输入值
主键约束 : primary key
unique + not null
自增长 : auto_increment
只能在主键上
只能在能够++类型 int bigint
一般情况下,如果id是int bigint,,,会让他自动增长
外键约束 : foreign key
连接表与表之间的关系
实体和另外的实体之间的关系可以用外键标识
产出表的时候,必须先删除外键所在的表
创建外键:foreign key(当前表的需要指出字段) references 外键表名(指向的列);
外键
一对一
主 从(外键)
外键一半放在次要的一方
一对多
外键一般在多的一方
多对多
会有一个中间表 中间表中创建2个外键
多表查询
内连接
显示内链接
格式
select * from 第一张表的名字 [inner] join 第二张表的名字 [on 连接条件 where 筛选条件...]
隐示内连接
格式
select * from 表1,表2
笛卡尔积
两张表的乘积,其中很多费数据
左外连接
格式
select * from 表1 left outer join 表2 [on 连接条件 where 筛选条件...]
作用 显示左边所有数据
右外连接
格式
select * from 表1 right outer join 表2 [on 连接条件 where 筛选条件...]
作用 显示右边边所有数据
子查询
一条sql语句作为,结果(当做一张表,当做条件),给另外一个sql使用
select * from 表名 where 字段名=( select 字段名from 表名where 条件);
流程
一、 Switch
Switch (key)
Select case value
When 1 then
‘XX’
When 2 then
‘XX’
Else
‘XX’
二、If
Select case
When x<100 then
‘XX’
When x<200then
‘XX’
Else
‘XX’
END as 别名
From 表名
空判断
Ifnull(e1,e2)
如果e1==null return e2
如果 e1!=null retrun e1
Nullif(e1,e2)
如果e1==e2 return null
如果 e1!=e2 retrun e1
数值
Format(value,length)
保留形式:四舍五入
Value:值
Length:小数点后的长度