第二章简单查询课堂笔记和练习(基于用户scott的表数据,往后操作皆是基于此用户的表数据)

本文是关于Oracle数据库中简单查询的课堂笔记,主要讲解了select语句的基础语法,包括选择列、算术运算符、空值(NULL)的处理、列别名的使用、连接操作符及其注意事项,特别是如何使用distinct消除重复行。同时,还提到了查看表结构的desc命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

select语句的基本语法

    SELECT  [DISTINCT]{*|column|expression [alias],...}(表示所需检索的数据列)
    FROM    table;(表示检索的数据来自哪个表)
  • 个人喜欢用小写写关键字,标准的还是用大写的,建议大家不要像我一样

– 选择列
就像一个班里有很多学生,学生有自己的组,而列名就相当于学生的组名

--  1.选择所有列

    --  (1)用*号选择所有列(效率较低)
    select * emp;

    --  (2)用所有列名选择所有列(效率较高)

--  2.选择指定列
    select empno, ename, job, sal, deptno from emp;    

– 算术运算符( + - * / )
就是我们常用的加(+)减(-)乘(*)除(/)

--  1.员工转正后,月薪上调20%,请查询出所有员工转正后的月薪。
    select sal * (1 + 0.2) as "转正后月薪" from emp;

--  2.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的年薪所得
-> (不考虑奖金部分,年薪的试用期6个月的月薪+转正后6个月的月薪)     
    select ename,
           sal * 6 as "试用期总工资",
           (sal * 1.2) * 6 as "转正后总工资",
           --nvl(comm, 0) as "奖金",
           sal * 6 * (1 + 1.2) as "第一年年薪"
      from emp;

– 空值(NULL)
注意空值不是0,空值是null,在后面我们将学到判断一个值为空时 值 is null ,而不是 值 = null

--  注意:null不是0,不是空格' ',它与任何值计算都返回null
--  使用nvl(不为空返回参数1, 为空取参数2)函数
--  nvl(comm, 0) as "奖金"

– 列别名
特别注意要用双引号的三种情况

--  as可以省略
    select ename 名字 from emp;--格式:列名 别名
    select ename "名字" from emp;--格式:列名 "别名"
    select ename as 名字 from emp;--格式:列名 as 别名
    select ename as "名字" from emp;--格式:列名 as "别名"

--  使用双引号""的三张情况
    select ename as "e name" from emp; -- 有空格
    select ename as "Ename" from emp; -- 区分大小写
    select ename as "e_name" from emp; -- 包含特殊字符

– 连接操作符
使用 || 连接字符串时应注意字符串要加单引号

    select ENAME || '的第一年总收入为' ||
           (SAL * 6 + SAL * (1 + 0.2) + nvl(COMM, 0))
      from EMP;

– 原义字符串
原义字符串即为上方所说的加单引号情况字符的术语

--  使用''单引号引起来
    select ENAME || '的第一年总收入为' ||
           (SAL * 6 + SAL * (1 + 0.2) + nvl(COMM, 0))
      from EMP;

– 消除重复行 distinct
注意:默认输出的话是直接将所有结果输出,也就是说包括重复的数据名

--  消除deptno里的重复行
    select distinct deptno from emp;

--  消除job,deptno 都重复的数据
    select distinct job, deptno from emp;

增补知识:

– 查看表结构 desc

--  注:要在 command window 命令窗口输入
    desc emp;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值