SQL练习(二)

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'是否抱错,为什么?
不会,隐式类型转换

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值