暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 数据库如何查询列

西安川石 2022-09-20
1062


每天一个测试技术

只需几分钟

川石信息 带你学点更好的


川石信息|腾讯课堂

免费试学 | 性能测试




SELECT查询


    SELECT [DISTINCT] {*,column alias,..}


    FROM table alias
    WHERE 条件表达式
    GROUP BY 分组
    HAVING 分组条件
    ORDER BY 排序字段列表 [asc|desc]

    左右拉动查看完整代码


    执行顺序


    from --> where --> group --> having --> select --> order by



    查询列(字段)

    ● SELECT * FROM 表名; ->查询某个表中所有的记录的所有字段信息


    ● SELECT 列名 FROM 表名; ->查询某个表中所有的记录的指定字段信息


    ● SELECT 列名1,列名2 FROM 表名; -> 查询某个表中所有的记录的字段1 字段2


    ● SELECT distinct 列名 FROM 表名; ->去除重复记录


    ● SELECT 表达式 FROM 表名; ->查询表达式


    ● SELECT xxx as 别名 FROM 表名 表别名 ->使用别名


    查询特定字段


      -- 检索单个列
      select ename from emp; -- 查询雇员姓名
      -- 检索多个列
      select deptno,dname,loc from dept; -- 查询部门表的deptno,dname, loc 字段的数据。

      左右拉动查看完整代码


      *代表通配符,能够查询表中所有字段


        -- 检索所有字段
        select * from emp; -- 查询emp表所有字段

        左右拉动查看完整代码



        distinct去重

        使用distinct去重,确保查询结果的唯一性


          select distinct deptno from emp; -- 去重

          左右拉动查看完整代码


          注意:如果有多条重复的数据,使用distinct可实现去重,如果只有单字段重复,则无法实现多字段去重,只能实现单字段。


          distinct只是实现查询去重,对原数据表不做改变


          如果要实现对表数据进行去重


            -- 通过对rowid取反,删除多余重复的数据
            delete from 表名
            where rowid not in
            -- 将重复数据通过分组合并在一起,取最小的rowid
            (select min(rowid) from 表名 group by 分组条件);

            左右拉动查看完整代码



            别名

            使用别名便于操作识别 、隐藏底层信息。存在字段别名和表别名


              select ename as "雇员 姓名" from emp;
              select ename "雇员姓名" from emp;
              select ename 雇员姓名 from emp;
              select ename as 雇员姓名 from emp;
              select ename as " Ename" from emp;

              左右拉动查看完整代码


              ● as: 字段别名可以使用as;表别名不能使用as


              ● "":原样输出,可以存在 空格与区分大小写



              字符串

              使用单引号''来区分字符串,而非双引号"",字符串拼接使用 ||


                select 'my' from emp;sql
                select ename||'a'||'-->' info from emp;

                左右拉动查看完整代码



                伪列

                不存在的列,构建虚拟的列,每个数据库里面都存在虚表dual


                  -- 1*2,cmj就是伪列
                  select empno, 1*2 as count,'cmj' as name,deptno from emp;

                  左右拉动查看完整代码



                  null

                  null 遇到数字参与运算的结果为 null,遇到字符串为空串


                    select 1+null from dual; -- 结果为null
                    select '1'||null from dual; -- 结果为1

                    左右拉动查看完整代码


                    查询非空数据


                      -- 通过is not null 来筛选非空数据
                      select * from emp where comm is not null;

                      左右拉动查看完整代码


                      去空


                      通过nvl(去空值,代替空的值)替换空值达到去空效果


                        -- 如果comm的值为空,则使用0代替
                        select nvl(comm,0) from emp;

                        左右拉动查看完整代码




                        今天的内容就学习到这里了,每个工作日小编都会更新一个有关测试的小知识,希望大家多多关注我们,一起来学习喔!


                        温馨提示:添加老师微信【13691729932】可以获取全套软件测试自学资料!


                         往期回顾 

                        Oracle 数据库使用事务确保数据的安全


                        扫码邀你加入

                        软件测试群

                        免费软件测试课

                        川石课堂

                        文章转载自西安川石,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                        评论