case when嵌套子查询_Oracle基础连接查询!!!

f0c5971f6dfffb6e77e5d55a90e3a5ac.png

1. 字符到日期的转换

(1) 在Oracle中将字符转换为日期的函数是什么?

(2) To_date(‘字符’,’转换格式’)

To_date(‘2019-03-04’,’yyyy-MM-dd’)

2. 函数嵌套

(1) 什么是函数嵌套?

1.函数里面套函数.为了得到我们想要的数据

(2) 嵌套函数的执行顺序是什么?

1.从内到外

3. 通用函数NVL与NVL2

(1) 在Oracle中通用函数有哪些?

1. nvl(e1,e2)

2. Nvl2(e1,e2,e3)

3. Nullif(e1,e2)

4. Coalesce(e1,e2,...,eN)

(2) NVL与NVL2的作用是什么? 他们之间的区别是什么?

1. Nvl可以将空值转换为一个实际值

2. Nvl2如果e1非空,nvl2返回e2.如果e1为空,nvl2返回e3.参数e1可以是任意数据类型

3. 区别nvl两个参数,nvl2有三个参数

4. 通用函数NULLIF与COALESCE

(1) NULLIF函数的作用是什么?

1.nullif(e1,e2)函数:比较两个表达式,如果相等,函数返回空,如果不相同,函数返回第一个表达式,第一个表达式不能为空

(2) COALESCE函数的作用是什么?

2.coalesce(e1,e2,...,eN)函数:返回列表中的第一个非空表达式(按顺序)

5. 条件表达式CASE与DECODE函数

(1) CASE表达式的作用是什么?

1.case表达式:case表达式可以让你在SQl语句中使用if-then-else逻辑.如果没有when...then满足条件并且else语句存在则返回else里的值.否则返回空.所有的表达式(expr,comparsion_expr和return_expr)必须是相同的数据类型

(2) DECODE函数的作用是什么?

简化case表达式

Decode(表达式,判断语句,结果,判断语句2,结果,...默认值(没有默认值返回null)

6. 什么是多表查询

(1) 什么是多表查询?

1.当查询的数据不是来自一个表时,我们就需要多表连接操作完成查询,根据不同表之间的数据关系查询相关联的数据

(2) 多表查询链接方式有哪些?

内连接:连接两个表,通过相等或不等判断链接列,成为内连接.在内连接中典型的连接运算有=或<>之类的比较运算符.包括等值链接和自然链接

等值连接

非等值连接

自连接

SQL99:交叉连接(cross join)

SQL99:内连接(inner join)

SQL99:自然连接(natural join)

外连接:在两个表之间的连接,返回内连接的结果,同时还返回不匹配行的左或右表的连接,成为左或右.返回内连接的结果,同时还返回左和右连接成为全连接

左外连接

右外连接

全外连接

子查询:当一个查询时另一个查询的条件是,称之为子查询.

7. 笛卡尔乘积

(1) 什么是笛卡尔乘积?

笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积,又称直积,表示为X*Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员

(2) 如何避免笛卡尔乘积?

当一个连接条件无效或被遗漏时,其结果是一个笛卡尔乘积,其中所有的行的组合都被显示,第一个表中所有的行连接到第二个表中所有行,一个笛卡尔乘积会产生大量的行,其结果没有什么用,应该在where子句中始终包含一个有效的连接条件

8. 多表连接语法

(1) 多表连接查询的语法结构是什么?

1. 使用一个连接从多个表中查询数据

Select table1.column,table2.column

From table1,table2

Where table1.column1=table2.column2;

(2) 什么是定义连接?

当数据从多表查询时,要使用连接(join)条件.一个表中的行按照存在于相应列中的值被连接到另一张表中的行

(3) 多表连接的原则是什么?

1. 在写一个连接表的select语句时,在列名前面用表名或者表列名可以使语义清楚,并且加快数据库访问

2. 为了连接n个表在一起,你最少需要n-1个连接条件.

9. 等值连接

(1) 什么是等值连接?

等值连接也被称为简单连接或内连接.是通过等号来判断连接条件中的数据值是否相匹配

(2) 什么是抉择矩阵?

是通过行与列来分析一个查询的方式

例如:如果你想显示同一个部门中所有名字为Taylor的雇员的名字和部门名称,可以写出先的决策矩阵:

投影列 源表 条件

Last_name employees last_name=’Taylor’

Department_name departments employees.department_id=department.department_id

10. 使用表别名

(1) 表别名的作用是什么?

使用表别名简化查询语句的长度

(2) 使用表别名的原则是什么?

1. 表别名最多可以有30个字符,但短一些更好.

2. 如果在From子句中表别名被用于指定的表,那么在整个select语句中都可以使用表别名

3. 表别名应该是有意义的

4. 表别名只对当前的select语句有效

11. 非等值连接

(1) 什么是非等值连接?

一个非等值连接是一种不使用向等(=)作为连接条件的查询.如!=,<,>,<=,>=,between and等都是非等值连接的条件判断

12. 自连接

(1) 什么是自连接?

使用一个表连接它自身的操作

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值