第四章 数据基本查询

数据表的查询原理:
                从源表中根据需要查询的列和条件逐行对数据进行判断并将满足条件的行重新放入一张新表中,这张新表就是我们看到的查询结果表格。
                查询的结果称为结果表,查询的结果集是数据库中的虚拟表,将数据文件的内容以表格的方式进行呈现的结果。

1、查询语法
    select    *    from    表名
*    是SQL中的通配符,用来匹配表中的所有数据列。
   
   
   
  1. select * from users

   select    列名,列名    from    表名    where    条件
   
   
   
  1. --查询users所有的人的姓名
  2. select userName from users
  3. --查询user表中所有人的姓名和他的邮箱
  4. select userName,email from users
  5. --查询没有填写邮箱的用户姓名,年龄和生日
  6. select userName,age,birthday from users where email is null

2、指定列名查询
       select    列    as    显示列名    from    表名
     或者select    列    显示列名    from    表名
第二种相对于第一种少个as,但第一种比较直观,所以尽量使用前者。
   
   
   
  1. --查询员工的姓名和对应的薪水
  2. select first_name||last_name as empName,salary from emp
  3. select first_name||last_name empName,salary from emp

3、为表起别名
           select    *    from    表名 新表名
注意:这里没有as,不同于为列起别名
   
   
   
  1. --为表起别名
  2. select * from users u

4、常量列的查询
源表中没有的列作为常量进行查询, 如下num列下 都是10
   
   
   
  1. --常量列的查询
  2. select first_name||last_name as empName,salary,sysdate as oprate_time,10 as num from emp

5、排序查询
           select    列名    from    表名    where    条件     order    by     列  
升序排列   asc (默认值)
降序排列   desc
   
   
   
  1. --查询员工的姓名和薪资,并按照由低到高的方式进行呈现
  2. --asc表示升序,默认排序就是升序的方式,desc表示降序
  3. select first_name||last_name as empName,salary from emp order by salary asc
  4. --由高到底显示工资
  5. select rownum,first_name,salary from emp order by salary desc
       1)order by 通常对列进行排序,同时也可以对表达式的结果进行排序呢
   
   
   
  1. select * from emp order by salary+500
       2)也可以对数字、日期、字母进行排序
   
   
   
  1. select * from emp order by first_name

       3)可以对多个列进行排序,
多个列的排列原则,优先排序第一个列,当第一个列的值存在重复的情况,才会对第二个列进行排序,并且每个排序列需要单独设置排序策略
   
   
   
  1. --要求入职时间升序排列,薪资降序排列
  2. select * from emp order by hire_date asc,salary desc

6、rowid 和 rownum
rowid
  
  
  
  1. select rowid from emp
结果如下:
 
rownum
    rownum在结果集生成后由Oracle自动分配,且必须从1开始,所有基于rownum的查询也必须从1开始。
   
   
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值