![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
oracle基本操作
小田田爱学习
任何一种坚持都能够区分别人与自己
展开
-
Oracle 查询
nvl进行判空处理,如果money字段是空 就用0来代替select name ,nvl(money,0),from yy;name like ‘_ _o%’ 查找第三个字母是o的名字 查询平均薪资大于2000的部门select avg(sal),max(sal),depton from rmp group by depton haveing avg(sal)>2000;查询本部门高于部门原创 2017-01-04 15:30:40 · 265 阅读 · 0 评论 -
给表追加主键-----报错ORA-02437: 无法验证 (customer.id) - 违反主键
给表追加主键—–报错ORA-02437: 无法验证 (DENGCHAO.TEST) - 违反主键原因是数据表使用过程中没有主键,造成了数据表ID列有很多重复id,所以报错,这个时候先修改数据库的数据保证唯一性,然后再添加主键,或者清空数据表加主键原创 2017-01-12 17:24:03 · 14257 阅读 · 0 评论 -
pl/sql 编程(一)
按符号来命名 1.定义变量,建议用v_做前缀 2.定义变量,用c_做前缀 3.定义游标,用_cursor做后缀 4.定义例外,用e_做前缀 pl/sql 由三部分组成 :定义,执行,例外处理declear /*定义部分,常量,变量,游标,例外,复杂数据类型 begin /*执行部分 要执行的SQL语句 exception /*例外处理-处理各种错误no_data_found or原创 2017-02-09 17:34:06 · 284 阅读 · 0 评论 -
pl/sql编程(二)
创建一个函数 输入姓名 返回年薪(表里存的是月薪)create function sp_fun2(spName varchar2) return number is yearSal number(10,2);beginselect sal*12 into yearSal from emp where name=spName;return yearSal;end;/调用函数var a n原创 2017-02-09 17:38:40 · 259 阅读 · 0 评论 -
pl/sql编程(三)标量
定义标量 定义一个小数并给与一个初始值:=是pl/sql的赋值号v_sal number(6,2):=5.4定义一个布尔变量,不能为空,初始值为falsev_sex boolean not null default false;输入员工号,显示姓名,工资,个人所得税(税率0.03)演示变量的使用set serveroutput on;打开输出选项declarec_tax_rate nu原创 2017-02-09 17:40:26 · 293 阅读 · 0 评论 -
pl/SQL编程(四)复合变量composite
复合变量composite,用于存放多个值的变量主要有:pl/sql记录pl/sql表嵌套表varray1.pl/sql记录declare--定义一个pl/sql记录类型emp_record_type 包含两个数据类型 spName,salarytype emp_record_type is record(spName emp.name%type,salary emp.sal%type)原创 2017-02-09 17:45:32 · 467 阅读 · 0 评论 -
pl/SQL编程(五)参照变量
参照变量 用于存放数值指针的变量,通过使用参照变量可以使应用程序共享相同对象,从而降低占用的空间可以使用游标变量(ref cursor)和对象类型变量(ref obj_type)两种参照变量 使用游标时,当定义游标不需要指定相应的select语句,但是当使用游标时(open时)需要指定select语句 实例如下:1.编写pl/sql块 可以输入部门号,并显示部门所有的员工姓名和工资declar原创 2017-02-09 17:47:37 · 303 阅读 · 0 评论 -
pl/sql编程(六)循环
请编写一个过程可输入用户名,并循环添加10个用户到user表中,用户编号从1到10; 第一种循环 至少执行循环体一次create or replace procedure sp2(spName varchar2) isv_num number:=1;beginloopinsert into users values(v_num,spName);exit when v_num=10;v原创 2017-02-09 18:08:14 · 633 阅读 · 0 评论 -
pl/sql编程(七) 判断
–编写一个过程,可以输入一个雇员名如果该员工的工资低于2000 就给该员工工资增加20% 否则增加10%create or replace procedure sp1(spName varchar2) isv_sal emp.sal%type;beginselect sal into v_sal from emp where name=spName;if v_sal<2000 then原创 2017-02-09 18:10:19 · 495 阅读 · 0 评论 -
oracle 非正常关闭下的数据库无法启动
Oracle在断电非正常关闭下报出:ORA-01078和LRM-00109. 1..locate init.ora 找到文件目录 2、进入/u01/app/oracle/product/11.2.0/dbhome_1/dbs执行:cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs3、检查有无init(SID).ora文件,如果没有执行下一步 4、将原创 2017-01-10 12:20:06 · 4135 阅读 · 0 评论 -
oracle 用户管理
Oracle 安装之后会默认生成三个用户SYS用户:超级管理员 权限最高 角色:DBA 密码:change_on_installsystem 用户:系统管理员 权限高 角色:dbaoper 密码:managerscott 用户:普通用户 密码:tigersys 与 system的区别SYS有 create database 的权限 而system没有,其他都相似日常管理中 我们则使用syste原创 2016-12-29 16:15:06 · 269 阅读 · 0 评论 -
oracle 修改默认日期格式
Oracle的默认日期格式是 dd-mon-yy 例如 29-12-16使用下面就可以修改默认的日期格式alter session set nls_date_format='yyyy-mm-dd';原创 2016-12-30 09:19:00 · 4244 阅读 · 0 评论 -
Oracle分页
oracle 分页三种方式 1.rownum行号分页 select * from yy ;2.显示rownum[oracle分配的] select a.*,rownum rn from (select * from yy) a;3.二分分页 select * from (select a.*,rownum rn from (select * from yy) a where rown原创 2017-01-04 15:36:02 · 275 阅读 · 0 评论 -
Oracle 同步数据库
采用plsql建立dblink 右键-新建验证是否建立成功select * from yy@dblink;(t_yy目标库表名 ,dblink是link的名字) merge into yy@dblink b using t_yy c on (b.id=c.id) 当目标库id和源库的id一致 则让目标库和源库的数据一致 when matched then update set b.name=c.原创 2016-12-28 16:46:56 · 316 阅读 · 0 评论 -
Oracle基础操作spool
运行脚本start d:\test.sql编辑脚本edit d:\test.sqlspool 是将sqlplus 的内容输出到指定的文件spool d:\aa.sqlspool一个文件 aa.sql 此文件执行之后就会有 不用新建select * from yy;执行一些操作spool off;关闭 spool 打开aa.sql出现的就是 select的内容原创 2016-12-29 11:30:43 · 282 阅读 · 0 评论 -
oracle 基础之表操作
给表 添加字段alter TABLE table_name add column_name datatype;修改字段类型 alter TABLE table_name MODIFY column_name datatype;修改字段名(类型不变)alter tabel table_name rename column 旧字段 to 新字段删除字段alter table table_name dro原创 2016-12-25 17:30:59 · 264 阅读 · 0 评论 -
Oracle数据库表空间
dba_tablespaces(数据库中所有表空间) user_tablespaces (数据库中用户表空间) dba_data_files 永久表空间数据字典 dba_temp_files 临时表空间数据字典 表空间属性一个数据库可以包含多个表空间,一个表空间只能属于一个数据库一个表空间包含多个数据文件,一个数据文件只能属于一个表空间基本的表空间(系统中默认创建的几个表空间:原创 2016-12-09 17:12:33 · 372 阅读 · 0 评论 -
Oracle登录连接数据库
连接到本地数据库connect sys/localhost as sysdba查看dba数据字典数desc dba_users查看Oracle数据库下的用户select username from dba_user; 启用用户alter user username account unlock启用scott用户的语句alter user scott account unlock用scott 用户登录原创 2016-12-09 16:58:34 · 630 阅读 · 0 评论 -
oracle约束-constraint
五种常见约束 1.not null 2.unique 3.primary key 4.foreign key 5.check 强制行数据必须满足的条件 如必须大于5小于100;建一张purchase表customerId 是外键price 必须大于0email 不能重复sex 只能是男女,默认男购买数量nums 必须是1到30create table purchase(good原创 2017-01-06 13:46:25 · 407 阅读 · 0 评论 -
oracle索引
建索引 的最佳条件: 在大表上建立索引 在where字句和相等条件经常用到的列建索引 客户表 name 字段建索引 索引的层次不能超过四层索引缺点 1.建立索引,系统要占用大约为表的1.2倍的硬盘和内存来保存索引 2.更新数据的时候,系统必须要有额外的时间来更新索引,维持数据和索引的一致性在以下字段建索引就很蠢 1.很少或者从来不引用的字段 2.逻辑性字段 如sex 非常容易查询的字原创 2017-01-06 14:00:28 · 231 阅读 · 0 评论 -
ORA-01012:not logged on的解决办法
conn / as sysdba 报错ORA-01012: not logged on发生原因:关闭数据库是shutdown 后面没有接关闭参数中的任何一个。nomal —>所有连接都断开时才能关闭;transactional —>等待事务结束后,主动断开连接;immediate —>主动断开事务和连接abort —>立刻关闭数据库,这个操作是危险的,不会同步数据,不触发检查点,回滚段直接清 空,相原创 2017-04-11 16:00:53 · 48972 阅读 · 2 评论