实训目的:
1、了解客户端连接数据库的方法
2、掌握在客户端编写及运行SQL脚本的方法
3、掌握自定义变量&符号的应用
实训步骤:
1、利用客户端连接oracle数据库
SQLPLUS oracle SQL DEVELOPER TOAD
输入“sqlplus +自己用户名+@+自己设置的网络服务名”,然后输入口令,然后如下图登录成功。
2、使用客户端查询员工及部门信息
查询所有员工信息
prompt 查询所有员工信息
SELECT * FROM emp;
查询所有部门信息
prompt 查询所有部门信息
SELECT * FROM dept;
查询ALLEN所在部门名称
prompt 查询ALLEN所在部门名称
SELECT ename,dname
FROM emp,dept
WHERE dept.deptno=emp.deptno AND upper(ename)=upper('ALLEN');
3、使用常用的命令进行操作
DD: Data Dictionary
a.通过DD了解自己有哪些表等对象
prompt a.通过DD了解自己有哪些表等对象
SELECT table_name
FROM user_tables;
b.了解要使用的特定表的结构
prompt b.了解要使用的特定表的结构
desc user_tables;
desc user_objects;
c.查询或存储所需要的数据
prompt c.查询或存储所需要的数据
SELECT *
FROM emp
WHERE deptno=10;
利用describe命令查看dept表的表结构
4、使用&替换变量
prompt 使用'&'替换变量
SELECT deptno,dname
FROM dept
WHERE upper(dname)=upper('&name');
5、编写及运行SQL脚本
利用SQLPLUS编写一段查询脚本,并保存在计算机的合适位置
利用记事本编写一段查询脚本,并保存在计算机的合适位置
利用SQLPLUS中的命令运行上述脚本
附加内容:
写出以下查询语句
列出薪水在2500以上的所有员工的信息
prompt 列出薪水在2500以上的所有员工的信息
SELECT *
FROM emp
WHERE sal>2500;
列出薪水在2500以上的所有员工的姓名及部门名称
prompt 列出薪水在2500以上的所有员工的姓名及部门名称
SELECT ename,dname,sal
FROM emp,dept
WHERE emp.sal>2500 AND emp.deptno=dept.deptno;
列出总收入在2500以上的所有员工的信息
prompt 列出总收入在2500以上的所有员工的信息
SELECT *
FROM emp
WHERE nvl(sal,0)+nvl(comm,0)>2500;
列出总收入在2500以上的所有员工的姓名及部门名称
prompt 列出总收入在2500以上的所有员工的姓名及部门名称
SELECT ename,dname,sal,comm
FROM emp,dept
WHERE nvl(sal,0)+nvl(comm,0)>2500 AND emp.deptno=dept.deptno;
查出各部门的名称、总人数及总月薪
prompt 查出各部门的名称、总人数及总月薪
SELECT dname,COUNT(emp.ename),SUM(emp.sal)
FROM emp,dept
WHERE dept.deptno=emp.deptno
GROUP BY dname;
查出在芝加哥上班的所有员工的姓名
prompt 查出在芝加哥上班的所有员工的姓名
SELECT ename,dept.loc
FROM emp,dept
WHERE upper(loc)=upper('CHICAGO') AND dept.deptno=emp.deptno;
总脚本代码:
--设置行宽和页宽
set linesize 166
set pagesize 999
prompt 查询所有员工信息
SELECT * FROM emp;
prompt 查询所有部门信息
SELECT * FROM dept;
prompt 查询ALLEN所在部门名称
SELECT ename,dname
FROM emp,dept
WHERE dept.deptno=emp.deptno AND upper(ename)=upper('ALLEN');
prompt a.通过DD了解自己有哪些表等对象
SELECT table_name
FROM user_tables;
prompt b.了解要使用的特定表的结构
desc user_tables;
desc user_objects;
prompt c.查询或存储所需要的数据
SELECT *
FROM emp
WHERE deptno=10;
prompt 使用'&'替换变量
SELECT deptno,dname
FROM dept
WHERE upper(dname)=upper('&name');
prompt 列出薪水在以上的所有员工的信息
SELECT *
FROM emp
WHERE sal>2500;
prompt 列出薪水在以上的所有员工的姓名及部门名称
SELECT ename,dname,sal
FROM emp,dept
WHERE emp.sal>2500 AND emp.deptno=dept.deptno;
prompt 列出总收入在以上的所有员工的信息
SELECT *
FROM emp
WHERE nvl(sal,0)+nvl(comm,0)>2500;
prompt 列出总收入在以上的所有员工的姓名及部门名称
SELECT ename,dname,sal,comm
FROM emp,dept
WHERE nvl(sal,0)+nvl(comm,0)>2500 AND emp.deptno=dept.deptno;
prompt 查出各部门的名称、总人数及总月薪
SELECT dname,COUNT(emp.ename),SUM(emp.sal)
FROM emp,dept
WHERE dept.deptno=emp.deptno
GROUP BY dname;
prompt 查出在芝加哥上班的所有员工的姓名
SELECT ename,dept.loc
FROM emp,dept
WHERE upper(loc)=upper('CHICAGO') AND dept.deptno=emp.deptno;