您的位置:首页 > 其它

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

2018-07-30 19:07 274 查看

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;
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