ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:21.80KB ,
资源ID:9400750      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9400750.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(我学oracle时的随手笔记(数据库面试必备知识).docx)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

我学oracle时的随手笔记(数据库面试必备知识).docx

1、我学oracle时的随手笔记(数据库面试必备知识) 都是些基础的,还有提高的。拿出来给大家分享吧!!! **关于oracle自带的表***********************************8 emp: empno:员工编号; ename:员工名字; job:员工工种; mgr: 上司; hiredate:入职时间;sal: 基本工资; comm: 补贴; deptno:所属部门编号; dept: deptno:部门编号; dname:部门名称; loc:地理位置; salgrade: grade: 工资等级; losal:最低限额;

2、 hisal:最高限额; dual: 系统自带的一张空表; 可用于计算数据:select 2*3 from dual; **sql_function1********************************************************** select lower(ename) from emp; 取出的名字全部变成小写。 select ename from emp where lower(ename) like '_a%';取出的名字变成小写后

3、 不含字母a select substr(ename, 2, 3) from emp;从第二个字符截,截取三个字符。 select cha(65) from dual; 将数字转化为字符(显示为a)。 select ascii('A') from dual; 将字符转化为数字。 select round(23.652) from dual; (显示24) select round(23.652, 2) from dual; (显示23.65) select round(23.652, -1) from dual; (显示20) select to_char(

4、sal, '$99,999.9999')from emp;强制转化为指定的格式。 select to_char(sal, 'L0000.0000')from emp;同上。 select to_char(hiredate, YYYY-MM-DD HH:MI:SS) from emp; 对时间格式显示处 理。 select to_char(sysdate, YYYY-MM-DD HH:MI:SS) from emp; 12进制。 select to_char(sysdate, YYYY-MM-DD HH24:MI:SS) from e

5、mp; 24进制。 *********************************************************************** **sql_function2******************************************************* select ename, hiredate from emp where hiredate > to_date('1981-2-20' 12:34:52, 'YYYY-MM-DD HH24:MI:SS'); 函数to_date 将字符转化为时间格式。 select sal

6、from emp where sal > to_number('$1,250.00', '$9,999.99'); 函数to_number将字符转化为数字格式,以作比较。 select ename sal*12 + nvl(comm 0) from emp; 函数nvl作用为当comm为null的时候当作处理,避免了comm为null给结果带来的不便。 ************************************************************************* **group_function*************************

7、 select max(sal) from emp;输出薪水值最高的。 select min(sal) from emp;输出薪水值最低的。 select avg(sal) from emp;输出平均薪水值。 select to_char(avg(sal),'99999999.99') from emp;按照指定格式输出平均薪水 值。 select round(avg(sal),2) from emp; 精确到小数点后面2位。 select sum(sal) from

8、emp; 输出薪水值的总和。 select count(*) from emp;求出一共有多少条记录。 select count(*) from emp where deptno = 10; 求部门为10号的记录条数。 select count(ename) from emp; 求一共有几个名字。 select count(comm) from emp; 求非空comm的记录条数。 select count(deptno) from emp; select count(distinct deptno) from emp; **************************

9、 **group_by************************************************************* select deptno, avg(sal) from emp group by deptno; 将部门薪水平均分组。 select deptno, job, max(sal) from emp group by deptno; 按组合分组。 select ename, max(sal) from emp where sal = (se

10、lect max(sal) from emp); select ename max(sal) from emp group by deptno; 这样是错误的。 select deptno max(sal) from emp group by deptno; 这样可行。 ************************************************************************ **having**************************************************************** select a

11、vg(sal), deptno from emp group by deptno; select avg(sal), deptno from emp group by deptno having avg(sal) > 2000; having是对分组进行限制。 1 select avg(sal) 选择 2 from emp 表原 3 where sal > 1200 条件过滤 4 group by deptno 分组 5 having avg(sal) > 1500 对结果进行限制 6 order by avg(s

12、al) desc 对产生的结果进行排序 ********************************************************************** **子查询************************************************************** select 语句里面套另外一个select语句。 select ename, sal from emp where sal > (select avg(sal) from emp); select ename,sal from emp join(sel

13、ect max(sal) max_sal, deptno from emp group by deptno) t on (emp.sal = t.max_sal and emp.deptno = t.deptno); **self_table********************************************************** 自连接:select e1.ename, e2.ename from emp e1, emp e2 where e1.mgr = e2.empno; 把一个表当成两个来使用。 *************************

