MySQL常见命令
1. 查看当前所有的数据库
show databases;
2.打开指定的数据库
use 库名;
3.查看当前库的所有表
show tables;
4.查看其它库的所有表
show tables from 库名;
5.创建一个表
create table 表名(
列名 列类型,
列名 列类型,
.......
)
6.创建属于我们自己的数据库
create database 数据库名;
7.删除数据库
drop database 库名;
8.查看表结构
desc 表名;
9.查看服器的版本
方式一:登录到MySQL服务端
select version();
方式二:没有登陆到MySQL服务端
mysql --version 或 mysql --V
10.查看创建表的建表语句
show create table 表名;
11. 查看当前MySQL支持的搜索引擎
show engines \G;
12. 设置事物的全局隔离级别
set globle transaction isolation level read uncommitted;
13. 查看事物的全局隔离级别
select @@global.transaction_isolation;
SQL语句分类
DQL(数据查询语言):查询语句,凡是select语句都是DQL
DML(数据操作语言):insert delete update,对表当中是数据进行增删改
DDL(数据定义语言):create drop alter,对表结构的增删改
TCL(事物控制语言):commit提交事物,rollback回滚事物
DCL(数据控制语言):grant授权、revoke撤销权限等
1.DQL语句
(1)简单查询
语法格式:
select 字段名1,字段名2,字段名3,...... from 表名; //查询部分字段
select * from 表名; //查询全部字段
(2)条件查询
select ename,sal * 12 as yearsal from emp; //表中只有月薪,但是要查年薪并显示出来。(as管关键字可以省略,以空格代替
语法格式:
select
字段,字段...
from
表名
where
条件;
执行顺序:先from,然后where,最后select
支持以下运算符:
运算符 | 说明 |
= | 等于 |
<>或!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
between … and …. | 两个值之间,等同于 >= and <= |
is null | 为null(is not null 不为空) |
and | 并且 |
or | 或者 |
in | 包含,相当于多个or(not in不在这个范围中) |
not | not可以取非,主要用在is 或in中 |
like | like称为模糊查询,支持%或下划线匹配 %匹配任意个字符 下划线,一个下划线只匹配一个字符 |
补充:
(1)between...and ...
①用于查询数字,左小右大,并且两端都为闭区间;
②用于查询字符,比如名字,也是左小右大,但是左闭右开。
(2)在数据库中,NULL不是一个值,代表什么也没有,为空。查询使用is null或is not null
(3)and和or的优先级:and的优先级大于or的优先级
注意:当运算符的优先级不确定的时候加个小括号
(4)in等同于or:in()表示的不是一个区间
- select语句总结
一个完整的select语句格式如下
select 字段 from 表名 where ……. group by …….. having …….(就是为了过滤分组后的数据而存在的—不可以单独的出现) order by …….. |
以上语句的执行顺序
- 首先执行where语句过滤原始数据
- 执行group by进行分组
- 执行having对分组数据进行操作
- 执行select选出数据
- 执行order by排序
原则:
①能在where中过滤的数据,尽量在where中过滤,效率较高。having的过滤是专门对分组之后的数据进行过滤的。
②having与group by一定是一起用的,having不能单独用
③分组函数不能出现在where后面
④当使用group by时,select后面只能跟参与分组的字段和分组函数,不能跟其他字段