实训2:使用sqlplus练习sql基础

本文介绍了如何通过Oracle客户端连接数据库,包括设置界面、编写SQL查询(如员工与部门信息、变量替换、脚本编写等),以及使用NVL处理NULL值。实训内容涵盖了基本操作、SQL语句和高级功能如部门统计和特定地点查询。
摘要由CSDN通过智能技术生成

针对人群:

数据库小白
也希望得到大佬点评指正

实训前提:

本实训包含两个表:emp(员工表)dept(部门表)
emp表包含: EMPNO(员工编号)、ENAME(员工姓名)、JOB(职位)、MGR(上司编号)、 HIREDATE(入职日期)、SAL(薪水)、COMM(提成)、DEPTNO(部门编号)

dept表包含:DEPTNO(部门编号)、DNAME(部门名称)、LOC(坐标位置)

实训目的:

1、了解客户端连接数据库的方法
2、掌握在客户端编写及运行SQL脚本的方法
3、掌握自定义变量&符号的应用

实训步骤:

1、利用客户端连接oracle数据库

 使用sqlplus输入用户名:s224201106@sorcl
 口令:s224201106

2、使用客户端查询员工及部门信息
设置cmd的显示界面大小

 set linesize 160;
 set pagesize 100;
 select * from emp;

在这里插入图片描述
(将终端最大化查看表格是否如图,若仍未设置好表格大小,右键终端顶部在“启动大小”设置页面)

查询所有员工信息

prompt 1.查询所有员工信息    --prompt是一个命令只能在sqlplus中用,类似exit在终端使用
select * 
from emp;

在这里插入图片描述

查询所有部门信息

prompt 2.查询所有部门信息
select * 
from dept;

在这里插入图片描述

查询ALLEN所在部门名称

prompt 3.查询ALLEN所在部门名称
select ename,dname
from dept,emp
where dept.deptno=emp.deptno
	and ename='ALLEN';

在这里插入图片描述

使用&替换变量
ps:&输入也只能在sqlplus用、使用大写转换(upper),小写转换(lower)是为了不区分大小写

prompt 4.使用'&'替换变量
select ename,dname
from dept,emp
where dept.deptno=emp.deptno
		and lower(ename)=lower( '&empname' ); 

在这里插入图片描述

使用常用的命令进行操作

利用describe命令查看dept表的表结构,例如:

desc dept

在这里插入图片描述

使用&替换变量,详见附加内容1

编写及运行SQL脚本

方法一:利用SQLPLUS编写一段查询脚本,使用SQL方法见实训1

方法二:利用记事本编写一段查询脚本,并利用SQLPLUS中的命令运行脚本

@"D:\Database_classwork\实训报告2:Oracle客户端软件的使用.sql"   --储存脚本的位置

保存脚本时切记三点!!!
1.脚本后缀为:.sql
2.要连同脚本名和后缀名加上引号,防止系统自动在.sql后加上.txt
3.左下编码改为:ANSI,防止终端不能识别记事本中的中文
在这里插入图片描述

附加内容:

写出以下查询语句

  1. 列出薪水在2500以上的所有员工的信息
select * 
from emp
where sal>&mysal;

在这里插入图片描述

2.列出薪水在2500以上的所有员工的姓名及部门名称

select  ename,dname
from emp,dept
where sal>2500
	and dept.deptno=emp.deptno;

在这里插入图片描述

3.列出总收入在2500以上的所有员工的信息

select ename,dname
from emp,dept
where nvl(sal,0)+nvl(comm,0)>2500;       

在这里插入图片描述

这里如果sal或comm列存在null值,则需要用到nvl:
nvl是null value的缩写 ,即 对null值赋值为0
null的二元运算:10+null == null

4.列出总收入在2500以上的所有员工的姓名及部门名称

select ename,dname
from emp,dept
where nvl(sal,0)+nvl(comm,0)>2500
	and dept.deptno=emp.deptno;

在这里插入图片描述

5.查出各部门的名称、总人数及总月薪

select dname,count(empno) empCount,sum(sal) totalSalary
from emp,dept
where  dept.deptno=emp.deptno
group by dname;

在这里插入图片描述

6.查出在芝加哥上班的所有员工的姓名

select dname,loc,ename
from emp,dept
where  dept.deptno=emp.deptno
	and upper(loc)=upper('CHICAGO');

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值