Oracle的简单查询语句

显示每条命令所需的时间的指令
//这个指令以后,每个操作后面都有操作所需要的时间
sql>set timing on;


查询表(对表操作的最重要的操作)

1)查看表结构
sql>desc dept;


2)查询所有列(这样查询效率低)
sql>select * from dept;


3)查询指定列(这样查询比select * 效率高)
sql>select ename,sal,job,deptno from emp;


4)如何取消重复行
sql>select distinct deptno,job from emp;


5)查询数据库中数据的量
sql>select count(*) from 表;

6)如何使用算数表达式

?显示每个雇员的年工资

SQL> select ename,sal*12 from emp;


7)使用列的别名(直接在属性的后面加上"别名")
sql>select ename "姓名",sal*12 as "年收入" from emp;

8)如何处理null值(只要在算数表达式中存在null的成分,则整个算数表达式都是null值)

例如:
SQL> select ename "姓名",sal*12+comm*12 "年工资" from emp;
在算数表达式sal*12+comm*12中comm代表的奖金,有的人没有奖金,即这些人的comm的值是null,则这些人的sal*12+comm*12的值是null

使用nvl函数来处理
SQL> select ename "姓名",sal*12+nvl(comm,0)*12 "年工资" from emp;
其中nvl(comm,0)代表的意思就是:如果如果comm查出来是空值,那么用0来替代


9)如何连接字符串(||)
sql>select ename || 'is a' || job from emp;



如何快速增加数据中的数据,使用自增!
例如:
SQL> insert into users (userid,username,userPass) select * from users;
//这样数据库中的数据就会成倍的增加

1)使用where子句
?如何显示工资高于3000的员工
SQL> select * from emp where sal>3000;

?如何查找1982.1.1后入职的员工
SQL> select * from emp where hiredate>'1-1月-1982';
或者先改变日期格式然后在查找
SQL> alter session set nls_date_format='yyyy-mm-dd';
Session altered

SQL> select * from emp where hiredate>'1982-1-1';

?如何显示工资在2000到2500的员工情况
方法1:
SQL> select * from emp where sal between 2000 and 2500;
这是是包括2000和2500的
如果不要2000就在后面加上and sal!=2000
如果不要2000和2500就在后面家上and sal!=2000 and sal!=2500;


方法2:
SQL> select * from emp where sal>=2000 and sal<=2500;

2)如何使用like操作符
%:表示0到多个字符
_:表示单个字符


?如何显示首字符为S的员工的姓名和工资
SQL> select ename,sal from emp where ename like 'S%';

?如何显示第三个字符为N的员工的姓名和工资
SQL> select ename,sal from emp where ename like '__N%';


3)在where条件中使用in
?如何使用empno为123 45 800...的雇员情况
SQL> select * from emp where empno in(123,45,800);

4)使用is null的操作符
?如何显示没有上级的雇员你的情况
在数据表中特别有个列是用来放mgr(上级)
SQL> select * from emp where mgr is null;

1)使用逻辑操作符号
?查询工资高于500或者岗位为MANAGER的雇员,同时还要满足他们的姓名首写字母为大写的J
SQL> select * from emp where (sal>500 or job='MANAGER') and ename like 'J%';
要加上一个括号,否则后面的那个就不是约束条件了


2)使用order by字句(默认是升序,如果后面加了desc的话就变成降序)
默认的排序顺序为升序ASC。如果要降序,必须书写DESC关键字
注意:若省略ASC和DESC,则默认为ASC,即升序排序。


?如何按照工资的从低到高的顺序显示雇员的信息
SQL> select * from emp order by sal;


?如何按照工资的从高到低的顺序显示雇员的信息
SQL> select * from emp order by sal desc;


?按照部门号升序而雇员的工资降序排列
SQL> select * from emp order by deptno,sal desc;


?按照部门号升序而雇员的工资升序排列
SQL> select * from emp order by deptno,sal;


?按照部门号升序而雇员的入职时间降序排列
SQL> select * from emp order by deptno,hiredate desc;



3)使用列的别名排序
SQL>select ename,sal*12 "年薪" from emp order by "年薪" asc;

别名需要使用""号圈中,如果是中文别名就可以用''圈中。

猜你喜欢

转载自1124117571.iteye.com/blog/2284834