……………………………………………………………精品资料推荐…………………………………………………
1.desc(描述) emp 描述emp这张表 2.desc dept 部门表 3.desc salgrade 薪水等级 4.select *from table_name 查找表中的元素 5.dual 是系统中的一张单行空表 6.select *from dual
7.select sysdate from dual 取出系统时间
8.select ename,sal*12 \取的别名) from emp; 查找用户姓名和用户的年薪
9.任何含有空值的数学表达式的值都是空值 select ename,sal*12+comm from emp;
10.select ename||sal from emp 其中的||相当于将sal全部转化为字符串 11.表示字符串的方法 select ename ||'ajjf' from emp;
12.如果其中有一个单引号就用2个单引号来代替他 select ename||'sakj' 'lds'from emp;
13.select distinct deptno from emp (去除部门字段中重复的部分,关键字distinct)
14.select distinct deptno,job from emp;(去除这2个字段中重复的组合) 15.select *from dept where deptno=10; 取出条件(取出部门编号为10的记录)
16.select * from emp where ename='CLIRK'; 取出部门中姓名为clirk的记录(注意取出过程中ename用单引号隔开)
17.select ename,sal from emp where sal>1500; 取出部门中薪水大于1500的人的姓名
1
……………………………………………………………精品资料推荐…………………………………………………
18.select ename,sal,deptno from emp where deptno<> 10 取出部门中的部门号不等于10的
19.select ename,sal,deptno from emp where ename>'CBA' 取出部门中员工名字大于CBA的员工(实际比较的是ACIIS码)
20.select ename,sal from emp where sal between 800 and 1500
select ename,sal from emp where sal>=800 and sal<=1500; (取出800和1500之间的数)
21.select ename,sal,comm from emp where comm is null (选出其中的空值) select enmae,sal,comm from emp where comm is not null(选出其中的非空值)
22.select ename,sal,comm from emp where sal in (800,1500,2000);取出这3者之中的
select ename,sal,comm from emp where ename in('simth');
23. select ename,sal,hiredate from emp where hiredate>'3-4月-81';取出符合条件的日期,月前面的数字只能为1,2,3,4,5,6,7,8,9,10,11,12; 日期且要加单引号。
24.select ename,sal,from emp where sal>1000 or deptno=10; 找出工资薪水大于1000或者部门号等于10的员工
25.select ename,sal from emp where sal not in(500,1000); 查找薪水不是500和1000的员工姓名和月薪
select ename,sal from emp where sal not between 500 and 1000; 查找薪水不在500到1000的员工姓名和月薪
26.select ename,sal from emp where ename like '%ALL%'; select ename,sal from emp where ename like '_%A%'; select ename,sal from emp where ename like '_A%';
select ename,sal from emp where ename like '__A%';
2
……………………………………………………………精品资料推荐…………………………………………………
查找姓名中含有ALL的客户信息,一个横线代表一个通配符
27.select ename,sal from emp where ename like '_%$%%' escape '$'; 自己指定转义字符,当搜索含有%时,加\\或$。
select ename,sal from emp where ename like '_%\\%%'; 查找中间含有%相匹配的客户信息,运用转义字符
28.select * from dept order by deptno 对表中元素按部门号排序
select *from dept order by deptno desc 默认为升序,asc省略 ,可以用desc按降序
29.select ename,sal from emp where sal <>1000 order by sal desc 按照查询条件来查询,并排序(asc升序排列)
30.select ename,sal*12 from emp where ename not like '_%A%' and sal>800 order by sal desc
31.select lower(ename) from emp 将ename都转化为小写 lower是函数能将字母转化为小写
32.select ename from emp where lower(ename) like '_%a%'; 找出ename 中所有的含有a的字符
33. select ename ,substr(ename,2,3 ) from emp; 从第2个字符开始截取3个字符
34. select chr(65) from dual; 将65转化为字符 35. select ascii('A') from dual; 将ACSII码转化为字符串 36.select round(23.565)from dual 四舍五入 36.select round(23,4565,2)from dual 四舍五入到第二位
3
……………………………………………………………精品资料推荐…………………………………………………
37. select to_char(sal,'$999,999,999') from emp; 按指定格式输出 select to_char(sal,'L99,999,9999') from emp; L代表本地字符 38.select hiredate from emp
select to_char(hiredate,'YYYY-MM-DD HH:MI:SS') from emp; 时间格式的显示
select to_char(sysdate,'YYYY-MM-DD HH:MI:ss') from dual; 十二小时制显示系统时间
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; 二四小时制显示系统时间
39. select ename,hiredate from emp
where hiredate < to_date('2005-2-3 12:32:23','YYYY-MM-DD HH:MI:SS');
40 select sal from emp where sal>to_number('$1,250.00','$9,999.99'); 取出比它大的一切字符串(把特定格式的数字转化成字符) 41 select ename,sal+nvl(comm,0) from emp;
comm值为空的用0来替换,单行函数(以一条记录为条件)一条对一条 42.select Max(sal) from emp; select Min(sal) from emp; select avg(sal) from emp; select sum(sal) from emp;
select count(*) from emp; 查看表中一共有多少条记录
select count(*) from emp where deptno=10; 查找部门10一共有多少人;
43.select avg(sal),deptno from emp group by deptno; 按部门号进行分组 select deptno,job,max(sal) from emp group by job,deptno; 按工作和部门号进行分组;
44.select ename from emp where sal=(select max(sal) from emp); 子查询,查找
4
……………………………………………………………精品资料推荐…………………………………………………
部门中薪水最高的员工姓名
45.group by 注意:出现在select列表中的字段,如果没有出现在组函数中必须出现在group by子句中
46.select avg(sal),deptno from emp group by deptno having avg(sal)>2000; 选出部门中平均薪水大于2000的部门,
47.select * from emp where sal>100 group by deptno having ..........order by........ 先取数据--过滤数据------分组----对分组限制-------排序
48.select avg(sal) from emp where sal>2000 group by deptno having avg(sal)>1500 order by avg(sal) desc;
查找部门中平均薪水打印2000的员工并按部门号进行排序,查询分组后的平均薪水必须大于1500,查询结果按平均薪水从低到高排列 49.select ename from emp where sal>(select avg(sal) from emp); 查找出员工中薪水位于部门平均薪水之上的所有员工 50. select ename,sal ,emp.deptno from emp
join(select max(sal) max_sal ,deptno from emp group by deptno) t
on(emp.sal=t.max_sal and emp.deptno=t.deptno);
查找每个部门中薪水最高的 连接
51.select e1.ename,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno; 表的自连接
52.select dname,ename from emp cross join dept 交叉连接,笛卡尔 SQL99中的新语法
53.select ename,dname from emp join dept on(emp.deptno=dept.deptno); 54.select ename,dname from emp join dept using(deptno); 查找emp和dept表中deptno相同的部分。
55. select ename,dname,grade from emp e join dept d on(e.deptno=d.deptno)
join salgrade s on(e.sal between s.losal and s.hisal) -- (三表查找) where ename not like '_%A%';
56.select e1.ename,e2.ename from emp e1 join emp e2 on(e1.mgr=e2.deptno);
5