简单查询语句(DQL)
语法格式:select 字段名1,字段名2… from 表名;
提示:任何sql语句以“;”结尾。不区分大小写。
字段可参与数学运算,查询的列可重命名。
select name,sal12 as yearsal from emp;(显示的是名字,年收入)
select name,sal12 as ‘年收入’ from emp;(中文用单引号括起来)
as可以省略。
查询所有字段:select * from emp;//实际开发中不建议用,效率低。
条件查询:
语法格式:select 字段,字段… from 表名 where 条件;
执行顺序:先from,然后where,最后select
查询工资5000的员工姓名:
select name from emp where asl = 5000;
查询xx的工资:
select sal from emp where name = ‘xx’;
大于等于>=,小于等于<=,不等于<>,!=
找出10到20工资之间的员工:
select name,sal from emp where sal >=10 and sal <=20;
select name,sal from emp where sal between 10 and 20;//是闭区间【10,20】
用在字符【 )
在数据库中NULL不是一个值,代表什么都没有,为空。必须用is null或者is not null
and并且,or或者,不确定加()
in等于or:in(‘xx’,‘xxx’);具体值不是区间。
not in: 不在这几个值当中
模糊查询like:%代表任意多个字符,_代表任意一个字符。
找出名字含有o的:select name from emp where name like ‘%o%’;
找出名字第二个是A的:select name from emp where name like ‘_A%’;
数据排序
按照工资升序,找出员工名和薪资:select name,sal from emp order by sal;
默认是升序,asc是升序,desc是降序。
select name,sal from emp order by sal asc;
select name,sal from emp order by sal desc;
按照工资降序,当工资相同时按照名字升序:
select name,sal from emp order by sal desc,name asc;
找出工作岗位是xx的员工,并要求按照工资降序:
select name,job,sal from emp where job =‘xx’ order by sal desc;