欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle 单表查询

程序员文章站 2022-07-08 14:22:59
...

基本使用

 --查询表的所有数据  select * from 表名;*代表所有
    select * from emp;



  --查询表中指定字段的值 select 字段名1,字段名2,...from表名
    select empno from emp;
    select empno,ename from emp;



  --给查询结果中的字段使用别名
    --在字段名后使用关键字 字段名 as "别名"
    --作用:方便查看查询结果
    --注意:as关键字可以省略不写,别名中没有特殊字符双引号也可以省略不写。           
    select empno 员工编号,ename"员工   姓名",job as 工作,mgr as "领导编号" from emp;



  --连接符:select  字段名||'字符'||字段名||..... from 表名
     --||为sql语句的字符链接符,使用在select和from之间
     --字符链接格式为 字段名||'字符'||字段名
     --注意:一个拼接好的连接在结果集中是作为一个新的字段显示,可以使用别名优化字段显示。
    select   empno||'的姓名是'||ename as"信息",job||'哈哈'||mgr from emp;




  --去除重复 select distinct 字段名,字段名,...fromn 表名
     ---注意:去除重复的规则是按照行进行去除的,多行数据完全相同取其一
      select distinct  job ,mgr from emp;




  --排序  
      --单字段排序
             --select  * from 表名 order by 字段名 asc 升序排序 asc可以省略不写
             --select  * from 表名 order by 字段名 desc 降序序排序 
      --多字段排序
             --select * from emp order by 字段名1,字段名2...
             --先按照字段1排序,如果字段1的值相同,则按照字段2排序,....
      select * from emp order by empno desc--单字段排序 降序 
      select empno,ename,job from emp order by ename asc--单字段排序 升序
      select * from emp order by empno,ename--多字段排序




      --字段的逻辑运算
           --select关键字和from关键字之间的字段可以直接进行四则运算
           --字段与字段之间也可以直接进行运算
           --注意:字段值为数值类型
      select * from emp
      select empno,ename,job,sal*2+1000,sal+comm  from emp

使用where子句查询筛选

 --select 字段名,字段名,...from表名 where 筛选条件



      --单筛选条件
            --使用运算符进行筛选 =,>,>=,<,<=,<>  单个条件中
            --注意:如果条件中的值为字符,必须使用单引号括起来


             --查询所有的员工的工资信息
             select empno,ename,sal+comm as 薪资 from emp
             --查询SMITH的个人信息
             select * from emp where ename='SMITH'
             --查询SMITH的薪资信息,逻辑运算符=
             select empno,ename,sal,sal+comm from emp where ename='SMITH'
             --查询工资大于1000的员工信息,逻辑符>
             select * from emp where sal>'2000'
             --查询工资不等于3000的员工信息
             select * from emp where sal<>3000 order  by sal



         --练习:
             --查看工资等于1250的员工信息
             select *from emp where sal='1250'
             --查看工作等于CLERK的员工信息
              select * from emp where job='CLERK'
             --查看工资大于1250的员工姓名和工作
             select ename,job from emp where sal>1250
             --查看工资大于等于2000的员工信息
             select * from emp where sal>=2000;
             --查看工资小于等于2000的员工信息;
             select * from emp where sal<=2000;
             --查看工资不等于1500的员工信息
             select * from emp where sal<>1500;
             --查看入职日期在81年后的员工信息
                   --注意:oracle默认的日期格式为 日-月-年,示例'03-1月-1981'
             select * from emp order by hiredate
             select * from emp where hiredate>='01-1月-1981' order by hiredate










       --多条件筛选(where子句关键字:and,or,like,is null,is not null, in ,between and)

             --查询工资在2000-3000之间的员工信息
               --使用and关键字,多条件同时成立的筛选使用and关键字进行条件连接
               select * from emp where sal>=2000 and sal<3000
               --使用between  and 关键字进行条件连接,包含两头的数据
               select * from emp where sal between 2000 and 3000
             --查询工作为SALESMAN,ANALYST,MANAGER的员工信息
               --使用or关键字,进行或条件的筛选。
              select * from emp where job='SALESMAN' or job='ANALYST' or job='MANAGER' order by job
               --使用in关键字,也可以进行或筛选,但是in中的内容只能为一个字段的值。
              select * from emp where job in('SALESMAN','ANALYST','MANAGER')



             --查询姓名中包含s的,以s开头的,以s结尾的,第二个字符为A的。(模糊查询)
                    --%号表任意多个的任意字符
                    --select * from 表名 where 字段名 like '%字符%' 查询包含指定字符的数据
                    select * from emp where ename like '%S%'  --包含s的
                     --select * from 表名 where 字段名 like '字符%' 查询以指定字符开头的数据
                    select * from emp where ename like 'S%'--以S开头
                     --select * from 表名 where 字段名 like '%字符' 查询以指定字符结尾的数据
                    select * from emp where ename like '%S'--以S结尾的
                     --select * from 表名 where 字段名 like '_字符%' 查询指定位置为指定字符的数据
                          --_表示一个任意字符
                    select * from emp where ename like '_A%'--第二个字符为A的
                     --select * from 表名 where 字段名 like '%字符2字符1%' escape'字符2' 
                         --escape将指定的字符变为转义字符
                         --转义字符可以将特殊字符转为普通字符
                    select * from emp where ename like '%/_%' escape '/'
                    
                    
                    
                    
                    select * from emp for update
             --查询有津贴的员工信息
                    -- select * from 表名 where 字段名 is null 字段值为null
                    -- select * from 表名 where 字段名 is  not null 字段值不为null
                    --多个条件使用and关键进行连接,筛选的是符合所有条件的数据
                            --select * from 表名 where 筛选条件1 and 条件2 and ....
                    select * from emp where comm is not null and comm>0