目录
DDL操作数据库
- 查询
SHOW DATABASES;
- 创建
创建数据库:
create database 数据库名称;
创建数据库(判断,如果不存在则创建):
create database if not exists 数据库名称;
- 删除
删除数据库:
drop database 数据库名称;
删除数据库(如果存在则删除):
drop database if exitts 数据库名称;
- 使用数据库
查看当前使用的数据库 :
select database();
使用数据库 :
use 数据库名称;
DDL–操作表
创建(Create)
创建表:
create table 表名(字段名1 数据类型1,字段名2 数据类型2,...,字段名n 数据类型n);
(末尾不要添加逗号)
查询(Retrieve)
查询当前数据库下所有表名称 :
show tables;
查询表结构 :
desc 表名称;
修改(Update)
1.修改表名 :
alter table 表名 rename to 新的表名;
2.添加一列 :
alter table 表名 add 列名 数据类型;
3.修改数据类型 :
alter table 表名 modtfy 列名 新数据类型;
4.修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
5.删除列
ALTER TABLE 表名 DROP 列名;
删除(Delete)
1.删除表
DROP TABLE 表名;
2.删除表时判断表是否存在
DROP TABLE IF EXISTS 表名;
-
DML–操作数据
1.添加表数据(inset)
1.给指定的列添加数据
insert into 表名(列名1,列名2,...) values (值1,值2,...);
2.给全部列添加数据
insert into 表名 values (值1,值2,...);
3.批量添加数据
insert into 表名(列名1,列名2,..) values (值1,值2,...),(值1,值2,...)...;
2.修改表数据(update)
update 表名 set 列名1=值1,列名2=值2,...[where 条件];
注意:修改语句中如果不加条件,则将所有数据都修改
3.删除(delete)
delete from 表名 [where 条件];
注意:删除语句中如果不加条件,则所有数据都删除
-
DQL–查询
- select 字段列表
- from 表名列表
- where 条件列表
- group by 分组列表
- having 分组后条件
- order by 排序字段
- limit 分页限定
- 基础查询
1.查询多个字段
select 字段列表 from 表名;
select * from 表名;--查询所有数据
2.去除重复记录
select distinct 字段列表 from 表名;
3.起别名:
as:as 也可以省略
- 条件查询(where)
select 字段列表 from 表名 where 条件列表;
- 分组查询(group by)
聚合函数
1.概念:将一列数据作为整体,进行纵向计算.
2.聚合函数分类:
函数名 | 功能 |
---|---|
count(列名) | 统计数量(一般选用不为null的列) 取值:1.主键 2.* |
max(列名) | 最大值 |
min(列名) | 最小值 |
sum(列名) | 求和 |
avg(列名) |
平均值 |
3.聚合函数语法:
select 聚合函数名(列名) from 表;
注意:
null值不参与所有聚合函数运算
- 分组查询
1.分组查询语法
select 字段列表 from [where 分组前条件限定] group by 分组字段名 [having 分组后条件过滤];
注意:
分组之后,查询的字段为聚合函数和分组函数,查询其他字段为任何意义
where和having区别:
- 执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤.
- 可判断的条件不一样:where不能对聚合函数进行判断.having可以.
执行顺序:where>聚合函数>having
- 排序查询(order by)
select 字段列表 from 表名 order by 排序字段名1 [排序方式1],排序字段名2 [排序方式2]...;
排序方式:
ASC:升序排序(默认值)
DESC:降序排序
注意:
如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序
- 分页查询(limit)
1.分页查询语法
select 字段列表 from 表名 limit 起始索引, 查询条目数;
-起始索引:从0开始
计算公式:起始索引=(当前页码-1)*每页显示的条数
tip:
分页查询limit是MySql数据库的方言
Oracle分页查询使用rownumber
SQL server分页查询使用top