MySql 增删改查
一:数据库 CRUD
1.C(Create):创建数据库
create database[if not exists] 数据库名 character set 字符集名称;
2.R(Retrieve):查询数据库
show databases;
show create database 数据库名称; 查询某个数据库创建语句(数据库字符集)
3.U(update):修改
alter database 数据库名称 character set 字符集名; 修改字符集
4.D(Delete):删除
drop database [if exists] 数据库名;
5.使用数据库
use 数据库;
二:操作表
1.C(Create):创建数据库
create table 表明 like 被赋值的表明; 复制表
1.date:日期,只包含年月日 yyyy-MM-dd
2.datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss
3.timestamp:时间错类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss
*如果不给该字段赋值,或赋值为null,则默认使用当前系统时间,来自动赋值
2.R(Retrieve):查询数据库
show tables;
desc 表名; 查询表结构
3.U(update):修改
alter table 表明 rename to 新表名; 修改表名
alter table 表明 character set 字符集名称; 修改表的字符集
alter table 表明 add 列名 数据类型; 添加一列
alter table 表名 change 列名 新列名 新数据类型; 修改列名和数据类型
alter table 表明 modify 列明 新数据类型 修改数据类型
alter table 表明 drop 列明 删除列名
4.D(Delete):删除
drop database [if exists] 数据库名;
三.增删改表中的数据
1.添加数据
insert into 表明 [ (列明1,列明2...) ] values(值1,值2...)
2.删除数据
delete from 表名[ where 条件 ]
不加条件,则表示删除表中所有记录,一条一条删除,效率低
truncate table 表明; 相当于 先删除一个表, 再创建一个一摸一样的新表
3.修改数据
update 表明 set 列名1=值1,列名2=值2.....where 条件
4.查询
1.排序查询
order by 子句
order by 排序字段1, [排序方式] ,排序字段2 [排序方式]...;
排序方式:ASC 升序;
DESC 降序;
注:如果有多个排序条件,当前面的条件一样时,才会判断第二个条件
2.聚合函数:将一列数据为一个整体,进行纵向的计算
ifNull(exression1,exression2); 如果函数不为空返回exression1,否则返回exression2
1.count; 计算个数
2.max: 计算最大值
3.min: 计算最小值
4.sum: 计算和
5.avg: 计算平均值
注:聚合函数的计算,排除null值
3.分组查询
group by 分组字段;
注:
1.分组之后查询的字段:分组字段 聚合函数
2.where 和Having 的区别
1.where 在分组之前进行判定,如果不满足条件,则不进行分组.
having在分组之后进行判定,如果不满足条件,则不会被查出来
2.where 后不可以跟聚合函数,having可以进行可以进行聚合函数的判定
4.分页查询
limit 开始的索引,分页查询的数目
注:limit只能在mysql数据库中使用
查询的语法:
select
字段列表/聚合函数(字段列表)
from 表名
where 条件列表
group by 分组字段
order by 排序
limit 分页限定;
1.as 起别名,as可以省略。
5.条件查询
where子句后跟条件
运算符
1.between ...and... 在..之间 列:select * from student where age between 20 and 30;
2.in(集合) 包含/为 select * from student where age in(20,22,18); 从学生里查询年龄为20,22,18的信息
3.like 模糊查询
占位符:
_:任意单个字符
%:任意个字符
4.is null 为空
5.is not null 不为空