韩顺平2011玩转oracle10g视频教学课堂笔记(完整版)
oracle教学视频课后笔记
一Oracle中如果不知道system,sys用户的密码后可用如下方法找回:首先以一个普通用户等入数据库:在SQL*Plus中执行如下命令:SQL>connect/as sysdba (也可以以如下方式连接:SQL>connect internal)SQL>alter user sys identified by sys; (回车后用户sys的密码会更改为sys)同理可以更改system密码SQL>alter user system identified by system; (回车后用户system的密码会更改为system)使用操作系统认证conn / as sysdba修改sys的密码在windows下测试OKOracle忘记密码怎么办?在本机安装完Oracle以后,不记得sys用户的密码了,采用如下方法可以修改密码:1.打开cmd,输入sqlplus /nolog,回车;输入“conn / as sysdba”;输入“alter user sys identified by 新密码”,注意:新密码最好以字母开头,否则可能出现错误Ora-00988。
有了这个方法后,只要自己对oracle服务器有管理员权限,不记得密码的时候就可以随意修改密码了。
2.在命令行执行如下命令:sqlplus "/@服务名as sysdba",然后在sqlplus中alter user sys identified by 新密码;alter user system identified by 新密码;3.运行到C盘根目录1)输入:SET ORACLE_SID = 你的SID名称2)输入:sqlplus/nolog3)输入:connect/as sysdba4)输入:alert user sys identified by sys5)输入:alert user system identified by system6)更改完成,密码是Oracle数据库初始密码4.首先,在CMD下输入SQLPLUS/NOLOG然后再在出来的界面中打入CONN/AS SYSDBA,这样就会以本地系统登录的用户为信任用户进入数据库的操作.解决这个问题的方式有两种,一个是:ALTER USER (USERNAME)IDENTIFIED BY “密码”;这个是可以改变USERNAME的密码.当然这个USERNAME必须已经存在的另一种是:CREATE USER (USERNAME) IDENTIFIED BY "密码";改变用户权限的命令是:GRANT ROLES TO (USERNAME);以上2种方法都是针对ORACLE 9I的版本。
韩顺平 玩转oracle 10g 实战教程第4讲
- 不包含子查询、snapshot、VIEW的 SELECT 语句 - INSERT语句的子查询中 - INSERT语句的VALUES中 - UPDATE 的 SET中
玩转oracle 10g实战教程
主讲 韩顺平
序列(sequence)如下例子: 可以看如下例子: INSERT INTO emp VALUES 'CLERK',7566 7566, (my_seq.nextval, 'TOMCAT', 'CLERK',7566, SYSDATE, 1200, NULL,20); SELECT my_seq.currval FROM DUAL; 但是要注意的是: 但是要注意的是: 第一次NEXTVAL返回的是初始值;随后的NEXTVAL NEXTVAL返回的是初始值 NEXTVAL会自动增加你定义的 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的 BY值 然后返回增加后的值。 总是返回当前SEQUENCE INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE 的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL 否则会出错。 NEXTVAL初始化之后才能使用CURRVAL, 的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。 一次NEXTVAL会增加一次SEQUENCE的值, NEXTVAL会增加一次SEQUENCE的值 一次NEXTVAL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用 多个NEXTVAL 其值就是不一样的。如果指定CACHE NEXTVAL, CACHE值 ORACLE就可以预先 多个NEXTVAL,其值就是不一样的。如果指定CACHE值,ORACLE就可以预先 在内存里面放置一些sequence 这样存取的快些。cache里面的取完后 sequence, 里面的取完后, 在内存里面放置一些sequence,这样存取的快些。cache里面的取完后, oracle自动再取一组到cache。 使用cache或许会跳号, 自动再取一组到cache cache或许会跳号 oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然 不正常down down掉 abort),cache中的sequence就会丢失 中的sequence就会丢失. 不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以 sequence的时候用nocache防止这种情况 的时候用nocache防止这种情况。 在create sequence的时候用nocache防止这种情况。
oracle教程从入门到精通
韩顺平—玩转oracle视频教程笔记一:Oracle认证,与其它数据库比较,安装Oracle安装会自动的生成sys用户和system用户:(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install(2)system用户是管理操作员,权限也很大。
具有sysoper角色,没有create database 的权限,默认的密码是manager(3)一般讲,对数据库维护,使用system用户登录就可以拉也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
二: Oracle的基本使用--基本命令sql*plus的常用命令连接命令1.conn[ect]用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper2.disc[onnect]说明: 该命令用来断开与当前数据库的连接3.psssw[ord]说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
4.show user说明: 显示当前用户名5.exit说明: 该命令会断开与数据库的连接,同时会退出sql*plus文件操作命令1.start和@说明: 运行sql脚本案例: sql>@ d:\a.sql或是sql>start d:\a.sql2.edit说明: 该命令可以编辑指定的sql脚本案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开3.spool说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql 并输入 sql>spool off交互式命令1.&说明:可以替代变量,而该变量在执行时,需要用户输入。
韩顺平oracle学习笔记
韩顺平oracle学习笔记第0讲:如何学习oracle一、如何学习oracleOracle目前最流行的数据库之一,功能强大,性能卓越。
学习oracle需要具备一定基础:1.学习过一门编程语言(如:java ,c)2.最好学习过一门别的数据库(sql server,mysql , access)教程推荐:oracle使用教程,深入浅出oracle记住:欲速则不达,做任何事情要遵循他的规律,循序渐进,信心很重要成为一个oracle高手过程:理解小知识点->做小练习->把小的只是点连成线->做oracle项目->形成只是面->深刻理解Oracle基础部分:oracle基础使用; oracle用户管理; oracle表管理Oracle高级部分:oracle表的查询; oracle的函数; oracle数据库管理;oracle 的权角色; pl/sql 编程;索引,约束和事物。
期望目标:1 学会安装、启动、卸载oracle2 使用sql *plus工具3 掌握oracle用户管理4 学会在oracle中编写简单的select语句第1讲:基础语法内容介绍:1.为什么学习oracle2.介绍oracle及其公司的背景3.学会安装、启动、卸载oracle4.oracle开发工具5.Sql*plus的常用命令6.oracle用户管理一、主流数据库包括:●微软:sql server 和 access●瑞典:mysql AB公司●IBM公司:DB2●美国sybase公司:sybase●IBM公司:infromix●美国oracle公司:oracle(目前最流行的之一)二、oracle安装,启动及卸载1.系统要求:操作系统最好为windows2000内存最好在256M以上硬盘空间需要2G以上2.oracle安装会自动的生成sys和system两个用户说明:○1Sys用户是超级用户,具有最高权限,具有sysdba角色,create database 的权限,默认密码是manager○2System 用户是管理操作员,权限也很大,具有sysoper角色,没有create database权限,默认密码是 change_on_install○3一般讲,对数据库维护,使用system用户登录就可以了3.启动oracle右键单击我的电脑->服务和应用程序:服务->启动OracleServiceMYORA1(MYORA1是安装oracle时起的名字各有不同)和OracleOracleHome90TNSLlistener4.卸载oracle1、先关掉oralce,net stop OracleServiceORCL(ORCL是我的实例名字,换成你的),或者去我的电脑服务中关闭2、开始->程序->Oracle - oracle的版本号,我的是10ghome->Oracle Installation Products->Universal Installer 卸载oracle3、进注册表,regedit,删除选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下所有的key。
oracle教程从入门到精通
韩顺平—玩转oracle视频教程笔记一:Oracle认证,与其它数据库比较,安装Oracle安装会自动的生成sys用户和system用户:(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install(2)system用户是管理操作员,权限也很大。
具有sysoper角色,没有create database 的权限,默认的密码是manager(3)一般讲,对数据库维护,使用system用户登录就可以拉也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
二: Oracle的基本使用--基本命令sql*plus的常用命令连接命令[ect]用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper[onnect]说明: 该命令用来断开与当前数据库的连接[ord]说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
user说明: 显示当前用户名说明: 该命令会断开与数据库的连接,同时会退出sql*plus文件操作命令和@说明: 运行sql脚本案例: sql>@ d:\或是sql>start d:\说明: 该命令可以编辑指定的sql脚本案例: sql>edit d:\,这样会把d:\这个文件打开说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\ 并输入 sql>spool off交互式命令1.&说明:可以替代变量,而该变量在执行时,需要用户输入。
select * from emp where job='&job';说明:该命令可以编辑指定的sql脚本案例:SQL>edit d:\说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
韩顺平玩转ORACLE
目录1.Oracle 认证,与其它数据库比较,安装 (4)2.Oracle 的基本使用--基本命令 (7)2.1 连接命令 (7)2.1.1 conn[ect] (7)2.1.2 disc[onnect] (7)2.1.3 psssw[ord] (7)2.1.4 show user (7)2.1.5 exit (7)2.2文件操作命令 (7)2.2.1 start 和@ (7)2.2.2 edit (7)2.2.3 spool (8)2.3交互式命令 (8)2.3.1 & (8)2.3.2 edit (8)2.3.3 spool (8)2.4显示和设置环境变量 (9)2.4.1 linesize (9)2.4.2 pagesize (9)3.oracle 用户管理 (10)3.1 oracle 用户的管理 (10)3.1.1创建用户 (10)3.1.2 给用户修改密码 (10)3.1.3 删除用户 (10)3.1.4用户管理的综合案例 (10)3.2 使用profile 管理用户口令 (12)3.2.1.账户锁定 (12)3.2.2.给账户(用户)解锁 (13)3.2.3.终止口令 (13)3.3口令历史 (13)3.4 删除profile (13)4.oracle 表的管理(数据类型,表创建删除,数据CRUD 操作) (14)4.1 oracle 的表的管理 (14)4.1.1表名和列的命名规则 (14)4.1.2 oracle 支持的数据类型 (14)4.2怎样创建表 (15)4.3添加数据 (15)4.4修改数据 (16)4.5删除数据 (16)5.oracle 表查询 (16)5.1 oracle 表基本查询 (16)5.2简单的查询语句 (17)5.3 oracle 表复杂查询 (18)5.3多表查询 (19)5.4子查询 (20)5.5 分页查询 (21)5.5.1.根据rowid 来分 (22)5.5.2.按分析函数来分 (22)5.5.3按rownum 来分 (22)5.6用查询结果创建新表 (23)5.7合并查询 (23)6 创建数据库 (23)7. java 操作oracle (24)7.1 java 连接oracle (24)7.2在oracle 中操作数据 (28)8.oracle 中事务处理 (29)8.1什么是事务 (29)8.2提交事务 (29)8.3回退事务 (29)8.4 java 程序中如何使用事务 (29)9.oracle 的函数 (32)9.1 sql 函数的使用 (32)9.1.1字符函数 (32)9.1.2数学函数 (33)9.1.3日期函数 (34)9.1.4转换函数 (35)9.1.5系统函数 (36)10.数据库管理,表的逻辑备份与恢复 (37)10.1数据库管理员 (37)10.2数据库(表)的逻辑备份与恢复 (39)10.3导出 (39)10.3.1导出表 (39)10.3.2导出方案 (39)10.3.3导出数据库 (40)10.4导入 (40)10.4.1导入表 (40)10.4.2导入方案 (40)10.4.3导入数据库 (41)11.数据字典和动态性能视图 (41)11.1数据字典 (41)11.2 用户名,权限,角色 (41)11.3动态性能视图 (44)12.数据库管理-- 管理表空间和数据文件 (45)12.1数据库的逻辑结构 (45)12.2表空间 (45)12.2.1建立表空间 (45)12.2.2 改变表空间的状态 (46)12.2.3删除表空间 (46)12.2.4扩展表空间 (46)12.2.5移动数据文件 (47)12.2.6 显示表空间信息 (47)12.2.7表空间小结 (47)12.2.8其它表空间 (48)13.约束 (48)13.1维护数据的完整性 (48)13.2约束 (48)13.2.1使用 (48)13.2.2维护 (49)13.2.3删除约束 (50)13.2.4显示约束信息 (50)14.Oracle 索引、权限 (51)14.1创建索引 (51)14.2 显示索引信息 (52)14.3 管理权限和角色 (52)14.3.1 系统权限 (52)14.3.2 对象权限 (53)15.角色 (55)15.1预定义角色 (56)15.2自定义角色 (56)15.3角色授权 (56)15.4删除角色 (57)15.5显示角色信息 (58)16.PL/SQL 块的结构和实例 (59)17.pl/sql 分类-- 过程,函数,包,触发器 (64)17.1 过程 (64)17.2 函数 (65)17.3包 (66)17.3触发器 (67)18.定义并使用变量,复合类型 (68)18.1定义并使用变量 (68)18.2复合变量(composite) (69)19.pl/sql 的进阶--控制结构(分支,循环,控制) (71)19.1 pl/sql 的进阶--控制结构 (72)19.1.1条件分支语句 (72)20.PL/SQL 分页 (75)21.例外处理 (85)21.1处理预定义例外 (86)21.2非预定义例外 (89)22.oracle 的视图 (92)1.Oracle 认证,与其它数据库比较,安装Oracle 安装会自动的生成sys 用户和system 用户:(1)sys 用户是超级用户,具有最高权限,具有sysdba 角色,有create database的权限,该用户默认的密码是change_on_install(2)system 用户是管理操作员,权限也很大。
ORACLE 10g学习笔记(解决诸多oracle难题难点)
ORACLE 10g 笔记第一部分概述一、数据库通用语言·SQL*PLUS:提供报表功能及操作系统的接口. 对SQL语言功能的扩充·PL/SQL:过程化语言用于程序设计数据库基础部分。
.Oracle数据库系统结构与产品组成。
Oracle 7.3.4Oracle 8.0.6Oracle8i 8.1.7Oracle9i 9.2.0 国税系统使用I internetOracle10g 10.2.0 G—>GridOracle 11i 不是数据库软件·SQL语言:对于数据库进行操作关系型·数据分区表技术·Oracle权限管理二、程序设计·PL/SQL程序设计·存储过程(Procedure)、包(Package)、函数(Function)、数据库触发器(Database triggers) 集中存储:一张表存放在一个数据中一张表中,同一物理磁盘中分区存储:把一张表的数据分散存放到不同表空间中,可能存放在不同物理磁盘·动态SQL程序NDS三、Oracle10g数据库系统管理(Database Administrator)DBA·ORACLE核心软件的安装与产品升级Unix:SUN Solaris(两种总线:SPARC,x86) 中油、石化系统HP-UX Super DOMIBM AIX (银行系统)Tru-64 UNIX(电力系统)SCO UNIXLinuxSUN Fire v880 速度很慢.小故事:Order by 临时表空间NT/2000/xp (重新安装要修改注册表)安装资源要求:Oracle8i: 128M/1000MOracle9i 9.0.1: 256M/3.5GOracle9i 9.2.0: 512M/3.5GOracle10g 10.2.0: 256M~512M/2G win2000必须打sp1·创建数据库主要存储结构·权限与角色管理·数据库备份与恢复·数据库性能优化与调整·监视与控制用户对数据库的存取四、Web应用开发及Web服务器Oracle 10g Application Server(PL/SQL,J2EE)Oracle10g的安装1.选择安装方法·基本安装·高级安装(选此项,下一步)2.选择安装类型·企业版主要用于构造分布式数据库(选此项,下一步)·标准版·个人版·定制3.指定主目录(下一步)4.选择配置选项·创建数据库(选此项,下一步)·配置自动存储管理·仅安装数据库软件5.选择数据库配置·一般用途(选此项,下一步)·事务处理·数据仓库·高级6.指定数据库配置选项·数据库命名一般是name.domain(域名可以不要)不能同名·系统标示符SID 数据库实例名数据库名和实例名一般相同,可不同·数据库字符集:National Language Support NLS 民族语言支持中文三种ZHS16cgh231280 支持版本Oracle 7.3 以上只支持简体ZHS16gbk 支持版本Oracle 8.0以上简体繁体日韩ZHS32gh18030 支持版本Oracle 9i以上简体繁体日韩维藏下方□创建带样本方案的数据库(选中此项,下一步)7.数据库管理选项默认下一步8.指定数据库存储选项·文件系统(指定路经,下一步)·自动存储管理·裸设备9.指定备份和恢复选项选择不启用自动备份下一步10.指定数据库方案的口令选择所有的账户都使用同一个口令下一步11.选择安装方法基本安装下一步默认选择直到安装结束Oracle10g的删除1、删除Oracle注册表regedit →HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\2、删除Oracle服务regedit →Local Machine→System→CurrentControlSet→Services→ORA*3、删除Oracle事件日志regedit →Local Machine→System→CurrentControlSet→Services→Eventlog→Application→ORA*4、删除Windows安装磁盘\Program Files\Oracle目录\Program Files\Oracle5、删除菜单6、Oracle删除环境变量。
韩顺平玩转oracle10g实战教程第2讲
玩转oracle 10g实战教程
oracle表的管理—添加数据 练习:使用insert语句向表中插入三个学生的信息。
字段 Id name sex brithday fellowship resume 字段类型 整形 字符型 字符型 日期型 小数型 大文本型
主讲 韩顺平
注意:字符和日期要包含在单引号中。
表的管理—oracle常用数据类型
分类 数据类型 CHAR(size) char(20) VARCHAR(size) varchar(20) nchar(n) nvarchar2(n) clob(character large object) blob(binary large object) 说明
4.删除学生表的 fellowship 字段 5.把学生表名 student修改成 stu 6.删除学生表
玩转oracle 10g实战教程
oracle表的管理—crud
主讲 韩顺平
Insert语句 Update语句 Delete语句 Select语句
(增加数据) (更新数据) (删除数据) (查找数据)
■
玩转oracle 10g实战教程
oracle表的管理--oracle支持的数据类型 数值型 看几个案例: 看几个案例
■
主讲 韩顺平
number(5,2) 表示一个小数有5位有效数,2位小数 。范围 -999.99~999.99 如果数值超出了位数限制就会被截取多余的位数。但在一行数据中的这 个字段输入575.316,则真正保存到字段中的数值是575.32。 number(5) <=> number(5,0) 表示一个五位整数,范围 -99999~99999。 输入57523.316,真正保存的数据是57523
韩顺平 玩转oracle 10g 实战教程第6讲
常用的预定义例外
ORACLE 预定之例外情况的处理,下列出常见几个 例外情况名 错误代码 描述
对于SELECT 叙述没有传回任何值。 只允许传回一笔记录的SELECT 叙述结果却多于一笔。 使用非法的的光标操作。 出现数值、数据形态转换、撷取字符串或强制性的错误。 字符串到数值的转换失败。 被零除。 试图向具有唯一键值的索引中插入一个重复键值。 没有case条件匹配 游标没有打开
玩转oracle 10g实战教程
主讲 韩顺平
oracle视图 视图
介绍 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一 系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据 值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在 引用视图时动态生成。[图示]
■
玩转oracle 10g实战教程
主讲 韩顺平
oracle视图 视图
■
视图与表的区别
①表需要占用磁盘空间,视图不需要 ②视图不能添加索引 ③使用视图可以简化 复杂查询 比如:学生选课系统 ④视图用利于提高安全性 比如:不同用户查看不同视图
玩转oracle 10g实战教程
主讲 韩顺平
oracle视图 视图
■
是pl/sql中最简单的循环语句,这种循环语句以loop开头,以end loop 结尾,这种循环至少会被执行一次. 案例:现有一张表users,表结构如下
循环语句 -loop
请,编写一个过程,可输入用户名,并循环添加10个用户到users表 中,用户编号从1开始增加.
玩转oracle 10g实战教程
NO_DATA_FOUND ORA-01403 TOO_MANY_ROWS ORA-01427 INVALID_CURSOR ORA-01001 VALUE_ERROR ORA-06502 INVALID_NUMBER ORA-01722 ZERO_DIVIDE ORA-01476 DUP_VAL_ON_INDEX ORA-00001 CASE_NOT_FOUND ORA-xxxxx CURSOR_NOT_OPEN ORA-xxxxxx
韩顺平 玩转oracle 10g 实战教程第3讲
玩转oracle 10g实战教程 玩转oracle 10g实战教程
主讲 韩顺平
主讲: 主讲:韩顺平 email: email:hanshunping@
玩转oracle 10g实战教程
主讲 韩顺平
oracle第3讲 第 讲
1. java程序如何操作oracle 2. 如何在oracle中操作数据 3. oracle事务处理 4. sql函数的使用
玩转oracle 10g实战教程
主讲 韩顺平
oracle中事务处理 –事务隔离级别 中事务处理 事务隔离级别
■
oracle的 read only 说明: ①遵从事务级的读一致性,仅仅能看见在本事务开始前由其它事务提 交的更改。 ②不允许在本事务中进行DML操作。 ③read only是serializable的子集。它们都避免了不可重复读和幻读。 区别是在read only中是只读;而在serializable中可以进行DML操作
■
oracle的事务隔离级在 的事务隔离级在java程序中如何使用 的事务隔离级在 程序中如何使用
connection.setTransactionIsolation(Connection.TRANSACTION_REA D_COMMITTED); 特别说明: 特别说明 ①java程序中Connection.XXXXXX有五个,但不是所有的数据库对有 对应的五个事务隔离级别实现。 ②在实际工作中,我们极少去修改各个数据库默认的隔离级别。
韩顺平玩转oracle10g实战教程第7讲
为了禁止工作人员在休息日改变员工信息,开发人员可以建立before 语句触发器,从而实现数据的安全,在给出提示时,明确提示用户是进 行的insert,update还是delete操作
玩转oracle 10g实战教程
触发器—dml触发器
主讲 韩顺平
■
使用:old和:new 和 使用
问题:当触发器被触发时,要使用被插入、更新或删除的记录中的 列值,有时要使用操作前、后列的值. :new 修饰符访问操作完成后列的值 :old 修饰符访问操作完成前列的值
特性 OLD NEW INSERT NULL 有效 UPDATE 有效 有效 DELETE 有效 NULL
案例: ①在修改my_emp表 雇员的薪水时,显示雇员工资修改前和修 改后的值 ②如何确保在修改员工工资不能低于原有工资。
玩转oracle 10g实战教程
触发器—dml触发器
主讲 韩顺平
■
课堂小练习
玩转oracle 10g实战教程
触发器—介绍
主讲 韩顺平
■
当发生特定事件时,(如修改表,建立对象,登陆到数据 库),oracle就会自动的去执行相应的代码. 触发器分类: dml触发器、系统事件触发器、ddl触发器 触发器、系统事件触发器、 触发器由触发事件,触发条件,触发操作三个部分构成.
介绍
玩转oracle 10g实战教程
■
主讲 韩顺平
创建ddl触发器 触发器 创建
请编写一个触发器,可以记录某个用户进行的ddl操作
①为了记录系统所发生的ddl事件, 应该建立一张表(my_ddl_event)用来存放 相关信息 ,注意需要使用system用户登录 conn system/manager as sysdba
韩顺平教程视频玩转Oracle 10G的笔记
韩顺平玩转Oracle10g 1.Oracle认证和安装,与其他数据库比较Oracle安装会自动的生成sys用户和system用户:(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install(2)system用户是管理操作员,权限也很大。
具有sysoper角色,没有create database 的权限,默认的密码是manager(3)一般讲,对数据库维护,使用system用户登录就可以拉也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
2.Oracle的基本使用--基本命令sql*plus的常用命令连接命令[ect]用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper[onnect]说明: 该命令用来断开与当前数据库的连接[ord]说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
user说明: 显示当前用户名说明: 该命令会断开与数据库的连接,同时会退出sql*plus文件操作命令和@说明: 运行sql脚本案例: sql>@ d:\或是sql>start d:\说明: 该命令可以编辑指定的sql脚本案例: sql>edit d:\,这样会把d:\这个文件打开说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\ 并输入 sql>spool off交互式命令1.&说明:可以替代变量,而该变量在执行时,需要用户输入。
select * from emp where job='&job';说明:该命令可以编辑指定的sql脚本案例:SQL>edit d:\说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
韩顺平.2011最新j2ee视频教程.jdbc笔记1
jdbc 详解+学生选课项目jdbc 介绍jdbc 是sun 公司定义的一套访问数据库的规范( 接口+ 类),主要是放在java.sql 包javax.sql 包. 原理图:做jdbc开发的几个前提1.import java.sql.* 有时import javax.sql.*;2.把jar 包导入到你的java项目昨天还是用jdbc 写了一个简单java程序,完成添加一条记录到oracle 数据库中.Connection接口面试题: 什么时候,需要把setAtuoCommit设为false?答:当有多个dml 同时执行,将其看做一个整体提交,则使用事务管理,则需要把setAutoCommit 设为false;具体使用方法:package cn.sp.test;import java.sql.*;import oracle.jdbc.driver.OracleDriver;public class TestJdbc {//使用jdbc去操作oracle 数据库public static void main(String[] args) {// TODO Auto-generated method stubConnection ct=null;Statement statement=null;try {//1加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//DriverManager.registerDriver(new OracleDriver());//2得到连接ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orclhsp", "scott", "tiger");//把事务设为不自动提交ct.setAutoCommit(false);//3.创建sql对象(Statement / PreparedStatement /CallableStatement)statement=ct.createStatement();//4.通过statement向数据库发出sql 指令./* int n=statement.executeUpdate("insert into user1 values(user1_seq.nextval,'顺平','123'," +"'shunping@',sysdate,30)"); //executeupdate 执行dml(update/insert/delete)*///需求: 对emp表进行操作: 把SMITH 的sal -10 给KING sal+10statement.executeUpdate("update emp set sal=sal-10 where ename='SMITH'");int i=9/0;statement.executeUpdate("update emp set sal=sal+10 where ename='KING'");//提交所有事务mit();} catch (Exception e) {e.printStackTrace();//如果sql 语句中任何语句错误,则可以整体回滚.try {ct.rollback();} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}// TODO: handle exception}finally{//关闭资源[先开后闭];if(statement!=null){try {statement.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}statement=null;//使用垃圾回收.}if(ct!=null){try {ct.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}ct=null;}}}}ResultSet 的说明在默认情况下,我们的rs结果集,只能向前移动,这样rs 结果就不能复用,如果希望复用,则可以这样做://通过java 来查询所有的雇员.//假设我们希望rs结果,可以滚动(可以向前,亦可向后)ResultSet 的可选项有:resultSetType - 结果集类型,它是 ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE或ResultSet.TYPE_SCROLL_SENSITIVE 之一resultSetConcurrency - 并发类型;它是 ResultSet.CONCUR_READ_ONLY 或 ResultSet.CONCUR_UPDATABLE 之一statement=ct.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE ,ResultSet.CONCUR_READ_ONLY);rs=statement.executeQuery("select * from emp");//循环取出while(rs.next()){System.out.println(rs.getInt("empno")+" 名字"+rs.getString("ename"));}//如果我们希望,重新使用rsrs.beforeFirst();System.out.println("*********************");while(rs.next()){System.out.println(rs.getInt("empno")+" 名字"+rs.getString("ename"));}◆orace 表的数据类型和java 程序(jdbc) 的对应关系sql server 表的数据类型和java程序对应图..mysql 表的数据类和java 程序对应图...◆及时关闭资源!!!if(rs!=null){try {rs.close();} catch (Exception e) {// TODO: handle exception}rs=null;}//关闭资源[先开后闭];if(statement!=null){try {statement.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}statement=null;//使用垃圾回收.}if(ct!=null){try {ct.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}ct=null;}细节:(1)尽量晚创建,早释放(2)关闭资源的代码,一定放在finallySqlHelper类的编写在进行jdbc 程序编写的时候,因为对数据库操作很多,所有都会把对数据库的各种操作,封装到一个类(SqlHelper/DBUtil),我们一起编写(1)如果访问数据库很频繁,则我们的Connection 、PreparedStatement,ResultSet.. 就不要搞成static。
韩顺平 oracle视频教程上课笔记
一、oracle 常用sql plus 命令(1)conn[ect] 用户名/密码@网络[as sysdba /sysoper](2)一般情况下使用普通用户登录,除非需要更高权限时,在切换高级用户;(3)disc[onnect] 断开连接,又不退出当前窗口;(4)quit/exit 完全退出;(5)show user 显示当前用户;(6)管理员修改用户密码:alter user xxxx identified by yyyy;(7)Passw[ord]pass 用户名;给自己修改密码,不需要带用户名;给别的用户修改,需要带用户名;创建临时表空间create temporary tablespaceuser_temptempfile 'd:\user_temp.dbf'size 50mautoextend onnext 50m maxsize 1024mextent management local;创建表空间createtablespaceuser_tsdatafile 'd:\user_ts.dbf'size 50mautoextend onnext 50m maxsize 1024mextent management local;创建用户create user test38 identified by test38default tablespaceuser_tstemporary tablespaceuser_tempquota 5m on user_ts;给用户赋予权力grantdba to test38;给scott用户解锁alter user scott account unlock;用system 用户给scott修改密码Alter user scott identified by tiger;不常用的命令:linesize一行能显示多少个字符就换行了默认就只有80字符,所以会出现一个记录一行没有显示完全就换行了。
韩顺平Oracle笔记——表空间
•
•
<3>设置文件的自动增长:alter tablespace 表空间名称 '数据文件 路径' autoextend on next 大小 maxsize 最大容量;
管理表空间和数据文件——移动数 据文件
• • • • • • 有时,如果数据文件所在的磁盘损坏,该数据文件将不能再使用,为了能够 重新使用,需要将这些文件的副本移动到其它的磁盘,然后恢复。 下面以移动数据文件sp01.dbf举例说明: <1>确定数据文件所在的表空间 确定数据文件所在的表空间:select tablespace_name from 确定数据文件所在的表空间 dba_data_files where file_name='d:\test\sp01.dbf'; <2>使表空间脱机:确保数据文件的一致性,将表空间转变为offline的状 使表空间脱机: 使表空间脱机 态。alter tablespace sp01 offline; <3>使用命令移动数据文件到指定的目标位置:host move 使用命令移动数据文件到指定的目标位置: 使用命令移动数据文件到指定的目标位置 d:\test\sp01.dbf c:\test\sp01.dbf <4>执行 执行alter tablespace命令 命令:在物理上移动了数据后,还必须执行alter 执行 命令 tablespace命令对数据库文件进行逻辑修改。alter tablespace sp01 rename datafile 'd:\sp01.dbf' to 'c:\sp001.db'; <5>使表空间联机:在移动了数据文件以后,为了使用户可以访问该表 使表空间联机: 使表空间联机 空间,必须将其转变为online状态。alter tablespace data01 online;
Oracle 10g学习笔记
第一部分:Administration I Study Guide 第一章:10g组成和体系结构目标:✓安装软件确认系统需求使用OFA安装数据库OUI(Oracle Universal Installer)配置用户变量✓创建数据库数据库物理架构数据库内存架构✓实用工具SQLPLUS和ISQLPLUSSQL语句事务关系型数据库中的最重要的概念:表oracle元数据(metadata)的两类视图:数据字典视图(data dictionary views),以DBA_,ALL_,USER_开头。
DBA_TABLES,DBA_USERS,DBA_VIEWS,DBA_TAB_COLUMNS动态性能视图(dynamic performance views),大都以V$开头。
V$DA TABASE,V$VERSION,V$OPTION,V$SQLDBA_CONSTRAINTSDBA_CONS_COLUMNS--主键SQL> alter table t1 add constraint id_pk primary key(id);--外键SQL> create table t2(id number constraint fk_t1_id references t1(id));参照完整性(referential integrity):对有主外键关系的两个表上执行insert/update/delete等操作时均会受到主外键约束的影响。
Segment types:数据库之内凡是消耗物理存储空间的实体,叫做segment。
例如:表、索引、回滚段、分区。
Extents:每类segment组成的大段存储空间,叫做extents。
每一个segment必定至少分配到一个extents上,最多可分配到20亿个extents。
Blocks:组成extent的最小物理空间单位,叫做block。
一个10g数据库可以同时使用多种大小的block作为最基本的存储单元,如2K,4K,8K,16K。
oracle实用教程-韩顺平
有指定 profile 选项,那么 oracle 就会将 default 分配给用户。 1.账户锁定 概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用 dba 的身份去执行该命令。 例子:指定 scott 这个用户最多只能尝试 3 次登陆,锁定时间为 2 天,让我们看看怎么实现。 创建 profile 文件 SQL> create profile lock_account limit failed_login_attempts 3 password_lock_time 2; SQL> alter user scott profile lock_account; 2.给账户(用户)解锁 SQL> alter user tea account unlock; 3.终止口令 为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要 dba 的身份来操作。 例子: 给前面创建的用户 tea 创建一个 profile 文件, 要求该用户每隔 10 天要修改自己的登陆密码, 宽限期为 2 天。 看看怎么做。 SQL> create profile myprofile limit password_life_time 10 password_grace_time 2; SQL> alter user tea profile myprofile; 口令历史 概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样 oracle 就会将口令修改的信息存放到 数据字典中,这样当用户修改密码时,oracle 就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。 例子: 1)建立 profile SQL>create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10 password_reuse_time //指定口令可重用时间即 10 天后就可以重用 2)分配给某个用户 删除 profile 概述:当不需要某个 profile 文件时,可以删除该文件。 SQL> drop profile password_history 【casade】 注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。 。 加了 casade,就会把级联的相关东西也给删除掉 4.oracle 表的管理(数据类型,表创建删除,数据 CRUD 操作) 期望目标
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
顺平j2ee系列教程--玩转oracle10g学习笔记引言:数据保存问题?可使用文件保存和数据库保存。
使用文件保存数据存在几个缺点:1、文本的安全性问题;2、文件不利于查询和对数据的管理;3、文件不利于存放海量数据;4、文件在程序中控制不方便。
为解决数据保存问题,专家们设计出更加利于管理数据的东东--数据库(本质就是一个软件),它能更有效的管理数据。
数据库是衡量一个程序员水平的重要指标。
数据库1、数据库的本质就是一款软件,这个软件专门用于管理和维护数据;2、数据存放在数据库中。
数据库服务器、数据库和表的关系所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库。
为了保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。
数据库服务器、数据库和表的关系如图所示:为什么选择oracle--性能优越概述:目前主流数据库包括微软: sql server和access瑞典MySql: AB公司mysqlibm公司: db2(处理海量)美国Sybase公司: Sybaseibm公司: informix美国oracle公司: oracle做项目时应当如何选择数据库?1、标的(项目预算);2、功能的要求;3、并发数(多少人用);4、安全、稳定性。
5、操作系统(unix[solaris,freeBSD,aix,hp unix]/linux/window)oracle数据库的认证oca(oracle certified associate)初级认证ocp(oracle certified professional)中级认证ocm(oracle certified master)高级认证oracle10g安装步骤:1、安装文件2、把10201_database_win32.zip文件copy到没有中文的路径下3、检查服务选项,确定本机没有安装过oracle数据库,如果有则卸载4、将压缩包解压后,双击setup.exe文件进行安装。
说明:建议大家自己建立一个文件目录,比如d:/hsporacle/oracle,然后把数据库安装到目录下即可。
(目录不要带中文)这里我们可以选择创建启动数据库(默认数据库)当我们每创建一个数据库实例的时候,就会自动的生成三个用户:sys用户(超级管理员,权限最大)system用户(管理员用户,权限仅次于sys用户)scott用户(普通用户)5、在默认的情况下,scott用户是锁定状态(lock user),一般我们启用它。
特别注意:如果安装的时候,忘记对某个用户解锁,比如scott可以通过system来对该用户解锁。
步骤:1、先使用system登录,运行sqlplus2、使用命令:alter user scott account unlockoracle后台服务OracleDBConsoleorcl 网络企业管理器服务OracleOraDb10g_home1TNSListener 监听服务(监听端口1521)OracleServiceORCL 数据库实例服务oracle发展与现状oracle10g比oracle9i增加了什么?简要说:10g支持网格(Grid),支持自动管理(Automatic Management)详细说:1、10g的g是“Grid”缩写,支持网格计算,即,多台结点服务器利用高速网络组成一个虚拟的高性能服务器,负载在整个网络中均衡(Load Balance),按需增点,避免单点故障(Single Point of Faliure)。
2、安装容易,安装工作量比9i减少了一半。
3、新增基于浏览器的企业管理器(Enterprise Manager)。
oracle公司介绍--产品线数据库服务器:2007年最新版本11G,2013年最新版本12C应用服务器:Oracle Application Server开发工具:Oracle JDeveloper,Oracle Designer,Oracle Developer,等等应用软件(主要竞争对手:德国SAP公司)企业资源计划(ERP)软件客户关系管理(CRM)软件人力资源管理软件(HCM)oracle开发工具1、sqlplusw和slqplus工具是oracle自带的工具软件使用:1、在开始--程序--oracle oradb_home10g--application development--sql plus2、在运行栏中输入:sqlplusw即可,也可以使用sqlplus进入oracle数据库oracle管理工具介绍pl/sql developer属于第三方软件,主要用于开发,测试,优化oracle pl/sql的存储过程比如:触发器,此软件oracle不带,需要单独安装。
oracle管理工具介绍Enterprise manager console(企业管理器)oralce10g是通过web管理的一般默认端口是5500,也有1158的。
访问url(一定要保证oracle服务启动才可访问)ip:1158(或5500)/em机器名:端口/emsql*plus常用命令连接命令1、conn[ect] (可用于切换用户使用)用法:conn 用户名/密码网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必需带上as sysdba或as sysoper2、disc[onnect]说明:该命令用来断开与当前数据库的连接,但不退出sqlplus窗口3、passw[ord]说明:该命令用于修改用户的密码,如果要想修改其它用户的密码,需要sys/system登录特别说明:如果给自己改密码则可以不带用户名。
如果给别人修改密码需带用户名(必需是system或者sys用户才可以修改)4、show user说明:显示当前用户名5、exit说明:该命令会断开与数据库的连接,同时会退出sql*plussql*plus常用命令介绍交互式命令1、&说明:可以替代变量,而该变量在执行时,需要用户输入案例:sql>select *from emp where job='&job'2、edit说明:该命令可以编辑指定的sql脚本案例:sql>edit d:/a.sql3、spool说明:该命令可以将sql*plus屏幕上的容输出到指定文件中去。
案例:sql>spool d:\b.sql;执行操作;输入sql>spool offsql*plus常用命令显示和设置环境变量概述:可以用来控制输出的各种格式。
1、linesize说明:设置显示行的宽度,默认是80个字符sql>show linesizesql>set linesize 902、pagesize说明:设置每页显示的行数目,默认是14用法和linesize一样。
至于其它环境参数的使用也小异。
特别说明:SQL语句需以;分号结尾,功能性命令可以不带;oracle用户管理创建用户(简单版)概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dab(数据库管理员)的权限才能使用。
基本语法:create user 用户名 identified by 密码;注意:oracle规定用户密码不能以数字开头给用户修改密码概述:如果给自己修改密码可以直接使用sql>password 用户名如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限,也可以使用password用户名sql>password 用户名;sql>alter user 用户名 identified by 新密码;特别说明:oracle已对oracle操作中出现的错误进行了编号,以后遇到错误将记录编号进行网上查询解决方案。
oracle用户管理创建用户(细节)例子:sql>create user shunping identified by m123default tablespace userstemporary tablespace tempquota 3m on user;identified by表明用户shunping将用数据库方式验证default tablespace users//用户的表空间在users上temporary tablespace temp//用户shunping的临时表建在temp空间quota 3m on users//表明用户shunping建立的数据对象(表、索引、视图、pl/sql块)最大只能是3m刚刚创建的用户是没有任何权限的,因此,需要dba给该用户授权。
sql>grant connect to shunping如果你希望该用户建表没有空间的限制sql>grant resource to shunping如果你希望该用户成为dbasql>grant dba to shunping表空间(oracle独有的概念)什么是表空间?表存在的空间,一个表空间是指向具体的数据文件。
为什么创建好的用户无常登录?oracle中用户建立后是无常登录的,只有在数据库管理员(DBA)对用户分配相应的权限后,用户才可以登录。
如何给用户分配权限?基本语法:grant create 权限 to 用户名;案例:sql>grant create session to xiaoming;也可以按角色对用户分配权限基本语法:grant 角色名 to 用户名;案例:sql>grant dba to xiaoming;oracle管理用户的机制(原理)oracle中权限的概念权限分为系统权限与对象权限。
系统权限是数据库管理相关的权限:create session (登录权限)create table (创建表权限)create index (创建索引权限)create view (创建视图权限)create sequence (创建序列权限)create trriger (创建触发器权限)......对象权限是和用户操作数据对象相关的权限。
update 改insert 增delete 删select 查角色分为预定义角色和自定义角色预定义角色:把常用的权限集中起来,形成角色。
常见的角色有:DBA、connect、resource自定义角色按需定制一定权限形成角色,可以作为预定义角色的补充。
来满足用户的需求。
oracle用户管理用户管理的综合案例概述:创建的新用户是没有任何权限的,甚至连登录的数据库的权限都没有,需要为其指定相应的权限。