1、启动和关闭mysql服务器
service mysql start //开启
service mysql stop //关闭
2、进入mysql
mysql -u root -p密码
3、sql语句分类
- DQL(数据查询语言):查询语句,凡是select语句都是DQL
- DML(数据操作语言):insert、delete、update,对表中的数据进行增删改
- DDL(数据定义语言):create、drop、alter,对表的结构的增删改
- TCL(事务控制语言):commit提交事务,rollback回滚事务
- DCL(数据控制语言):grant授权、revoke撤销权限等
3、数据库
create database 库名; //创建库
drop database 库名; //删除库
show databases; //显示数据库
4、表
use 库名; //使用当前库
select database(); //显示当前操作的数据库
create table 表名(
字段 数据类型(数据长度) 约束符,
字段 数据类型(数据长度) 约束符,
字段 数据类型(数据长度) 约束符
); //创建表
insert into 表名(
字段,.....
) values (
数据,.....
); //增加表信息
show tables; //显示当前数据库下的表
select * from 表名; // 显示该表数据的所有信息
select <字段1,字段2,...> from < 表名 > where < 表达式 >; //按条件查询表中的数据
desc 表名; //表的属性结构
delete from 表名 where 表达式; //按条件删除表中数据
update 表名 set 字段=新值,… where 条件; //按条件修改表中数据
alter table 表名 add 字段 类型; //增加字段
rename table 原表名 to 新表名; //修改表名
show create table 表名; //查看建表语句
5、终止一条语句
\c
6、退出mysql
\q 或者 quit;或者exit;
7、给查询结果的字段(列)重命名
select 字段1,字段2 as 字段 from 表名;
8、条件查询
条件查询需要用到where语句,where语句必须用到from语句表的后面。
8.1执行顺序
select 3
字段,字段.....
from
表名 1
where
条件; 2
9、数据排序
select 字段1,字段2,..... from 表名 order by 字段; //默认升序排
select 字段1,字段2,..... from 表名 order by 字段 asc; //升序排
select 字段1,字段2,..... from 表名 order by 字段 asc; //降序排
select 字段,字段,..... from 表名 order by 字段1 desc,字段2 asc; //先按“字段1“降序排,再按“字段2”升序排 靠前的字段优先级高
9.1执行顺序
select 3
字段,字段.....
from
表名 1
where
条件 2
order by
字段 asc或者asc; 4
10、分组函数
- count 计数
- sum 求和
- avg 求平均值
- max 最大值
- min 最小值
select sum(字段) from 表
分组函数自动忽略 NULL
数据库规定,只要有NULL参与的运算结果一定是NULL
ifnull( ) //空处理函数
ifnull(可能为NULL的数据,被当做什么来处理)。
例如:
select 字段,ifnull( 字段,0) as 字符 from 表
11、分组查询
- group by:按照某个字段或某些字段进行分组
- having :对分组后的数据进行再次选择
分组 函数一般都会和group by联用,并且任何一个分组函数(count、sum、min、max、avg)都是在group by语句执行结束后才会执行的
11.1执行顺序
select 5
字段,字段.....
from
表名 1
where
条件 2
group by
字段 3
having
条件 4
order by
字段 asc或者asc; 6
当一条语句中有group by的话,select后面只能跟分组函数和分组的字段
12、查询结果去重
distinct:只能出现在所有字段的前面
select distinct 字段1 from 表名; //去除查询结果中重复的字段1
select distinct 字段1,字段2,.... from 表名; //字段1、字段2.....联合起来去重