oracle数据库笔记
慕北丶
面向对象面向君,不负代码不负卿
展开
-
连接查询
多表查询(连接查询):连接查询就是多张数据表进行连接然后查询数据,连接查询分为内连接查询和外连接查询内连接查询:只有满足条件的数据才会被显示外连接查询:可以控制不满足条件的数据是否显示如果要从多张数据表中查询数据,那么就要使用到多表查询③SELECT *① FROM 数据来源,数据来源...(可以有多个)② WHERE 过滤条件④ ORDER BY 排序的字段AS...原创 2019-03-05 15:52:27 · 1353 阅读 · 0 评论 -
伪列ROWNUM
ROWNUM伪列的使用:ROWNUM是在查询过程中动态生成的一个列,该列其实也很像一个字段,但是这个列不属于数据表,而是在查询中动态生成的,必须重1开始使用ROWNUM:SELECT ROWNUM AS rn,empno,ename,job,sal,hiredate,mgr,comm,deptnoFROM emp;查询emp表中的第一条数据SELECT ROWNUM AS rn,e...原创 2019-03-07 16:00:53 · 323 阅读 · 0 评论 -
分页查询
分页查询:分页查询的百分之九十九的项目都要使用到的,比如说如果数据很多,但是要显示到浏览器页面,这种情况下如果所有的数据都使用一个页面显示,那是不合理的,而是要使用分页显示要实现分页需要知道两个参数:currentPage:表示当前页面(cp)lineSize:表示每页显示的数据量(ls)查询第一页数据,每页显示三条数据(emp表)currentPage=1, lineSize=3:从...原创 2019-03-07 16:45:15 · 532 阅读 · 0 评论 -
指定约束的名称
约束的名称:我们可以在创建约束的时候指定名称,使用CONSTRAINT来创建默认的约束名称:--删除数据表DROP TABLE teacher PURGE;--创建数据表CREATE TABLE teacher(tno NUMBER(4) PRIMARY KEY, --主键约束tname VARCHAR2(10) UNIQUE, --唯一约束tage NUMBER(3),td...原创 2019-03-11 20:33:12 · 1256 阅读 · 0 评论 -
外键约束
外键约束:外键约束就是一张表中的某个字段的数据来源依赖于另外一张表中的某个字段的数据--删除数据表DROP TABLE sc PURGE; --选课表,删除的顺序有讲究DROP TABLE course PURGE; --课程表DROP TABLE teacher PURGE; --老师数据表DROP TABLE student PURGE; --学生数据表--创建数据表CREA...原创 2019-03-11 20:37:46 · 456 阅读 · 0 评论 -
约束的级联操作
级联删除:级联删除操作是存在于主表和从表关系之中,当操作了主表中的数据,则要求字表中的数据也随之更新或者删除,这样的操作叫作级联操作,级联操作分为级联删除,级联更新,级联查询(这个一般使用程序实现)删除数据表DROP TABLE sc PURGE;DROP TABLE course PURGE;DROP TABLE teacher PURGE;DROP TABLE student PU...原创 2019-03-11 20:46:49 · 373 阅读 · 0 评论 -
索引的基本概念
索引的概念:索引是提高查询速度的一种手段,索引有很多种,目前只需掌握索引的概念,创建索引,使用索引,删除索引即可SELECT * FROM SCOTT.empWHERE sal>1000;以上查询只能看到数据,而不能看到整个查询中的sql语句执行计划过程,如果要观察过程则可以先切换到超级管理员下,打开跟踪器即可。开启跟踪器:切换用户:CONN SYS/tiger AS S...原创 2019-03-11 20:56:39 · 421 阅读 · 0 评论 -
SQ优化策略
sql的优化:1.对查询进行优化,要尽量避免全表扫描,首先应考虑在进行条件判断的字段上创建索引2.应尽量避免在where字句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描SELECT *FROM SCOTT.empWHERE job IS NULL;3.应尽量避免在where字句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描SELEC...原创 2019-03-11 21:05:06 · 540 阅读 · 0 评论 -
PLSQL基本概念
pl/sql的基本概念:PL/SQL也是一种程序语言,叫作过程化sql语言PL/SQL是Oracle数据库对sql语句的扩展,在普通sql语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断,循环等操作,实现复杂的功能或者计算。PL/SQL只有Oracle数据库有第一个PL/SQL程序:BEGIN --表示开始过程NULL...原创 2019-03-11 21:10:08 · 1953 阅读 · 0 评论 -
FROM子查询
FROM子查询:FROM字句之后跟上的数据来源不只是数据表,还可以是一个查询结果,这就是FROM子查询一般FROM子查询的返回类型的多行多列的结果集查询出平均工资高于2000的职位名称以及该职位的平均工资第一种方式:可以使用HAVING字句实现SELECT job,AVG(sal)FROM empGROUP BY jobHAVING AVG(sal)>2000;第二种方...原创 2019-03-07 15:49:05 · 6372 阅读 · 0 评论 -
HAVING子查询
HAVING 子查询:HAVING 字句的对分组统计函数进行过滤的字句,也可以在HAVING 字句中只用子查询,这就是HAVING子查询查询出平均工资高于所有员工平均工资的职位的名称,以及职位的人数,这些高于平均工资的职位的平均工资:第一步:查询出所有员工的平均工资:SELECT AVG(sal)FROM emp;第二步:按照职位分组,使用子查询SELECT job,COUNT...原创 2019-03-07 15:42:24 · 1942 阅读 · 0 评论 -
常用函数
常用函数:Oracle提供了很多函数,常用的就5个COUNT(*|字段):统计出查询到的数据量SUM(字段):计算出指定字段的数据之和(字段是数字才有意义)AVG(字段):计算出字段的平均值(字段是数字才有意义)MAX(字段):统计出指定的字段中的最大值(字段是日期或者数字才有意义)MIN(字段):统计出指定的字段中的最小值(字段是日期或者数字才有意义)SYSDATE:取得当前日期...原创 2019-03-05 19:38:57 · 152 阅读 · 0 评论 -
EXISTS子查询
EXISTS子查询:特征:将主查询中的数据带到子查询中进行验证,如果验证成功则子查询返回ture,当主查询接受ture的时候被验证的数据就显示,如果在子查询中验证失败则返回false,当主查询接受到false的时候被验证的数据就不显示查询出有部门的雇员的信息:SELECT *FROM emp WHERE deptno IS NOT NULL;SELECT *FROM emp ...原创 2019-03-08 16:44:26 · 301 阅读 · 0 评论 -
数据的更新和删除
数据的更新:插入数据的基本语法:INSERT INTO 数据表(字段1,字段2,字段3···)VALUES(值1,值2,值3···);复制一张数据表:CREATE TABLE myemp AS SELECT * FROM emp;向表中增加数据:INSERT INTO myemp(empno,ename,job,mgr,hiredate,sal,comm,deptno)VAL...原创 2019-03-09 11:34:02 · 132 阅读 · 0 评论 -
简单查询,限定查询,模糊查询,排序查询
简单查询:SELECT * [SELECT 子句] FROM 数据来源(可以是数据表) [FROM 子句]以上两个子句在数据库中执行指令的时候是有顺序的,先执行FROM子句,再执行SELECT子句*: 表示查询所有字段的信息查询emp的所有字段的信息:查询某些字段的信息:SELECT JOB FROM emp;可以发现有重复的信息可以使用DISTINCT...原创 2019-03-04 17:38:57 · 369 阅读 · 1 评论 -
分组统计查询,HAVING字句
分组统计查询:④ SELECT *① FROM 数据来源② WHERE 过滤条件③ GROUP BY 分组字段查询每个职位的平均工资:SELECT job,AVG(sal)FROM empGROUP BY job;查询出每个部门的名称及其人数:SELECT dname,COUNT(*)FROM emp e INNER JOIN dept d ON e.deptno=d....原创 2019-03-07 11:39:52 · 364 阅读 · 0 评论 -
序列的创建和使用
序列的使用:在每张数据表都有一个字段作为数据的唯一区分标志,而且该字段的数据不能重复,这个字段叫作数据表的主键INSERT INTO myemp(empno,ename,job) VALUES(1001,'张三-1','职员');INSERT INTO myemp(empno,ename,job) VALUES(1001,'张三-2','职员');INSERT INTO myemp(e...原创 2019-03-10 20:37:43 · 582 阅读 · 0 评论 -
数据表的创建
创建数据表的基本语法:CREATE TABLE 表名称(字段1 字段类型,字段2 字段类型,字段3 字段类型,字段4 字段类型,...字段 字段类型);创建一张保存老师信息的表:--删除数据表DROP TABLE teacher PURGE;--创建数据表CREATE TABLE teacher(tno NUMBER(4),tname VARCHAR2(10),...原创 2019-03-10 21:09:53 · 375 阅读 · 0 评论 -
WHERE子查询
WHERE子查询:查询出工资低于平均工资的雇员信息:SELECT *FROM empWHERE sal<( SELECT AVG(sal) FROM emp);查询出公司最早入职的雇员信息:SELECT *FROM empWHERE hiredate=( SELECT MIN(hiredate) FROM emp);查询出与scott从事同一工作,并...原创 2019-03-07 15:21:09 · 3997 阅读 · 0 评论 -
PLSQL中的程序控制
PL/SQL中的程序控制:为变量设置默认值:DECLARE v_empno NUMBER NOT NULL:='7788';BEGINDBMS_OUTPUT.put_line('编号是:'||v_empno);END;定义常量:DECLARE v_empno CONSTANT NUMBER;BEGINDBMS_OUTPUT.put_line('编号是:'||v_empno)...原创 2019-03-11 21:15:02 · 175 阅读 · 0 评论