SQL语言

学习主题:SQL语言
学习目标:
1 掌握oracle相关函数的使用
2 掌握分组,分组条件筛选
3 掌握DML语句
4 掌握SQL 92和99语法的各种表连接

1.函数_字符函数
(1)Oracle函数的分类有哪些?分别有什么功能?
1、单行函数:这些函数仅对单个行进行运算,并且每行返回一个结果
2、多行函数(聚合函数):这些函数能够操纵成组的行,每个行组给出一个结果,这些函数也被称为组函数。
(2)你用过哪些字符函数, 举例说明?
1、大小写处理函数:LOWER, UPPER, INITCAP
2、字符处理函数:CONCAT, SUBSTR, LENGTH, INSTR, LPAD|PRAD, TRIN

2.函数_数值函数_日期函数
(1)你用过哪些数值函数, 举例说明?
1、ROUND:四舍五入指定小数的值
2、TRUNC:截断指定小数的值
3、MOD:返回除法的余数
(2)你用过哪些日期函数, 举例说明?
1、sysdate:返回当前数据库服务器的日期和时间
2、months_between:两个日期之间的月数
3、add_months:加日历月到日期
4、next_day:下个星期几是几号
5、last_day:指定月的最后一天
6、round:四舍五入日期
7、trunc:截断日期

3.函数_转换函数
(1)Oracle的转换函数有哪些? 分别有什么作用?
1、to_number:字符转换为数字
2、to_date:字符转换为日期
3、to_char:数字转换为字符或者日期转换为字符
(2)to_number函数中, 格式符号9和0的区别是什么?
符号9表示一个数,符号0表示强制显示为零

4.函数_通用函数
(1)请说明nvl()和nvl2()两个函数的功能及区别?
1、nvl() :转换空值为一个实际值
2、nvl2():如果expr1非空,nvl2返回expr2;如果expr1为空,nvl2返回expr3。参数expr1可以是任意数据类型。
(2)oracle函数decode用于实现什么功能?
使得CASE或者IF-THEN-ELSE条件判断容易实现

5.函数_分组函数
(1)请列举Oracle的分组函数并描述各函数的功能?
1、NULLIF函数:比较两个表达式,如果相等,函数返回空,如果不相 等,函数返回第一个表达式,第一个表达式不能为NULL。
2、COALESCE函数:返回列表中的一个非空表达式,如果第一个表达式 非空则输出第一个,如果第一个为空,第二个不为空则输出第二个表达式,以此类推。
(2)多行函数可以操作什么类型的数据?
char、varchar2、number、date

6.group by_having
(1)请说明SQL语句中各子句的执行顺序?
1、from子句
2、Where子句
3、Group by子句
4、Having子句
5、Select子句
6、Order by 子句
(2)请简述GROUP BY和HAVING的作用?
goup by 子句可以把表中的行划分为组。然后可以用组函数返回每一组的概要信息。
having子句通常与group by 子句联合使用,用来过滤有group by语句返回的记录集。

7.DML_insert_update_delete
(1)如何复制一张表格? 如何复制一张表格的表结构?
复制一张表到另一张新表:create table new_table as select * from old_table;
复制一张表格结构:create table new_table as select * from old_table where 1=2;
(2)新增,修改和删除表格数据的语法分别是什么?
新增表数据 用insert into 语句: insert into table_name (column,) values (value,);
修改表数据 用update 语句: update table_name set column=value [,column1=value1,] [where condition];
删除表数据 用delete 语句: delete [from] table_name [where condition];

8.SQL99_cross join_natural join
(1)什么是交叉连接?什么是自然连接?
交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。
自然连接(NATURAL JOIN)是一种特殊的等值连接,将表中具有相同名称的列自动进行匹配。
(2)请解释什么是笛卡尔积?
笛卡尔积是指在数学中,两个集合X和Y的笛卡尔积,又称直积,表示为X*Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。在数据库中笛卡尔积表示一个表中的每一列和另外一个表中的全部列都有联系

9.SQL99_using_on
(1)请描述using在查询语句中的作用
当有多个列匹配时,用using子句匹配唯一的列。
(2)请说明什么时候使用on子句
在内连接中使用inner join作为表的连接,用on子句给定连接条件。

10.SQL99连接查询_外连接
(1)请描述什么是外连接, 什么是内连接?
1、外连接:指查询出符合连接条件的数据同时还包含孤儿数据,左外链接包含坐标的孤儿数据,有外链接包含右表的孤儿数据,全外连接包含两个表的孤儿数据
2、内连接:连接两个表,通过相等或不等判断链接列,称为内连接。
(2)外连接有哪些分类?
1、左外链接
2、右外链接
3、全外链接
11.SQL99_自连接
(1)什么是自连接?
使用一个表连接它自身的操作。

12.SQL92连接查询
(1)请说明SQL92与SQL99的区别?
区别:
SQL 92:
笛卡尔积
等值连接
非等值连接
自连接
外连接(左外连接、右外连接、全连接)
SQL 99:
交叉连接
自然连接
Join using子连接
Join on 子连接(内连接)
外连接(left join/right join/full join)

(2)内连接, 左连接, 右连接有什么区别?
内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。是通过等号来判断连接条件中的数据值是否匹配。
内连接是INNER JOIN简写成JOIN,是典型的联接运算,使用像 = 或 <> 之类的比较运算符。包括相等联接和自然联接。内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。
左连接是LEFT JOIN或LEFT OUTER JOIN,左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
右连接是RIGHT JOIN 或 RIGHT OUTER JOIN,右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值