SQL学习之数据查询,基于Oracle下的HR用户(一)

学习文档基于北京尚学堂老师提供的学习文档

1 编写基本 SELECT 语句
SELECT 语句的作用是从数据库中返回信息。
1.1SELECT 语句作用
1.1.1 列选择(投影操作)
能够使用 SELECT 语句的列选择功能选择表中的列,这些列是我们想要用查询返回的。当我们查询时,可在选择查询的表中指定列。
1.1.2 行选择(选择操作)
能够使用 SELECT 语句的行选择功能选择表中的行,这些行是我们想要用查询返回的。能够使用不同的标准限制所看见的行。
1.1.3 连接(多表操作)
能够使用 SELECT 语句的连接功能来集合数据,这些数据虽然被存储在不同的表中,但是我们可以通过连接查询到该数据。
1.2SELECT 语句基本结构
SELECT *|{[DISTINCT] column|expression [alias],…} FROM table;
SELECT 确定哪些列。
FROM 确定哪张表。
1.2.1 基本 SELECT 语句
在最简单的形式中,SELECT 语句必须包含下面的内容:一个 SELECT 子句,指定被显示的列一个 FROM 子句,指定表,该表包含 SELECT 子句中的字段列表
1.2.2 在语法中
SELECT 是一个或多个字段的列表
* 选择所有的列 DISTINCT 关键字
表示禁止重复
column|expression 选择指定的字段或表达式
alias 给所选择的列不同的标题
FROM table 指定包含列的表
1.3 选择操作(投影操作)
1.3.1 选择所有列
SELECT * FROM table;
1.3.2 选择指定的列
SELECT columnName,columnName FROM table;
1.4SQL 语句语法要求
• SQL 语句对大小写不敏感
• SQL 语句可以写成一行或多行
• 关键字不能简写或分开折行
• 子句通常放在不同的行
• 缩进用于增强可读性
1.5SELECT 语句中的算术表达式
用算术运算符创建数字和日期数据的表达式。(+ - * /)
注意:如果对日期进行计算,我们只能对 DATE 和 TIMESTAMP 数据类型使用加和减操作。
1.5.1 运算符的优先级
• 乘法和除法比加法和减法的优先级高
• 相同优先级的运算符从左到右计算
• 圆括号用于强制优先计算,并且使语句更清晰
1.5.2 示例

计算 employees 表中的员工全年薪水加 100 以后的薪水是多少?
select employee_id , first_name ,salary *12 +100 from employees;

在这里插入图片描述

计算 employees 表中的员工薪水加 100 以后的全年薪水是多少?
select employee_id,first_name ,(salary+100)*12 from employees;

在这里插入图片描述1.6 定义空值
空值是一个未分配的、未知的,或不适用的值
空值不是 0,也不是空格
1.6.1 空值
如果一行中的某个列缺少数据值,该值被置为空值。空值和 0 或者空格不相同。0 是一个数字,而空格是一个字符。任何数据类型的列都可以包含空值。可是,某些约束,如,NOT NULL 和 PRIMARY KEY,防止在列中使用空。
1.6.2 算术表达式中的空值
包含空值的算术表达式计算结果为空。
1.6.3 示例

select last_name ,12*salary*commission_pct from employees;

当值为空时计算返回的结果也为空
在这里插入图片描述1.7 定义列别名
列别名:
• 改变列标题的名字
• 紧跟在列名后面 – 在列名和别名之间可以有选项 AS 关键字
• 如果别名中包含有空格、或者特殊字符、或者大小写敏感,要求用双引号在 SELECT 列表中的列名后面指定别名,列名和别名之间用空格分开。默认情况下,别名标题用大写字母显示。如果别名中包含空格或者特殊字符(例如 # 或 &),或者大小写敏感,将别名放在双引号 (“”) 中。
1.7.1 示例
查询 employees 表中的 last_name,commission_pct 并将佣金列名改为 comm。

方式一:select last_name ,commission_pct as comm from employees;
方式二:select last_name name ,commission_pct comm from employees;

在这里插入图片描述在这里插入图片描述计算所有员工的全年薪水,将列名修改”Annual Salary”。

--SQL语句不识别空格,用双引号可以将两个单词用空格连接
方式一 :select last_name name ,12*salary as "Annual Salary" from employees;
employees;
方式二:select last_name name ,12*salary "Annual Salary" from employees;

在这里插入图片描述1.8 连字运算符
连字运算符:
• 连接列或者字符串到其它的列
• 用两个竖线表示 (||) • 构造一个字符表达式的合成列
我们能够用连字运算符 (||) ,进行列与列之间、列与算术表达式之间或者列与常数值之间的连接,来创建一个字符表达式。连字运算符两边的列被合并成一个单个的输出列。
1.8.1 示例

将 employees 表中的 LAST_NAME 和 JOB_ID 合并到一个单个的输出列中,并且指定列别名 Employees。
select last_name || job_id as "Employee" from employees;

在这里插入图片描述文字字符串是包含在 SELECT 列表中的一个字符串,一个数字或者一个日期
• 日期和字符的文字字符串值必须用单引号括起来
• 每个文字字符串在每行输出一次
文字字符串不是列名或别名。对每个返回行打印一次。任意格式文本的文字字符串能够被包含在查询结果中,并且作为 SELECT 列表中的列处理。日期和字符文字 必须 放在单但引号 (’ ') 中;数字不需要。
1.9.1 示例

显示所有雇员的名字和工作代码,使用 is a 链接查询结果。列标题用 Employee Details。
select last_name || ' is a ' || job_id as "Employee Details" from employees;

在这里插入图片描述1.10 去除重复行
在 SELECT 语句中用 DISTINCT 关键字除去相同的行。为了在结果中除去相同的行,在 SELECT 子句中的 SELECT 关键字后面紧跟 DISTINCT 关键字。
1.10.1 示例

在 Employees 表中查询 department_id 并去除重复数据。
select distinct department_id from employees;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值