Oracle
流烟默
这个作者很懒,什么都没留下…
展开
-
Oracle-高级子查询
1.多列子查询--查询与141号或174号员工的manager_id department_id--相同的其他员工的employee_id manager_id department_id【old】/*select employee_id,manager_id,department_id from employeeswhere manager_id in (select manager_原创 2016-10-18 20:27:17 · 839 阅读 · 0 评论 -
Oracle-序列、索引和同义词
序列--create sequencecreate sequence empseqincrement by 10start with 10maxvalue 100cycle--need cyclenocache--needn't cache--查询序列select sequence_name,min_value,max_value,increment_by,last_number f原创 2016-10-16 16:14:44 · 675 阅读 · 0 评论 -
Oracle-用户、角色以及权限控制
系统权限请使用DBA操作--创建用户create user myuseridentified by myuser;--赋予权限grant create session //privilegeto myuser--赋予表空间alter user myuser quota unlimited on on users--无限制额--修改用户密码alter user myuser ident原创 2016-10-16 18:01:15 · 1276 阅读 · 0 评论 -
“sqlplus / as sysdba”执行失败---Win10下,DOS命令添加系统用户到ora_dba用户组
ORA_DBA:是ORACLE 的特有用户,是超级管理员权限,建成DBA 它具有管理数据库的最高权限。1.利用命令查看当前系统用户:net user这是当前系统中所有的用户。2.查看用户组net localgroup–查看用户组;3.查看ora_dba用户组下的具体用户:net localgroup ora_dba;并没有第一步中查到的本机管理员用户。4.添加本机管理员用户到ora_dba用户组下:原创 2016-10-04 23:18:37 · 14156 阅读 · 18 评论 -
Oracle-Top-N分析
Top-N,根据某一规则进行排序,然后取其前N行数据。(1)未进行规则排序时,表数据显示select rownum, employee_id ,last_name,salaryfrom employees (2)根据salary进行降序排列select rownum, employee_id ,last_name,salaryfrom employees order by salary desc原创 2016-10-15 18:33:25 · 3356 阅读 · 0 评论 -
Oracle - 表操作语句
Oracle【修改表】增加列:ALTER TABLE t_useradd ( born_date_time datetime)修改列:MODIFY( username VARCHAR(15))删除列drop column born_date_time1--rename column salary to sal--重命名列--set unused column email--设置列不可用-原创 2017-05-12 12:13:00 · 565 阅读 · 0 评论 -
Oracle-SET运算符/查询的并交差
1.union/union all1.必须具有对应的列数以及数据类型2.默认按照第一列从小到大的顺序排列--employees01 1-70,33-80;employees01 3-90,33-80--查找去重之后两表的并集-union-37/*select employee_id,department_idfrom employees01unionselect employee_id,原创 2016-10-18 20:10:07 · 1406 阅读 · 0 评论 -
Oracle - PLSQL导入sql脚本
【1】使用plsql登录到需要导入数据的数据库。在【tools】–【Import tables】【2】选择第二个【SQL Inserts】,选取sql基本执行导入原创 2017-11-02 17:32:17 · 11844 阅读 · 7 评论 -
ORA-01658: 无法为表空间XXX段创建 INITIAL 区
ORA-01658: 无法为表空间space中的段创建 INITIAL 区;或者: ORA-01658: unable to create INITIAL extent for segment in tablespace string。或者ORA-01659:无法分配超出 4 的 MINEXTENTS (在表空间XXX中) 。也就是说表空间大小不够,增加表空间即可。① 查看表空间总大小:select原创 2017-12-06 15:42:07 · 44773 阅读 · 0 评论 -
Oracle - Spool导出数据到TXT文件
【1】Spoolspool的作用可以用一句话来描述:在sqlplus中用来保存或打印查询结果。即,可以将sql查询的结果保存问文件。spool常用的设置 set colsep','; //域(列)输出分隔符 set echo off; //不显示start启动的脚本中的每个sql命令,缺省为on set feedback off; //不回显本次sql命令处理的记...原创 2018-02-22 19:09:18 · 8709 阅读 · 0 评论 -
Oracle-view小结
--创建视图/*create view empview2asselect employee_id,last_name,salary from employees where department_id = 80*/--修改视图/*create or replace view empview2asselect employee_id ,last_name,salary from em原创 2016-10-15 17:23:15 · 1357 阅读 · 0 评论 -
Oracle-约束小结
--not null只能作用于列级;--unique可作用于列级和表级;--primary key 可作用于列级和表级,相当于同时声明了not null 和unique;--foreign key 可作用于列级和表级,一般作用于表级--check() 可作用于列级和表级--创建表的时候创建约束,两种不同的形式(自定义名和系统默认)/*create table emp2(id number原创 2016-10-15 12:27:08 · 580 阅读 · 0 评论 -
thin/oci两种方式连接Oracle数据库
thin方式连接:jdbc:oracle:thin:@<主机名或IP>:1521:<数据库SID名>;具体示例:jdbc:oracle:thin:@127.0.0.1:1521:testoci方式连接:java:oracle:oci@<本地服务名>具体示例:java:oracle:oci@testthin和oci属于两种不同的连接类型。thin属于Direct-to-Database Pure Ja原创 2016-10-12 09:20:06 · 2083 阅读 · 0 评论 -
Oracle-游标
【游标-while】/*利用游标,调整公司中员工的工资;工资范围 调整基数0-5000 5%5000-10000 3%10000-15000 2%15000- 1%*/declarecursor emp_sal_cursor is select employee_id,salary from employees;v_temp number(4,原创 2016-10-22 11:25:50 · 927 阅读 · 0 评论 -
PLSQL-基本语法与记录类型
1.基本语法–执行该句才会输出到控制台 set serveroutput ondeclare--声明的变量、类型和游标begin--程序的执行部门(类似于java中的main方法)dbms_output.put_line('helloworld');//直接输出到控制台exception--针对begin块中出现的异常如何处理--when...then...--when...then.原创 2016-10-19 22:17:57 · 2372 阅读 · 0 评论 -
PLSQL-异常
【预定义异常】declarev_sal employees.salary % type;beginselect salary into v_sal from employees where employee_id = 1001;dbms_output.put_line(v_sal);exceptionwhen no_data_found then dbms_output.put_line('查无此原创 2016-10-22 16:41:08 · 819 阅读 · 0 评论 -
PLSQL-流程控制与流程循环
1.流程控制【if…then…elsif…then…else…end if】--查询出150号员工的工资,若其工资大于或等于1000则打印'salary>=1000';--若在5000到10000之间,则打印'5000<=salary<10000';否则打印'salary<5000'declare//声明变量v_sal employees.salary%type;beginselect sal原创 2016-10-22 09:32:26 · 647 阅读 · 0 评论 -
Oracle-函数
【1.nvl/nvl2】--select employee_id,last_name,salary*12*(1+nvl(commission_pct,0)) from employees//如果commission_pct存在,则为其自身,否则赋值为0;--select employee_id,last_name,commission_pct,nvl2(commission_pct,commiss原创 2016-10-22 10:10:21 · 541 阅读 · 0 评论 -
PLSQL-存储过程
【无返回值,有 out 型参数】--定义一个存储过程,获取给定部门的工资总和(通过 out 参数)。--要求:部门号和工资总额定义为参数create or replace procedure get_sal2(dept_id number,sumsal out number)ascursor salary_cursor is select salary from employees where d原创 2016-10-22 19:13:03 · 1102 阅读 · 0 评论 -
PLSQL-创建函数
【无参数】--创建一个函数,返回当前日期,有返回值无参数create or replace function get_sysdatereturn dateasv_date date;beginv_date := sysdate;return v_date;end;【调用方式】begindbms_output.put_line(to_char(get_sysdate,'yyyy"年"-mm"原创 2016-10-22 19:08:42 · 8800 阅读 · 0 评论 -
PLSQL-trigger
选择触发时机:before||after 选择DML触发:insert、update、delete 触发模式: for each row–单行触发; 或者执行完触发--更新表时,输出更新前后salary的值create or replace trigger update_emp_triggerafter--before or afterupdate on employeesfor ea原创 2016-10-22 22:09:47 · 655 阅读 · 0 评论 -
Oracle - 数据库连接的几种方式
【1】使用PLSQL工具如下图所示:【2】SQL*Plus客户端Oracle 提供了SQL*Plus工具让其连接,如下图所示:连接主界面如下:这里主机字符串需要注意下,本机默认输入orcl即可。连接成功界面如下:【3】DOS下使用命令通过SQL*Plus连接这里需要使用“以管理员身份”运行命令窗口。① sqlplus / as sysdba这里作为DBA进行连接,...原创 2018-10-09 19:47:56 · 17550 阅读 · 0 评论