Oracle之SQL——单表查询

来源:互联网 发布:ios9 数据流量 开关 编辑:程序博客网 时间:2024/06/08 19:49

**

1、查询表中的所有行和列

使用select * from table_name可以获取所有的行和列
**
这里写图片描述
**

2、从表中检索部分行和列

**
如查看公司工资大于1500的人员的信息:
这里写图片描述
**

3、查找空值

**
查询某一列为空的值可以使用is null或is not null,在实际的操作中,null是不能用“=”运算符来替代的。
如下操作:
查找comm(提成)为Null的员工信息
这里写图片描述
查找comm 不为null的员工信息
这里写图片描述
注意,null不支持加减乘除大小及相等的比较,否则只能为Null

SQL> select 1 + null jiafa from dual;     JIAFA----------SQL> 
SQL> select 1 - null jianfa from dual;    JIANFA----------SQL> 
SQL> select 1 * null chengfa from dual;   CHENGFA----------SQL> select 1 / null chufa from dual;     CHUFA----------SQL> 

并且对于其它函数,在使用时最好测试一下有Null时会返回什么结果。
这里写图片描述
**

4、如何将空值转换为实际值

**
使用coalesce函数,coalesce函数可以有多个参数列表,它直到遇到非Null值时,则返回结果,如果表达式中都为Null,则返回一个空值。
这里写图片描述
使用coalesce处理一下,
这里写图片描述
当然这里也可以使用nvl来处理空值,但是使用nvl来处理就会嵌套很多,SQL读起来就很不方便
这里写图片描述
**

5、查找满足多个条件的行

**
示例:查找部门10中所有的员工,所有得到提成的员工,以及部门20中工资不超过2000的员工的信息
这里写图片描述
**

6、从表中检索部分列

**
如果想从表中检索部分列,必须了解标的结构之后才可以使用指定的列明来查询。
示例:查询公司员工的所有姓名及工资。
这里写图片描述
**

7、为列取有意义的别名(见名知义原则)

说明,由于我使用的数据库没有设置中文字符集,在使用中文的时候会出现字符乱码的情况,因此我在这里使用PL/SQL developer。
**
这里写图片描述
**

8、在where字句中引用取别名的列

**
这里写图片描述
**

9、使用列拼接功能

**
示例:查询10号部门中员工的工作职位
这里写图片描述
**

10、在select中使用逻辑条件

**
查询员工的工资,如果工资大于4000则返回高工资,如果工资小于1500则返回低工资,否则返回一般工资。
这里写图片描述
**

11、限制返回的行数

**
限制返回的行数Oracle中通常使用rownum和rowid来实现,Mysql使用Limit来限制返回的行数
Oracle当中
这里写图片描述
Mysql当中
这里写图片描述
说明,我使用的MYSQL的字符集设置与表中的数据的字符集编码格式不一致,因此导致表中的数据乱码。在这里只是为了演示一下mysql中limit的使用。
**

12、从表中随机返回数据

**
这里写图片描述