14、 **sql1999_table_connections******************************************** 1999年标准:select ename, dname from emp cross join dept; 旧: 新:select ename, dname from emp join dept on (emp.deptno = deptno); select ename, dname from emp join dept using(d

15、eptno);(了解即可,不推荐使 用) select ename, grade from emp e join salgrade s on (e.sal between s.losal and s.hisal); 左外连接:select e1.ename, e2.ename from emp e1 left join emp e2 on(e1.mgr = e2.empno); 右外连接:select ename, dname from emp e right outer join dept d (e.deptno = d.dep

16、tno); 全外连接:select ename, dname from emp e full join dept d (e.deptno = d.deptno); ************************************************************************ **求部门平均薪水等级**************************************************** select deptno, avg(grade) from (select deptno, ename, grade from emp jo

17、in salgrade s on (t.avg_sal between s.losal and s.hisal)) t group by deptno; ************************************************************************* **部门中那些人是经理人************************************************** select ename from emp where empno in (select distinct mgr from emp); *******

18、 **不用组函数求薪水的最高值(面试题)************************************ select distinct sal from emp where sal not in (select distinct e1.sal from emp e1 join emp e2 on (e1.sal

19、 **平均薪水最高的部门的编号**************************************** select deptno, avg_sal from (select avg(sal) avg_sal , deptno from emp group by deptno) where avg_sal = (select max(avg_sal) from (select avg(sal) avg_sal , deptno from emp group by deptno

20、) ) ********************************************************************* **求平均薪水最高的部门的部门名称 select dname from dept where deptno = ( select deptno, avg_sal from (select avg(sal) avg_sal , deptno from emp group by deptno) where avg_sal = (select max(avg_sal)

21、from (select avg(sal) avg_sal , deptno from emp group by deptno) ) ) 方法二: select dname from dept where deptno = ( select deptno, avg_sal from (select avg(sal) avg_sal , deptno from emp group by deptno) where avg_sal = (select max(avg_sal) from (select

22、 avg(sal) avg_sal, deptno from emp group by deptno) ) ) ********************************************************************** **求平均薪水的等级最低的部门的部门名称 ************************************** **creat new user and insert**************************************** 1--backup scott

23、2--create user create user wp identified by wp default tablespace users quota 10M on users;(创建新用户) grant create session, create table , create view to wangpeng(赋予新用 户权限) 3--import the data insert into dept values (50, 'game' 'bj'); 插入数据。 insert into dept (deptno, dname) valu

24、es (60,'game'); 同上。 insert into dept2 select * from dept; 数据又挨着插了一遍。 rollback;回退命令。 create table dept2 as select * from dept; 备份数据。 ************************************************************************* **rownum*************************************************************** select emp,

25、ename from emp where rownum <=5; 取前四行。 rownum只能和< 和<=使用,大于号和等于号不支持。 select ename , sal from (select ename, sal from emp order by sal desc) where rownum <=5; select ename, sal from ( select ename,sal, rownum r from (select ename, sal from emp order by sal desc) ) where

26、 r >=6 and r<=10; 求薪水最高的第6到第10名雇员。 ************************************************************************ **update******************************************************* update emp2 set sal = sal*2, ename=ename||'-' where deptno = 10; 更改。 delete from emp2; 删除。 *************************

27、 **创建新表与约束**************************************************** create table stu ( id number(6) primary key, //主键约束,主键非空且唯一,也可以写在后面 constraint stu_id_pk primary key(id), name varchar2(20) constraint stu_name_nn not null, //not null

28、指定 必须为非空 sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4), email varchar2(50), constraint stu_name_email_uni unique(email, name) //email与name组合 唯一 ) 外键参考的值段必须是主键,加上constraint stu_class_fk fo

29、reign (class) reference class(id), ************************************************************************* **alter修改表结构*************************************************** alter table stu add(addr varchar2(100)); //添加字段 alter table stu drop(asddr); alter table stu modify(asddr varchar2(50));

30、 alter table stu drop constraint stu_class_fk; //删除约束条件 alter table stu add constraint stu_class_fk foreign key (class) reference class (id); //重新添加约束条件 **************************************************************** **查询系统的表********************************************** select table_name

31、from user_tables; //当前用户下所有的表 select view_name from user_views; //当前用户下的视图 select constraint_name,table_name from user_constraints; desc dictionary //数据字典表 ****************************************************************** **索引*******************************************************

32、 create index idx_stu_email on stu(email); //创建索引 drop index idx_stu_email; //删除索引 select index idx_name from user_indexes; select view_name from user_views; desc (视图的名称) create view v$_stu as select id, name, age from stu; 只给予查看id,name,age 的权力,保护私有数据。 *******************************

33、 **sequence序列***************************************************** create sequence seq; //创建序列 select seq.nextval from dual; insert into article values (seq.nextval, 'a', 'b'); //添加数据********************************************************************

34、 **三范式********************************************************** 第一范式:要有主键且列不可分。 第二范式:不能存在部分依赖:非主键的字段不能依赖于组合主键的一部分。 第三范式:不能存在传递依赖。 ******************************************************************* **PL_SQL语句************************************************************* 简单小程序: SQL> set

35、serveroutput on; SQL> begin dbms_output.put_line('HelloWorld!'); end; / HelloWorld! (显示的结果) 运行中dcomcnfg命令是查看系统组件服务 变量申明的规则: 变量名不能使用保留字,如from,select等 第一个字符必须是字母。 变量名最多包含30个字符 不要与数据库的表或者列同名 每一行只能申明一个变量 常用变量的类型: binary_integer: 整数,主要用来计数而不是用来表示字段类型 number:数字类型 cha

36、r:定长字符串 varchar2:变长字符串 date:日期 long:长字符串,最长2G boolean:布尔类型,可取true,false和null值。 ---Table变量类型 declare type_table_emp_empno is table of emp.empno%type index by binary_integer; begin v_empnos(0) :=7369; v_empnos(2) :=7839; v_empnos(-1) :=9999; dbms_output.put_line(v_empnos

37、1)); end; ---Record变量类型 declare v_temp dept%rowtype; begin v_temp.deptno := 50; v_temp.dname := 'aaaa'; v_temp.loc := 'bj'; dbms_output.put_line(V_temp.deptno || ' ' || v_temp,dname); end; ---使用%rowtype申明record变量 declare v_temp dept%rowtype; begin

38、v_temp.deptno := 50; v_temp.dname := 'aaaa'; v_temp.loc := 'bj'; dbms_output.put_line(v_temp.deptno || ' ' || v_temp.dname); end; ---------------------------- declare v_ename emp.ename%type; v_sal emp.sal%type; begin select ename, sal into v_ename,v_sal from emp whe

39、re empno = 7369; ebms_output.put_line(v_ename || ' ' || v_sal); end; / (显示的结果为 SMITH 800) ---------------------------- declare v_deptno emp2.deptno%type :=10; v_count number; begin --update emp2 set sal = sal/2 where deptno = v_deptno; select count(*) into v_count f

40、rom emp2; dbms_output.put_line(sql%rowcount || '条记录被影响'); commit; end; --ddl语句--------------------------- begin execute immediate 'create table T (nnn varchar2(20) default "aaa")'; end; / --------------------------------------- declare v_sal emp.sal%type; begin se

41、lect sal into v_sal from emp where empno = 7369; if (v_sal < 1200) then dbms_output.put_line('low'); elseif (v_sal <2000) then dbms_output.put_line('middle'); else dbms_output.put_line('hign'); end if; end; / ----------------------------------

42、 declare v_sal emp.sal%type; begin select sal into v_sal from emp where empno =7839; if(v_sal < 2500) then update emp set sal = sal*2 where empno = 7839; dbms_output.put_line(sal); if(v_sal = 2500) then dbms_output.put_line(sa

43、l); then update emp set sal = sal/2 where empno = 7839; dbms_output.put_line(sal); end if; end; --错误处理---------------------------------------------------------- create sequence seq_errorlog_id start with 1 increment by 1; declare v_deptno dept.deptno%type :=

44、10; v_errcode number; v_errmsg varchar2(1024); begin delete from dept where deptno = v_deptno; commit; exception when others then rollback; v_errcode := SQLCODE; v_errsmg :=SQLRRM; insert into errorlog values (seq_errorlog_id.nex

45、tval, v_errmsg, sysdate); commit; end; --游标 declare cursor c is select * from emp; v_emp c%rowtype; begin open c; loop fetch c into v_emp; exit when (c%notfound); dbms_output.put_line(v_emp.ename); end loop; close c; end; / --使用for循环

46、的游标 declare cursor c is select * from emp; begin for v_emp in c loop dbms_output.put_line(v_emp.ename) (v_emp在前面已经申明) end loop; end; --带参数的游标 declare cursor c(v_deptno emp.deptno%type, v_job emp.job%type) is select ename, sal from emp where dep

47、tno = v_deptno and job = v_job; --v_temp c%rowtype; begin for v_temp in c(30, 'CLERK') loop dbms_output.put_line(v_temp.ename); --存储过程 当有编译的错误时 ,用命令show error 可显示出错的地方。 create or replace procedure p is cursor c is select * from emp2 for update; begin for v_emp

48、in c loop if (v_emp.deptno = 10) then update emp2 set sal = sal +10 where current of c; elseif (v_emp.deptno = 20) then update emp2 set sal = sal +20 where current of c; else update emp2 set sal = sal +20 where current of c;

49、 end if; end loop; commit; end; select * from emp2; begin p; end; --带参数的存储过程 create or replace procedure p (v_a in number, v_b number, v_ret out number, v_temp in out number) is . . . ********************************************************************* **t

50、rigger************************************************************ 创建触发器: create or replace trigger trig after update on dept for each row begin update emp set deptno = :NEW.deptno where deprno = :OLD.deptno; end; / 然后就可以这样子更改了: update emp set deptno = 99 where deptno = 10; ***

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服