http://www.cnblogs.com/huyong/archive/2011/06/16/2082581.html
有一道题不会,之后再看看教程。
/*
第二篇
*/
1. 找出EMP表中的姓名(ENAME)第三个字母是A 的员工姓名。
select emp.ename from emp where emp.ename like '__A';
2. 找出EMP表员工名字中含有A 和N的员工姓名。
select emp.ename from emp where emp.ename REGEXP '.*[A].*' and REGEXP '.*[N].*';
或者
select emp.ename from emp where emp.ename like '%A%' and like '%N%';
3. 找出所有有佣金的员工,列出姓名、工资、佣金,显示结果按工资从小到大,佣金从大到小。
select emp.ename as ename,(emp.sal+emp.comm) as salery,emp.comm as comm where emp.comm != NULL order by salery,comm DESC;
4. 列出部门编号为20的所有职位。
select DISTINCT emp.job from emp where emp.deptno = '20' ;
5. 列出不属于SALES 的部门。
select dept.* from dept where dept.dname!='SALES'
6. 显示工资不在1000 到1500 之间的员工信息:名字、工资,按工资从大到小排序。
select emp.*,(emp.sal + emp.comm) as salery from emp where salery not between 1000 and 1500 order by salery DESC;
7. 显示职位为MANAGER 和SALESMAN,年薪在15000 和20000 之间的员工的信息:名字、职位、年薪。
8. 说明以下两条SQL语句的输出结果:
SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;
显示没有佣金的人的员工号和佣金
SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;
这个查询,查询不到结果。NULL=NULL 结果是False
9. 让SELECT 语句的输出结果为
SELECT * FROM SALGRADE;
SELECT * FROM BONUS;
SELECT * FROM EMP;
SELECT * FROM DEPT;
……
SELECT * FROM SALGRADE UNION
SELECT * FROM BONUS UNION
SELECT * FROM EMP UNION
SELECT * FROM DEPT;
列出当前用户有多少张数据表,结果集中存在多少条记录。
这道题不懂。
10. 判断SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否抱错,为什么?
不会,隐式类型转换