sql--常用命令(学习笔记,持续更新)
1,如何删库跑路:drop database 表名
2,查看表结构:desc 表名
3,终止一条正在编写的语句:\c
退出mysql:\q , QUIT或EXIT
查看其他库中的表:show tables from <database name>
4,查看创建表的语句:show creat table 表
5,简单的查询语句(DQL)
语法格式:
select 字段名1,字段名2,.... from 表名;
注意:任何一条sql语句都是以分号结尾
sql语句不区分大小写
常见用法:
查询所有字段:select * from 表名;//星号表示所有
查看当前使用的是哪个数据库:select database();
查看mysql的版本号:select version();
对某一列直接进行计算并进行重命名:select enname , ‘薪水’ * 12 as yearsal from 表名;
注意:当别名中有中文时,中文需要加单引号。虽然mysql支持双引号,但尽量别用
6,条件查询
语法格式:
select 字段,字段... from 表名 where 条件;
执行顺序:
先from,然后where,最后select
常见运算符:
=:等于
<>或!=:不等于
< , > , <= , >= :小于,大于,小于等于,大于等于
between...and...:两个值之间(闭区间,使用时左小右大,可用在数字方面和字符串方面)
is null:为null
and:并且
or:或者
in:包含
not:取非,主要用在is或in中
like:模糊查询,支持%或下划线匹配(%代表任意多字符,_代表任意1个字符,\_代表字符下划线)
常见用法:
查询工资等于5000的员工姓名:select ename from emp where sal = 5000;
查询ename为SMITH的员工的工资:select sal from emp where ename = 'SMITH';
查询工资在1100和3000之间的员工:select ename,sal from emp where sal >= 1100 and sal <= 3000;
select ename,sal from emp where sal between 1100 and 3000;
查询名字首字母在A到C之间:select ename from emp where between ‘A’ and ‘D’ //字符串时左闭右开
7,数据库中NULL不是一个值不能用等号衡量。必须使用is null或者is not null,代表什么也没有,为空。
8,and的优先级大于or,当运算符的优先级不确定的时候加括号
找出薪资大于1000的并且部门编号是20或30部门的员工:
select ename,sal,deptno from emp where sal >1000 and (deptno = 20 or deptno = 30) ;
9, in 在几个值当中,not in:不在几个值当中
找出工作岗位是MANAGER和SALESMAN的员工:
select ename ,job from emp where job in (‘SALESMAN’ , 'MANAGER') ;
9,模糊查询like
找出名字当中有a的?
select ename from emp where ename like ‘%a%’;
10,排序(默认为升序)
升序:asc 降序:desc
按照工资降序排列,当工资相同时再按照名字的升序排列:
select ename,sal from emp order by sal desc,ename asc;
注意:越靠前的字段越能起到主导作用。只有当前面的字段无法完成排序的时候,才会启用后面的字段
11,执行顺序
select 3
*
from 1
tablename
where 2
条件
order by 4
注意:order by是最后执行的
12,分组函数:
count:计数
sum:求和
avg:平均值
max:最大值
min:最小值
注意:所有的分组函数都是对某一组数据进行操作的,其特点是输入多行,最终输出的结果是1行
例. 找出工资总和?
select sum(sal) from emp;
15,单行处理函数:输入一行,输出一行
例如:
计算每个员工的年薪:select ename,ifnull(comm,0) as comm from emp;
注意:之所以这么写,是因为所有的数据库规定,只要有NULL参与的运算结果一定是NULL(有特例)