1.学会安装/启动/卸载oracle
1.oracle安装会自动的生成sys用户和systen用户
1.安装oralce11G
1.桌面版
3.解压两个压缩包到同一目录,即"database"。【/*如果在合并过程中提示有重复文件,则说明下载文件出问题了,请重新下载吧*/】然后右键”setup.exe“,点管理员身份运行(或者双击文件即可运行),如下图所示:
4.稍微等待一会,就会出现如下图所示的安装画面,取消下图所示的选中,然后单击"下一步"继续,同时在出现的信息提示框单击"是"继续。Oracle默认是选择基本安装。
5.之后就会出现安装选项对话框(”创建和配置数据库“),默认点击"下一步"继续。
9.之后点击"完成"就开始安装了。接下来就是”安装产品“界面......
11.至此,Oracle11g R2已经安装完成,你可以在开始菜单->Oracle - OraDb11g_home1->Database Control - orcl中打开访问网址 .
12.登陆和查询:在连接身份里选择"SYSDBA",再用户名处输入"sys",密码为你最初设定的密码(如上:123456),点击"登陆"你就可以访问数据库及查询数据了。
3.服务版本
转载连(oralce服务类版本安装)
1.打开相应的解压路径,找到安装文件“setup.exe”,双击进行安装,如下图所示
2 配置安全更新。电子邮件可写可不写,取消下面的“我希望通过My Oracle Support接受安全更新(W)”,如下图所示,单击下一步。
3.安装选项。直接选择默认的“创建和配置数据库”,如下图所示,单击下一步。
4. 系统类。由于咱们安装的是服务器,所以选择“服务器类”,如下图所示,单击下一步。
5. 网格安装选项。选择“单实例数据库安装”,如下图所示,单击下一步。
6. 安装类型。选择“高级安装”,如下图所示,单击下一步。
7. 产品语言。直接默认即可(简体中文、英语),如下图所示,单击下一步。
8. 数据库版本。选择“企业版”,如下图所示,单击下一步。
9. 安装位置。填入安装路径(只需要填“Oracle基目录”即可,“软件位置”会自动生成),如下图所示,单击下一步。
10. 配置类型。选择“一般用途/事务处理”,如下图所示,单击下一步。
11.数据库标识符。填入全局数据库名和SID,如下图所示,单击下一步。
12.配置选项。切换到“字符集”选项卡,选择“使用Unicode(AL32UTF8)”,如下图所示,单击下一步。
13. 管理选项。直接单击下一步,如下图所示。
14. 数据库存储。直接单击下一步,如下图所示。
15. 备份和恢复。如果需要对数据进行备份,就启用自动备份,小编这里选择“不启用自动备份”,如下图所示,单击下一步。
16. 方案口令。为了便于测试,这里使用了相同的密码,实际部署时可根据实际情况自行决定。
17.概要。完成先决条件检查后,单击完成就可以正式开始安装了,如下图所示,单击下一步。
18. 安装产品。安装完成后,会列出相关数据库配置清单,这个最好截图保存,如下图所示,单击确定
19. 完成。这时安装已完成,单击关闭即可
20. 测试一下。打开Oracle自带的SQL PLUS,如下图所示。
21. 输入用户名、密码(就是第18步设置的密码),测试成功!可以直接输入SQL语句了!需要注意的是,这里Oracle输入的口令是不显示的。
2.卸载oracle11G
-
3.在产品清单窗口中,单击全部展开,除了OraDb11g_home1外,勾选其他项目,单击删除
4. 打开运行窗口,输入regedit,打开注册表,依次展开HKEY_LOCAL_MACHINE\SOFTWARE,找到oracle,删除之
5.依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services中,删除所有oracle开头的项
6. 依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除所有oracle开头的项; 在HKEY_CLASSES_ROOT,删除以ora开头的项
7. 重启电脑,删除oracle目录,删除Oracle的安装目录app等
来自百度经(oracle11G删除)
4.学会在oracle中编写简单的select语句
3.oracle用户管理
*profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为
default的profile.
创建profile文件
sql> create profile 函数名称 limit failed_login_attempts 3 password_lock_time 2;(创建语言)
b.给用户解锁
sql> alert user 用户 account unlock
c.终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要DBA的身份来操作
sql> create profile 函数名称 limit password_file_time 10 password_grace_time 2;
sql>alter user 用户 profile 函数名称
d.删除profile
当不需要某个profile文件时,可以删除该文件。
sql>drop profile 函数名称
4.oracle表的管理
用法:从conn 用户名/密码@网络服务名
2.建表规则
(1).必须以字母开头
(3).不能使用oracle的保留字
(4 ).只能使用如下字符,A-Z,a-z,0-9,$,#等
3.数据类型
字符型
varchar2 (20) 变长 最大4000字符. 例:oralce 分配4个字符。这样可以节省空间
clob 字符型大对象,最大 4G
数值型
number 范围 -10的38次方 10的38次方表示整数 可以表示整数,也可以表示小数
number(5,2)
number(5)
表示一个5位整数
日期类型
二进制 (图片,声音,MP3,MP4等等)
blob 二进制数据 可以存放图片/声音 等等
4.表的创建
create table 表名(
xxxx number(2),
5,插入语句
insert into student values(1,'xx','xx');
6.oracle日期格式处理
如果需要存储自己想要的日期格式就需要,更改默认日期格式
alert session set nls_date_format = 'yyyy-mm-dd';
7.自连接(关键)
1、not null
2、unique
4、foreign key
5、check
索引
使用原则
1、在大表上建立索引才有意义
3,、索引的层次不要超过4层
1、单列索引
单列索引是基于单个列所建立的索引,比如:
如果说经常在name 作为的,就可以建立索引
select * from user where name = 'zxc';
create index nameIndex on user(name)
在同一张表上可以有多个索引,但是要求列的组合必须不同比如:
create index emp_indx1 on 表名 (列名,列名);
3、索引的缺点
3、很少或 从不引用的字段;
4,、逻辑性的字段,如 男或女,是或否等
pl/sql编程
2、过程,函数,触发器是pl/sql编写。过程函数,触发器是在oralce中
pl/sql是非常强大的数据库过程语言,过程,函数可以再java程序中调用
存储过程创建
create procedure 过程名称 is
##执行部分
insert into mytest values('ssss','sssss');
create or replacp(替换的意思) procedure is ...
2、调用存储过程
exec 过程名称 或者call 过程名称
1)定义变量时,建议用v_作为前缀 v_sal
2)定义常量时,建议用c_作为前缀 c_rate
4)定义列外时,建议用e_作为前缀 e_error
4、块结构示意图
/*定义部分 ----------定义常量、变量、游标、例外、复杂数据类型
exception
/*例外处理部分------处理运行的各种错误
end
5.相关说明
begin
dbms_output.put_line('hello');
end;
dbms_output是oracle所提供的包 (类型java的开发包),该包包含一些过程,put_line就是dbms_output_put_line包含的一个过程
6,案例2-包含第一部分和执行部分的pl/sql块
declare
begin
select ename into v_ename(是指ename查出来的值放在 v_ename里面去) from emp where empno = &no;(控制台接收参数)
dbms_output.put_line(v_eame );(打印在控制台)
end;
7.实例3-包含定义部分、执行部分和例外处理部分
为了避免pl/sql程序运行错误,提高pl/sql的健壮性,应该错误进行处理,这个很有必要
比如在实例2中输入了不存在的雇员号,应该做例外处理
异常处理部分
begin
select ename into v_ename(是指ename查出来的值放在 v_ename里面去) from emp where empno = &no;(控制台接收参数)
dbms_output.put_line(v_eame );(打印在控制台)
exception
when no_data_found then
end;
8.过程
过程用户执行特定的操作,当建立过程时,既可以指定输入参数,
也可以指定输出参数,通过在过程中使用输入参数,可以将数据传递到执行部分;
通过使用输出参数,可以执行部分的数据传递到应用环境
create procedure命令来建立过程
9.案列4
begin
----执行部分,更具用户名去修改工资
call('SCOTT',500);
10.函数
而在函数体内必须包含return 语句返回的数据。我们可以使用 create function来建立函数
函数案例 ---输入雇员的姓名,返回该雇员的年薪
create function (创建一个函数) sp_fun2(函数名称)(spName varchar2)
begin
----执行部分
select sal*12+nvl(comm,0)*12 into yearsal from emp where ename =spName
return yearSal;
函数调用
在sqlplus中调用函数
首先创建一个变量
var sal number;
在java调用函数自行百度
11.包
创建一个包 sp_package
声明该包有一个过程 update_sal (没有实现)
声明该包有一个函数 update_name (返回一个number)
create package sp_package is
procedure update_sal(name varchar2,newsal number);
包的规范只包含了过程和函数的说明,但是没有过程和函数的实现码。
包体用于实现包的规范中的过程和函数,
包建好,再建立包体可以使用 create package body命令
实现包体,(把包里面的过程和函数,都实现)
3.如何调用包的过程或是函数
当调用包的过程或函数时候,在过程和函数前需要带包名
call 包名.函数名称(‘参数’);
触发器是值隐含的执行的存储过程,当定义触发器时,必须要指定
13.在编写pl/sql程序时,可以定义变量和变量和常量;在pl/sql
标量类型
在编写pl/sql块时,如果使用变量,需在定义部分定义变量。
pl/sql中定义变量和常量的语法如:
indentifier [ constant ] datatype [not null] [:= 丨default expr ]
indentifier名称
constant 指定常量 需要指定他的初始值,并且值不能修改
not null:指定变量值不能是null
:= 给变量或是常量指定初始值
default 用于指定初始值
expr:指定初始值的pl/sql表达式,可是文本值,其他变量,函数等
案例
v_ename varchar2(10)'
定义一个小数,范围 -9999.99-9999.99
v_sal number(6,2);
定义一个小数并给一个初始值5.4:=是plsql的赋值号
v_sal2 number(6,2):=5.4
定义一个日期类型数据
定义一个布尔变量,不能位null ,初始值为false
v_valid boolean not null default false;
就是如果员工的姓名超过了5字符,就会有错误,为了降低pl/sql程序的维护工作量,可以使用%type属性定义变量
pl/sql记录
8、使用%ROWTYPE
使用%ROWTYEP声明一个记录型变量,可以使它的类型与某个基本表的数据结构一致。
例1:
DECLARE
A EMP%ROWTYPE;
BEGIN
SELECT ENAME,JOB,HIREDATE INTO A.ENAME,A.JOB,A.HIREDATE
FROM EMP
WHERE EMPNO=7369;
DBMS_OUTPUT.put_line(A.ENAME||' , '||A.JOB||' , '||A.HIREDATE);
END;
输出:SMITH , CLERK , 17-12月-80
嵌套表 用的少,自己百度
varray 用的少,自己百度
参照类型
if----then, if-----then----else, if------then-----elsif-----else
案例1
案例2
案例3
案例
3)使用控制语句 ---- goto 和 null;
创建book表
create table book(bookId number,bookName varchar2(50),publishHouse varchar2(50))
案例3
分页的存储过程
第一步
第二步
如果工资 是3000没有默认的入口,就抛出例外
自定义列外
视图
子查询扩展
单行子查询
多行子查询
from字句后面跟子查询
oralce分页查询一共三种方式
1.rownum分页
select * from (
select a1.* , rownum fn from (
select * from emp) a1 where rownum = 10 )
where rn = 6;
2.rownum 显示行列 (oralce自带的机制)
合并查询
有时在实际应用中,为了合并多个select 语句的结果,可以使用union,union all,intersect,minus
1 )union 该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中重复行
2)union all 不会去掉重复的行
3)intersect 取两个集合的交集
4)minus 取两个的集合差集
to_date函数,插入日期值会用到 to_date('日期变量','yyyy-mm-dd');
日期函数
1.sysdate 该函数返回系统时间
2.add _months ()
3.last_day(d) 返回指定日期所在月份的最后一天
4. to_char(d,'') 转成字符类型 select to_char(date,'yyyy-mm-dd hh12:mi:ss');