Oracle操作语句学习
一.Oracle操作
1. 连接oracle:
1) sqlplus
2) scott
3) tiger】
2. sqlplus scott/tiger;
3.
4. sqlplus scott
tiger
5.界面登录
】
5. 退出quit
Exit
二.查询
1. SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE SAL < 2500 ;
2. SELECT EPNO, ENAME, JOB, SAL FROM EMP WHERE SAL < 2500;
3.CHANGE /EPNO/EMPNO
Run
4.增加一行
5删除一行
6. 保存SAVE命令 运行命令文件
7.清缓冲区
8.DESCRIBE列出表的结构
二.Oracle查询
1.显示EMP表中所有的部门号、职工名称和管理者号码
2.
1. 算术运算符在SQL中的使用
SELECT ENAME, SAL+250*12 FROM EMP;
2. 连字符的使用
把职工号和职工名字连接起来,如下:
SELECT EMPNO||ENAME EMPLOYEE FROM EMP;
把职工号和职工名字中间用‘-’连接起来,并输出‘WORKS IN DEPARTMENT’,如下:
SELECT EMPNO|| ’-’ ||ENAME EMPLOYEE, ‘WORKS IN DEPARTMENT’, DEPTNO
FROM EMP;
3. 禁止重复
如果列举出EMP表中所有部门号:
Select deptno from emp;
从上表中可以看出部门号之间存在着许多的相同的,可以用DISTINCT子句来消除重复的。
SELECT DISTINCT deptno from emp;
4. 排序
按单个字段排序,如按照ENAME排序,
SELECT ENAME, JOB, SAL*12, DEPTNO
FROM EMP
ORDER BY ENAME;
5.按多个字段排序:
如按部门号升序,按工资降序排序
SELECT DEPTNO, JOB, ENAME
FROM EMP
ORDER BY DEPTNO, SAL DESC;
按多个字段排序:
如按部门号升序,按工资降序排序
SELECT DEPTNO, JOB, ENAME
FROM EMP
ORDER BY DEPTNO, SAL DESC;
6.带条件的查询
1)查询工作是CLERK的所有职工的姓名,职工号和部门号
SELECT ENAME, EMPNO, JOB, DEPTNO
FROM EMP
WHERE JOB = ‘CLERK’;
2)从DEPT表中查询出部门号大于20的部门名称
SELECT DNAME, DEPTNO
FROM DEPT
WHERE DEPTNO > 20;
3)复合条件查询
查询工作是MANAGER并且工资大于1500,或者工作是SALESMAN的职工信息:
SELECT EMPNO,ENAME, JOB,SAL,DEPTNO
FROM EMP
WHERE SAL>1500 AND JOB = ‘MANAGER’ OR JOB = ‘SALESMAN’;
5. 操作符的应用
1) BETWEEN的应用
查询工资在1000到2000之间的职工名字和工资信息。
SELECT ENAME, SAL
FROM EMP
WHERE SAL BETWEEN 1000 AND 2000;
2) IN
查询有7902,7566,7788三个MGR号之一的所有职工:
SELECT EMPNO, ENAME, SAL, MGR
FROM EMP
WHERE MGR IN (7902,7566,7788);
3) LIKE
通配符%代表任意0或多个字符。
通配符_代表任意单个字符。
查询名字以“S”开始的所有职工:
SELECT ENAME
FROM EMP
WHERE ENAME LIKE ‘S%’;
查询名字只有4个字符的所有职工:
SELECT ENAME
FROM EMP
WHERE ENAME LIKE ‘_ _ _ _’;
4) IS NULL
查询没有管理者的所有职工:
SELECT ENAME,MGR
FROM EMP
WHERE MGR IS NULL;
6. 单&号替代变量
1) 数字变量输入:
SELECT EMPNO,ENAME,SAL
FROM EMP
WHERE DEPTNO = &DEPARTMENT_NUMBER;
Enter value for department_number:10
2) 字符串变量输入:
SELECT EMPNO,ENAME,SAL*12
FROM EMP
WHERE JOB = ‘&JOB_TITLE’;
Enter value for job_title: MANAGER
7. 字符函数的应用
TO_CHAR 数字数据转换为字符串
SQL> select to_char(8897) from dual;
8. 数字函数的应用
TO_NUMBER字符串数据转换为数字
SQL> select to_number('8897') from dual;
9. 数据类型转换
TO_DATE字符串数据转换为日期数据
SQL> select to_date('03-12月-81') from dual;
10. 分组函数的应用
1) 分组函数见课本P60
2) 分组函数应用
求平均值
SELECT AVG(SAL) FROM EMP;
求最小值
SELECT MIN(SAL) FROM EMP WHERE JOB = ‘CLERK’;
求数目
SELECT COUNT(*) FROM EMP WHERE DEPTNO = 20;
3) GROUP BY子句
求每个部门中的平均工资:
SELECT JOB,AVG(SAL) FROM EMP
GROUP BY JOB;
4) HAVING子句
查询人数超过3人的部门中的平均工资:
SELECT DEPTNO,AVG(SAL) FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*)>3;
11. 连接
从EMP和DEPT中查询出职工名字、工作和部门名称:
SELECT ENAME,JOB,DNAME FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO;
12. 子查询的应用
从EMP中查询出工资最低的职工:
SELECT ENAME,JOB,SAL FROM EMP
WHERE SAL = (SELECT MIN(SAL)FROM EMP );
从EMP中查询出每个部门工资最低的职工:
SELECT ENAME,SAL,DEPTNO FROM EMP
&nbs