实验五:Oracle中的SQL使用

一、实验目的

  • 1.掌握SQL语言中常用系统函数;
  • 2.掌握SQL语言的应用。

二、实验内容

  1. 查询SQL中如下常用函数的使用,并举例说明(完成格式参考Length)。-
    字符< Ltrim、Replace、Rtrim、Substr、Trim>
    日期< Sysdate、next_day>
    转换< To_char、to_date、to_number>
    统计函数< Sum、Avg、Max、Min、Count>
    其他< User、Decode、Nvl>
    例如:Length
    函数形式:Length(X)
    函数说明:返回字符串X的长度
    举例:select length(‘hello world’) from dual;
    运行结果:
    LENGTH(‘HELLOWORLD’)

              11

(1)字符
Ltrim
函数形式:Ltrim(x[,trim_string])
函数说明:删除字符串X左边的字符(包括空格),可以使用可选择的trim_string来指定将要被删除的字符,如果没有提供trim_string,则在默认情况下将删除左边的字符
举例:
在这里插入图片描述

Rtrim
函数形式:Rtrim(x[,trim_string])
函数说明:去掉字符串X右边的trim_string指定的字符,类似于Ltrim
举例:
在这里插入图片描述
trim
函数形式:trim([trim_char]from X)
函数说明:删除字符串X中左右两端的一些字符,如果提供了可选择的trim_char,那么将删除trim_char字符,否则删除空格;
举例:
在这里插入图片描述

Replace
函数形式:replace(x,search_string,replace_string)
函数说明:在字符串X中搜索search_string,如果找到则使用replace_string替换
举例:
在这里插入图片描述

Substr
函数形式:substr(x,start[,length])
函数说明:返回字符串X的子串,开始位置是start,可选的length参数表示子串的长度
举例:
在这里插入图片描述

(2)日期
Sysdate
函数形式:sysdate()
函数说明:返回当前系统的日期
举例:
在这里插入图片描述

Next_day
函数形式:next_day(x,day)
函数说明:返回紧接着X的下一天,参数day是一个字符串
举例:
在这里插入图片描述

(3)转换
To_char()
函数形式:to_char(x[,format])
函数说明:把指定的表达式转换为字符串,x表示将要转变的表达式,format参数用于指定x表达式的格式
举例:

在这里插入图片描述

To_date()
函数形式:to_date(c[,fmt])
函数说明:将字符串转化为Oracle中的一个日期,如果参数fmt不为空时,则按照fmt指定的格式进行转换。如果fmt为J则表示按照公元制转换,为C则必须大于0并小于5373484的正整数。
举例:
在这里插入图片描述

To_number()
函数形式:to_number(c[,fmt])
函数说明:把某个表达式转变成数字,可实现16进制和10进制的转换
举例:
在这里插入图片描述

(4)统计函数
Sum
函数形式:sum(x)
函数说明:汇总值
举例:
在这里插入图片描述

Max
函数形式:max(x)
函数说明:最大值
举例:
在这里插入图片描述

Min
函数形式:min(x)
函数说明:最小值
举例:
在这里插入图片描述

Avg
函数形式:avg(x)
函数说明:平均值
举例:
在这里插入图片描述

Count
函数形式:count(x)
函数说明:统计数量
举例:
在这里插入图片描述

(5)其他
User
函数形式:user()
函数说明:返回当前用户的名字
举例:
在这里插入图片描述

Decode
函数形式:decode(字段或字段的运算,值1,值2,值3)
函数说明:当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
举例:
在这里插入图片描述

Nvl
函数形式:nvl(expr1,expr2)
函数说明:判断某个值是否为空值,若不为空值则输出,否则返回值定值
如果expr1为空那么显示expr2的值,如果expr1不为空,则显示expr1的值
举例:
在这里插入图片描述
2. 在使用SQL的内置函数时,经常用到关键词dual,查询dual的含义,并举例说明其使用方法。
答:基本上oracle引入dual为的就是符合语法

  1. 我们先从名称来说,dual不是缩写词,本身就是完整的单词。dual名词意思是对数,做形容词时是指二重的,二元的。
  2. Oracle中的dual表是一个单行单列的虚拟表。
  3. Dual表是oracle与数据字典一起自动创建的一个表,这个表只有1列:DUMMY,数据类型为VERCHAR2(1),dual表中只有一个数据’X’, Oracle有内部逻辑保证dual表中永远只有一条数据。
  4. Dual表主要用来选择系统变量或求一个表达式的值。
  5. 更具体的说,我们见过这样一个简单的例子:
    SELECT sysdate FROM daul 而Oracle的SELECT语法的限制为:SELECT * | [column1 [AS alias1], column2 [AS alias2]] FROM table

所以,没有表名就没有办法查询,而时间日期并不存放在任何表中,于是这个dual虚拟表的概念就被引入了。
使用方法:如上 的一些操作
(1)查看当前连接用户
在这里插入图片描述

(2)查看当前日期、时间
在这里插入图片描述

(3)当作计算器用
在这里插入图片描述

等等…

3 . 练习SQL事务处理
(参见教材p112- p113中的示例内容,自己举例使用保存点进行事务回退操作,将练习所执行的SQL记录下来)
在这里插入图片描述

4、SQL语言的应用(根据题目的写出执行正确的SQL语句):
(1)解锁HR模式,对HR模式下的表进行操作(此操作不用记录);
(2)以HR身份登录数据库后进行如下操作:

①查询HR.EMPLOYEES表的表结构;
在这里插入图片描述

②查询EMPLOYEES表中每个雇员的姓名(要求将first_name,last_name字段连接在一起显示)、职位、工薪、部门编号;
在这里插入图片描述

③查询HR.DEPARTMENTS表的表结构;
在这里插入图片描述

④使用子查询查询属于某一部门员工的姓名、职位、工薪、部门编号的信息(已知的信息为部门名称,部门名称由用户自己给出);
在这里插入图片描述

⑤统计某一部门的雇员的最高和最低工薪;
在这里插入图片描述

⑥向EMPLOYEES表添加一组数据:
values(600,’LISI’,’lisi@163.com’,sysdate,’SH_CLERK’,1650)
在这里插入图片描述

通过SELECT查询语句,查看是否在EMPLOYEES表中添加了相应的记录;
在这里插入图片描述

⑦使用UPDATE语句更新该记录的SALARY列,为部门编号80的员工上调工薪10%;
在这里插入图片描述

⑧删除操作⑥中新增加的那条记录。
在这里插入图片描述

【近日甚是心烦,凡事都感觉提不起劲,感觉自己好像变差劲了,/(ㄒoㄒ)/~~,喝杯奶茶,缓解疲劳吧】
句子君:

华灯初上,留一隅空间给记忆,清点行装,不再去流浪,在脚下,拓一片疆域,把自己的名字安放。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少年游四方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值