Oracle数据库之DQL(数据查询语言)

DQL(查询)

常用Select

  1. 查询所有列(不敢随便用)

    select * from emp ; 
    
  2. 查询指定列

    select Ename,job from emp ; 
    
  3. 算数运算

    select  ename ,sal ,comm , sal  + comm  ,  sal / 20 ,sal*12  from emp ; 
    
  4. 连接符

    -- 列与列连接
    select empno ,ename ,empno || ename  from  emp ;
    
    -- 列与字符串的连接
    select empno , ename  ,  '职位:' || job  from  emp ; 
    
  5. Distinct 消除重复行

    select  distinct deptno from emp ; 
    
    -- 查出所有当领导的职员编号
    select  distinct  mgr from emp ; 
    
  6. 列别名

    -- 用途
    ----重命名一个列;
    ----便于计算。
    ----在列名和别名之间加入关键字 ‘as’ ,以防别名中有空格,并区分大小写。
    
    -- 注意
    ----  "别名"   英文双引号
    
    select ename "员工列表" , sal "工资" , sal*12  "年薪" from emp ;
    
    select ename as "员工列表" , sal as "工资" , sal*12 as "年薪" from emp ;
    

特殊查询(此处了解即可)

  1. 查询表中行数(有多少条数据?)

    select Count(*) from UserInfo ; 
    
  2. 查询行编号和ID

    select rowID , UserInfo , NickName, sex  from UserInfo ; 
    
    select rowNum , UserInfo , NickName, sex  from UserInfo ;
    
    
  3. 查询分页数据(子查询)

    -- 子查询
    select * from 
    			(select rowNum , UserInfo , NickName, sex  from UserInfo )  tmpUserInfo ; 
    
  4. Top N 查询

    -- 查询第一页,每页2条
    select * from 
    (select rowNum , UserInfo , NickName, sex from UserInfo)
    tmpUserInfo  
    			where rowNum > 5 ; 
    

Where 条件查询

字符和日期要包含在单引号中。

扫描二维码关注公众号,回复: 11942669 查看本文章

字符大小写敏感 , 日期格式敏感。

-------------------------------------------------------------------
select * from emp ; 

-- eg1: 查询部门编号为30的所有员工信息
select * from emp  where deptno = 30 ;

-- eg1: 查询员工姓名为james的员工信息
select * from emp  where ename = 'james';
select * from emp  where ename = 'JAMES';

-- eg1: 查询入职日期为 1980-12-17 的员工信息
select * from emp  where hiredate = '17-12月-80';
	order by sal ; -- 按薪水排序

-- eg1:多条件   or    
select * from emp  where deptno = 30 or sal > 2000 ;
	order by sal ;

子查询

在这里插入图片描述

分组查询 Group by

在这里插入图片描述

Order by 排序

Order by

------------------------------------------------------------------------
-- 排序 order by     默认为升序asc ;
select * from emp order by sal ; 

-- 降序 
select * from emp order by sal desc;

-- 升序
select * from emp order by sal  asc;

-- 多列排序
select * from emp order by deptno desc , sal desc;

-- 按照别名来排序
select empno , ename , sal*12 as annlsal  from emp order by annlsal;

Dual表

dual表是一个虚拟表,用来构成select的语法规则,oeacle保证dual里面永远只有一条记录!

在这里插入图片描述

Describe 显示表结构

  • -- 显示表结构
    describe  UserInfo ; 
    
    -- 简写
    desc UserInfo ; 
    
    desc emp ;
    

猜你喜欢

转载自blog.csdn.net/qq_37079157/article/details/109101954