实验目的:
1、了解SQLPLUS连接数据库的方法
2、掌握SQLPLUS设置环境变量的操作方法
3、掌握利用SQLPLUS格式化查询结果的方法
4、掌握常用的SQLPLUS命令
5、掌握在SQLPLUS编写及运行SQL脚本的方法


实验步骤:

1、利用SQLPLUS连接oracle数据库


2、设置SQLPLUS的环境变量
pagesize
linesize



3、对SQLPLUS中的员工信息的查询结果进行格式化处理
查询所有员工信息



设置ename列名为“员工姓名”及对齐方式为“居中对齐”



设置sal列名为“薪水”,以“$12345.67"这样的格式显示(前面加货币符号,小数点保留两位)



设置ename 列占20个字符宽



清除上述操作的所有设置



为查询页添加页眉和页脚
ttitle ''
btitle ''



4、使用常用的SQLPLUS命令进行操作
DD: Data Dictionary

a.通过DD了解自己有哪些表等对象
b.了解要使用的特定表的结构
c.查询或存储所需要的数据


利用describe命令查看dept表的表结构



利用prompt命令显示特定信息



使用&替换变量



使用show命令查看环境变量
pagesize
linesize



5、编写及运行SQL脚本
利用SQLPLUS编写一段查询脚本,并保存在计算机的合适位置



利用记事本编写一段查询脚本,并保存在计算机的合适位置



利用SQLPLUS中的命令运行上述脚本



附加内容:
写出以下查询语句

列出薪水在2500以上的所有员工的信息



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



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



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



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



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


sal+nvl(comm,0)

下面是题目和代码

--设置SQLPLUS的环境变量
set pagesize 14;
set pagesize 200;
--查询所有员工信息
SELECT * FROM emp;
--设置ename列名为“员工姓名”及对齐方式为“居中对齐”
CLOUM ename HEADING '员工姓名' JUSTIFY CENTER;
--设置sal列名为“薪水”,以“$12345.67"这样的格式显示
CLOUM sal HEADING  '薪 水'JUSTIFY CENTER FORMAT $99999.99;
--设置ename 列占20个字符宽
CLOUM ename FORMAT A20;
--清除上述操作的所有设置
CLOUM ename CLEAR;
CLOUM sal CLEAR;
--为查询页添加页眉和页脚
TTITLE '页眉';
BTITLE '页脚';
--利用describe命令查看dept表的表结构
DESC dept;
--利用prompt命令显示特定信息
PROMPT HelloWorld!!!!
--使用&替换变量
SELECT * FROM emp WHERE sal>&low;
--使用show命令查看环境变量
SHOW pagesize;
SHOW linesize;
--利用SQLPLUS编写一段查询脚本,并保存在计算机的合适位置
SELECT * FROM emp;
SAVE g:study/oracle/onetext.sql;
--利用SQLPLUS中的命令运行上述脚本
@g:study/oracle/onetext.sql;

--列出薪水在2500以上的所有员工的信息
SELECT * FROM emp WHERE sal>=2500;
--列出薪水在2500以上的所有员工的姓名及部门名称
SELECT ename,dname FROM emp,dept WHERE sal>=2500 AND emp.deptno=dept.deptno;
--列出总收入在2500以上的所有员工的信息
SELECT * FROM emp WHERE (sal+nvl(comm,0))>=2500;
--列出总收入在2500以上的所有员工的姓名及部门名称
SELECT ename,dname FROM emp,dept WHERE (sal+nvl(comm,0))>=2500 AND emp.deptno=dept.deptno;
--查出各部门的名称、总人数及总月薪
SELECT dname SUM(sal),COUNT(empno) from dept left join emp on emp.deptno=dept.deptno group by dname;
--查出在芝加哥上班的所有员工的姓名
SELECT ename FROM dept,emp WHERE (LOC='CHICAGO') AND (emp.deptno=dept.deptno);



注意:
1.clear 每次只能清楚一行;

2.输出查询内容可以使用
spool  xxxxxx
spool off
与save xxxxx 记得相区别;

3.left join  左连接

4.因为在oracle中 null不能参与运算,所以在做运算的时候需要用到nvl(a,0)函数,意思是a字段为null则转换为0;