mysql 操作命令的基本使用
1、登录和登出数据库
1.1 数据库登录
mysql -uroot -p
1.2 退出数据库
quit 和 exit
或
ctrl + d
2、数据库操作
2.1 查看所有数据库
show databases;
2.2 查看当前使用的数据库
select database();
2.3 使用数据库
use 数据库名;
2.4 创建数据库
create database 数据库名 charset=utf8;
2.5 删除数据库(慎用)
drop database 数据库名;
2.6 查看版本
select version();
2.7 显示当前时间
select now();
2.8 查看当前数据库中所有表
show tables;
2.9 查看表结构
desc 表名;
2.10 创建表结构的语法
CREATE TABLE table_name(
字段名称 数据类型 可选的约束条件,
column1 datatype contrai,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY(one or more columns)
);
2.11 修改表-添加字段
alter table 表名 add 列名 类型;
2.12 修改表-修改字段-重命名版
alter table 表名 change 原名 新名 类型及约束;
2.13 修改表-修改字段不重命名版
alter table 表名 modify 列名 类型及约束;
2.14 修改表-删除字段
alter table 表名 drop 列名;
2.15 删除表(慎用)
drop table 表名;
2.16 查看表的创建语句-详细过程
show create table 表名;
3 数据库的进阶操作
3.1 消除重复行
distinct可以消除重复的行。
select distinct 列1,... from 表名;
3.2 比较运算符
等于: =
大于: >
大于等于: >=
小于: <
小于等于: <=
不等于: != 或 <>
3.3 逻辑运算符
and
or
not
3.4 模糊查询
like
%表示任意多个任意字符
_表示一个任意字符
3.5 范围查询
1. in表示在一个非连续的范围内
2. between ... and ...表示在一个连续的范围内
3.6 空判断
is null 判断为空
is not null 判断为非空
3.7 排序
select * from 表名 order by 列1 asc|desc [,列2 asc|desc,...]
3.8 分页查询
select * from 表名 limit start=0,count
3.9 聚合函数
max(列) 表示求此列的最大值
min(列) 表示求此列的最小值
sum(列) 表示求此列的和
avg(列) 表示求此列的平均值
使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。
使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。
使用COUNT( distinct column) 对特定列中具有值的行进行计数,并返回指定列的不同值的数目,忽略NULL值
3.10 分组
group by 关键字能根据1个或多个字段对数据进行分组
group_concat函数作用就是将每个分组中的每个成员的指定个字段拼接在一行中显示
聚合函数在和 group by 结合使用时, 统计的对象是每个分组
having 是对分组结果进行条件过滤
with rollup在分组结果最后新增一行完成汇总显示。
3.11 连接
连接的目的主要将多张的相关数据汇总一个结果集中
连接分为内连接(inner join), 左连接(left join), 右连接(right join)
on 关键字用于 设置多表连接操作的条件
内连接 inner join 的结果是表与表之间满足连接条件的数据
外连接 outer join 是在内连接的基础上添加了外部数据,外部数据来自于左表(右表数据位置对应填充NULL) 则是左连接;外部数据来自于右表(左表数据位置对应填充NULL)则是右连接。
注意: 能够使用连接的前提是 多表之间有字段上的关联。
3.12 子查询
标量子查询: 子查询返回的结果是一个数据(一行一列)
列子查询: 返回的结果是一列(一列多行)
列子查询使用格式: 主查询 where 条件 in (列子查询)
行子查询: 返回的结果是一行(一行多列)
行子查询使用格式: 主查询 where (字段1,2,...) = (行子查询)
4 总结
1、优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符
2、and比or先运算,如果同时出现并希望先算or,需要结合()使用