日期:2014-05-16  浏览次数:20463 次

oracle常用语练习

首先,以超级管理员的身份登录oracle??
??? sqlplus sys/bjsxt as sysdba??
?
然后,解除对scott用户的锁??
??? alter user scott account unlock;??
那么这个用户名就能使用了。??
(默认全局数据库名orcl)??
?
1、select ename, sal * 12 from emp; //计算年薪??
2、select 2*3 from dual;? //计算一个比较纯的数据用dual表??
3、select sysdate from dual;? //查看当前的系统时间??
4、select ename, sal*12 anuual_sal from emp; //给搜索字段更改名称(双引号 keepFormat 别名有特殊字符,要加双引号)。??
5、任何含有空值的数学表达式,最后的计算结果都是空值。??
6、select ename||sal from emp;? //(将sal的查询结果转化为字符串,与ename连接到一起,相当于Java中的字符串连接)??
7、select ename||'afasjkj' from emp;?? //字符串的连接??
8、select distinct deptno from emp;?? //消除deptno字段重复的值??
9、select distinct deptno , job from emp; //将与这两个字段都重复的值去掉??
10、select * from emp where deptno=10;?? //(条件过滤查询)??
11、select * from emp where empno > 10;? //大于 过滤判断??
12、select * from emp where empno <> 10? //不等于? 过滤判断??
13、select * from emp where ename > 'cba';? //字符串比较,实际上比较的是每个字符的AscII值,与在Java中字符串的比较是一样的??
14、select ename, sal from emp where sal between 800 and 1500;? //(between and过滤,包含800 1500)??
15、select ename, sal, comm from emp where comm is null;? //(选择comm字段为null的数据)??
16、select ename, sal, comm from emp where comm is not null;? //(选择comm字段不为null的数据)??
17、select ename, sal, comm from emp where sal in (800, 1500,2000);? //(in 表范围)??
18、select ename, sal, hiredate from emp where hiredate > '02-2月-1981'; //(只能按照规定的格式写)??
19、select ename, sal from emp where deptno =10 or sal >1000;??
20、select ename, sal from emp where deptno =10 and sal >1000;??
21、select ename, sal, comm from emp where sal not in (800, 1500,2000);? //(可以对in指定的条件进行取反)??
22、select ename from emp where ename like '%ALL%';?? //(模糊查询)??
23、select ename from emp where ename like '_A%';??? //(取第二个字母是A的所有字段)??
24、select ename from emp where ename like '%/%%';?? //(用转义字符/查询字段中本身就带%字段的)??
25、select ename from emp where ename like '%$%%' escape '$';?? //(用转义字符/查询字段中本身就带%字段的)??
26、select * from dept order by deptno desc; (使用order by? desc字段 对数据进行降序排列 默认为升序asc);??
27、select * from dept where deptno <>10 order by deptno asc;?? //(我们可以将过滤以后的数据再进行排序)????
28、select ename, sal, deptno from emp order by deptno asc, ename desc;?? //(按照多个字段排序 首先按照deptno升序排列,当detpno相同时,内部再按照ename的降序排列)??
29、select lower(ename) from emp;? //(函数lower() 将ename搜索出来后全部转化为小写);??
30、select ename from emp where lower(ename) like '_a%';? //(首先将所搜索字段转化为小写,然后判断第二个字母是不是a)??
31、select substr(ename, 2, 3) from emp;??? //(使用函数substr() 将搜素出来的ename字段从第二个字母开始截,一共截3个字符)??
32、select chr(65) from dual;? //(函数chr() 将数字转化为AscII中相对应的字符)???
33、select ascii('A') from dual;? //(函数ascii()与32中的chr()函数是相反的 将相应的字符转化为相应的Ascii编码)???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? )??
34、select round(23.232) from dual;? //(函数round() 进行四舍五入操作)??
35、select round(23.232, 2) from dual;? //(四舍五入后保留的小数位数 0 个位 -1 十位)??
36、select to_char(sal, '$99,999.9999')from emp;? //(加$符号加入千位分隔符,保留四位小数,没有的补零)??
37、select to_char(sal, 'L99,999.9999')from emp;? //(L 将货币转化为本地币种此处将显示¥人民币)??
38、select to_char(sal, 'L00,000.0000')from emp;? //(补零位数不一样,可到数据库执行查看)??
39、select to_char(hiredate, 'yyyy-MM-DD HH:MI:SS') from emp;? //(改变日期默认的显示格式)??
40、select to_char(sysdate, 'yyyy-MM-DD HH:MI:SS') from dual;? //(用12小时制显示当前的系统时间)??
41、select to_char(sysdate, 'yyyy-MM-DD HH24:MI:SS') from dual;? //(用24小时制显示当前的系统时间)??
42、select ename, hiredate from emp where hiredate > to_date('1981-2-20 12:24:45','YYYY-MM-DD HH24:MI:SS');?? //(函数to-date 查询公司在所给时间以后入职的人员)??
43、select sal from emp where sal > to_number('$1,250.00', '$9,999.99');?? //(函数to_number()求出这种薪水里带有特