查询emp中的所有表:
select * from emp; 在日常工作中 不建议使用* 因为查询效率较低
常用命令:
select database(); 查看当前使用的是哪个数据库
\c 命令,结束一条语句。
exit 命令,退出mysql。
查看创建表的语句: show create table emp;
查询语法格式: select 字段名1,字段名2,字段名3,.... from 表名;
注意:标准sql语句中要求字符串使用单引号括起来。虽然mysql支持双引号,尽量别用。
可以给字段名设为中文:
select ename,sal * 12 as '年薪' from emp;
条件查询。 语法格式: select 字段,字段... from 表名 where 条件;
执行顺序:先from,然后where,最后select
查询工资等于5000的员工姓名? select ename,sal from emp where sal = 5000;
找出工资在1100和3000之间的员工,包括1100和3000?
between前面是需要比较的字段
select ename,sal from emp where sal between 1100 and 3000; // between...and...是闭区间 [1100 ~ 3000]
select ename,sal from emp where sal between 3000 and 1100; // 查询不到任何数据
between and在使用的时候必须左小右大。
between and除了可以使用在数字方面之外,还可以使用在字符串方面。 select ename from emp where ename between 'A' and 'C';
找出哪些人津贴为NULL? 在数据库当中NULL不是一个值,代表什么也没有,为空。 空不是一个值,不能用等号衡量。 必须使用 is null或者is not null select ename,sal,comm from emp where comm is null;
找出工作岗位是MANAGER和SALESMAN的员工? select ename,job from emp where job = 'MANAGER' or job = 'SALESMAN'; or或者的意思
in等同于or:找出工作岗位是MANAGER和SALESMAN的员工? select ename,job from emp where job = 'SALESMAN' or job = 'MANAGER'; select ename,job from emp where job in('SALESMAN', 'MANAGER');
select ename,job,sal from emp where sal in(800, 5000); // in后面的值不是区间,是具体的值。
not in: 不在这几个值当中。 select ename,job from emp where sal not in(800, 5000);
模糊查询like ? 找出名字当中含有O的? (在模糊查询当中,必须掌握两个特殊的符号,一个是%,一个是_) %代表任意多个字符,_代表任意1个字符。
排序(升序、降序)
按照工资升序,找出员工名和薪资? select ename,sal from emp order by sal;
排序:默认就是升序