韩顺平.2011最新版.玩转oracle视频教程(笔记)
韩顺平2011玩转oracle10g视频教学课堂笔记(完整版)
顺平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文件进行安装。
韩顺平oracle教程
4.oracle 表的管理(数据类型,表创建删除,数据 CRUD 操作)
期望目标
1.掌握 oracle 表的管理(创建/维护) 2.掌握对 oracle 表的各种查询技巧 3.学会创建新的 oracle 数据库
oracle 的表的管理 表名和列的命名规则
必须以字母开头 长度不能超过 30 个字符 不能使用 oracle 的保留字 只能使用如下字符 A-Z,a-z,0-9,$,#等
oracle 支持的数据类型
字符类
char
ห้องสมุดไป่ตู้
定长 最大 2000 个字符。
Oracle 笔记 4
例子:char(10) ‘小韩’前四个字符放‘小韩’,后添 6 个空格补全 如‘小韩
’
varchar2(20) 变长 最大 4000 个字符。
例子:varchar2(10) ‘小韩’ oracle 分配四个字符。这样可以节省空间。
Oracle 笔记 3
有指定 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,就会把级联的相关东西也给删除掉
韩顺平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。
韩顺平Linux视频教程—笔记(全)
韩顺平Linux视频教程—笔记(全)Linux操作系统学习linux的特点优点:1、免费的/开源的系统2、⽀持多线程/多⽤户的系统3、安全性好4、对内存和⽂件管理优越linux体积最少只需要内存4M,由于⼩所以可以做嵌⼊式开发缺点:操作相对困难Linus于1991年⾄1994年将unix的微型版minis加以开发出linux现在redhat红帽⼦、BSD、SUN等公司进⾏再发⾏在windows环境下可以使⽤(VM等)虚拟机来运⾏linux在linux运⾏startx命令可以进⼊图形操作界⾯root是linux下的系统管理员普通⽤户登陆后可以⽤su- 切换为系统管理员关机命令shutdown -h now ⽴刻进⾏关机shutdown -r now 现在重新启动计算机reboot 现在重新启动计算机logout 注销vi编辑器是linux下最有名的编辑器,也是学习linux必须掌握的⼯具,在unix下也可使⽤vi进⾏程序的开发linux可以做java/c开发在linux的vi编辑器内写⼀下简单的java程序“hello,world”1、Vi Hello.java2、输⼊i[进⼊到插⼊模式]public class hello{public static void main(String []args){System.out.println("hello,world");}}3、输⼊esc键[进⼊命令模式]4、输⼊wq保存退出/q!退出但不保存6、编译javac hello.javajavac Hello.java7、运⾏ java Hello [java运⾏的是class⽂件]ls命令显⽰当前⽂件ls -l命令显⽰详细⽂件列表如何在linux下开发c程序或是c++(cpp)程序建⽴vi hello.cpp#include <stdio.h>int main(){printf("hello!");return 0;}gcc hello.cpp ⽤gcc编译器编译出来未命名会是a.out⽂件gcc -o [⽂件名] [源⽂件名] ⽤gcc编译器编译⽂件命名/a.out 在linux下运⾏c程序只要输⼊/就可以运⾏------------------------------------------------------------linux下的⽂件⽬录linux的⽂件系统是采⽤级层式的树状⽬录结构,在此结构中的最上层是根⽬录“/”,然后在此⽬录下再创建其他的⽬录深刻理解linux⽂件⽬录是⾮常重要的。
oracle教程从入门到精通之欧阳科创编
韩顺平—玩转oracle视频教程笔记时间:2021.02.05 创作:欧阳科一:Oracle认证,与其它数据库比较,安装Or acle安装会自动的生成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>startd:\a.sql 2.edit说明: 该命令可以编辑指定的sql脚本案例: sql>editd:\a.sql,这样会把d:\a.sql这个文件打开3.spool说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql 并输入 sql>spool off 交互式命令1.&说明:可以替代变量,而该变量在执行时,需要用户输入。
OCM学习笔记
最近在看韩顺平老师讲解的“玩转oracle”视频,在学习的过程中觉得还是有必要将一些知识点整理出来以期后期记忆跟不上时光变迁时回头做一个简单地回顾。
所以在记笔记的过程中可能会显得有一些杂乱,还请各位看官如果无意间闯入本文,能够多多包含。
(温馨提示:个人认为韩顺平老师的授课视频适合每一位IT人员去观看和琢磨,风趣幽默、浅显易懂,擅长化繁为简,对提升自我还是大有裨益的)1)数据库一般分为小型数据库(access,foxbase)、中型数据库(mysql,sql server,informix)和大型数据库(oracle,db2,sybase)。
我们在考虑选用哪种数据库时,通常需要综合考虑以下三个方面的因素:①负载量大小,即用户使用数量的多少;②成本,即企业或者是个人愿意投入的成本;③安全性。
一般的,如果负载在100人内,成本在千元以内,对安全性要求不高时可以选用小型数据库。
而当需要处理海量(千万级)数据成本在万元以上对安全性要求较苛刻时,则考虑使用大型数据库,且目前大型数据库的综合评分排名顺序为:SYBASE 2)oracle认证分三层,OCA->oracle初级认证;OCP->oracel专家级认证;OCM->oracle大师认证。
通常,我们如果能让自己通过OCP认证就不错了哦。
3)Daemon Tools是一款虚拟光驱的工具,安装oracle镜像文件的时候可能会使用到它。
如果不会使用又需要使用,请自己度娘。
4)oracle安装会自动生成sys用户和system用户,其中sys用户是超级用户,具有最高权限,拥有sysdba的角色,拥有创建新的数据库create database的权限。
system用户是管理操作员,权限也是很大的,具有sysoper系统操作员的角色,没有创建新的数据库的权限,其他基本等同于sys用户。
一般来讲,对数据库进行维护,使用system用户登录即可。
5)在sql/plus中切换登录用户的口令:conn username/password@全局数据库名 as sysdba/sysoper;断开连接的口令:disc;修改密码的口令:passw;运行脚本的口令:start 脚本所在的目录+文件名;保存sql plus中的内容到一个文件中去的口令:spool 文件地址;spool off; 设置每行显示多少个字符的口令:set linesize 100,设置每行显示100个字符;设置每页显示多少条数据的口令:set pagesize 10,设置每页显示10条数据;查看表结构的口令:desc +表名;清屏命令:clear;6)当需要删除一个用户,而这个用户又拥有属于自己的表时,则删除用户DROP USER时,如果使用cascade关键字,会将与这个用户相关联的表一并删除。
韩顺平玩转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
目录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视频教程听课笔记
韩顺平老师 oracle教程笔记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的常用命令连接命令1.conn[ect]用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper 2.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.&说明:可以替代变量,而该变量在执行时,需要用户输入。
韩顺平玩转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 实战教程第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教程从入门到精通
韩顺平—玩转oracle视频教程笔记一:Oracle认证,与其它数据库比较,安装Oracle安装会自动的生成sPs用户和sPstem用户:(1)sPs用户是超级用户,具有最高权限,具有sPsdba角色,有createdatabase的权限,该用户默认的密码是change_on_install(2)sPstem用户是管理操作员,权限也很大。
具有sPsoper角色,没有createdatabase的权限,默认的密码是manager(3)一般讲,对数据库维护,使用sPstem用户登录就可以拉也就是说sPs和sPstem这两个用户最大的区别是在于有没有createdatabase的权限。
二:Oracle的基本使用--基本命令sqlGplus的常用命令连接命令1.conn[ect]用法:conn用户名/密码@网络服务名[assPsdba/sPsoper]当用特权用户身份连接时,必须带上assPsdba或是assPsoper2.disc[onnect]说明:该命令用来断开与当前数据库的连接3.psssw[ord]说明:该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sPs/sPstem登录。
4.showuser说明:显示当前用户名5.eGit说明:该命令会断开与数据库的连接,同时会退出sqlGplus文件操作命令1.start和@说明:运行sql脚本案例:sql>@d:\a.sql或是sql>startd:\a.sql2.edit说明:该命令可以编辑指定的sql脚本案例:sql>editd:\a.sql,这样会把d:\a.sql这个文件打开3.spool说明:该命令可以将sqlGplus屏幕上的内容输出到指定文件中去。
案例:sql>spoold:\b.sql并输入sql>spooloff交互式命令1.&说明:可以替代变量,而该变量在执行时,需要用户输入。
selectGfromempwherejob='&job';2.edit说明:该命令可以编辑指定的sql脚本案例:SQL>editd:\a.sql3.spool说明:该命令可以将sqlGplus屏幕上的内容输出到指定文件中去。
韩顺平.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教程从入门到精通_New.doc
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.&说明:可以替代变量,而该变量在执行时,需要用户输入。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
韩顺平—玩转ora cle视频教程笔记一: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.&说明:可以替代变量,而该变量在执行时,需要用户输入。
select * from emp where job='&job';2.edit说明:该命令可以编辑指定的sql脚本案例:SQL>edit d:\a.sql3.spool说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
spool d:\b.sql 并输入 spool off显示和设置环境变量概述:可以用来控制输出的各种格式,set show如果希望永久的保存相关的设置,可以去修改glogin.sql脚本1.linesize说明:设置显示行的宽度,默认是80个字符show linesizeset linesize 902.pagesize说明:设置每页显示的行数目,默认是14用法和linesize一样至于其它环境参数的使用也是大同小异三:oracle用户管理oracle用户的管理创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。
create user 用户名identified by 密码; (oracle有个毛病,密码必须以字母开头,如果以字母开头,它不会创建用户)给用户修改密码概述:如果给自己修改密码可以直接使用password 用户名如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限SQL> alter user 用户名identified by 新密码删除用户概述:一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有drop user 的权限。
比如drop user 用户名【cascade】在删除用户时,注意:如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade;用户管理的综合案例概述:创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。
给一个用户赋权限使用命令grant,回收权限使用命令revoke。
为了给讲清楚用户的管理,这里我给大家举一个案例。
SQL> conn xiaoming/m12;ERROR:ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied警告: 您不再连接到ORACLE。
SQL> show user;USER 为""SQL> conn system/p;已连接。
SQL> grant connect to xiaoming;授权成功。
SQL> conn xiaoming/m12; //后面的为密码分开来输入。
已连接。
SQL>注意:grant connect to xiaoming;在这里,准确的讲,connect不是权限,而是角色。
看图:现在说下对象权限,现在要做这么件事情:* 希望xiaoming用户可以去查询emp表* 希望xiaoming用户可以去查询scott的emp表grant select on emp to xiaoming* 希望xiaoming用户可以去修改scott的emp表grant update on emp to xiaoming* 希望xiaoming用户可以去修改/删除,查询,添加scott的emp表grant all on emp to xiaoming* scott希望收回xiaoming对emp表的查询权限revoke select on emp from xiaoming//对权限的维护。
* 希望xiaoming用户可以去查询scott的emp表/还希望xiaoming可以把这个权限继续给别人。
--如果是对象权限,就加入with grant optiongrant select on emp to xiaoming with grant option我的操作过程:SQL> conn scott/tiger;已连接。
SQL> grant select on scott.emp to xiaoming with grant option;授权成功。
SQL> conn system/p;已连接。
SQL> create user xiaohong identified by m123;用户已创建。
SQL> grant connect to xiaohong;授权成功。
SQL> conn xiaoming/m12;已连接。
SQL> grant select on scott.emp to xiaohong;授权成功。
--如果是系统权限。
system给xiaoming权限时:grant connect to xiaoming with admin option问题:如果scott把xiaoming对emp表的查询权限回收,那么xiaohong会怎样?答案:被回收。
下面是我的操作过程:SQL> conn scott/tiger;已连接。
SQL> revoke select on emp from xiaoming;撤销成功。
SQL> conn xiaohong/m123;已连接。
SQL> select * from scott.emp;select * from scott.emp第1 行出现错误:ORA-00942: 表或视图不存在结果显示:小红受到诛连了。
使用profile管理用户口令概述:profile是口令限制,资源限制的命令集合,当建立数据库的,oracle会自动建立名称为default的profile。
当建立用户没有指定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)建立profileSQL>create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10password_reuse_time //指定口令可重用时间即10天后就可以重用2)分配给某个用户删除profile概述:当不需要某个profile文件时,可以删除该文件。
SQL> drop profile password_history 【casade】注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。
加了casade,就会把级联的相关东西也给删除掉四:oracle表的管理(数据类型,表创建删除,数据CRUD操作)oracle的表的管理表名和列的命名规则•必须以字母开头•长度不能超过30个字符•不能使用oracle的保留字•只能使用如下字符 A-Z,a-z,0-9,$,#等oracle支持的数据类型字符类char定长最大2000个字符。
例子:char(10) ‘小韩’前四个字符放‘小韩’,后添6个空格补全如‘小韩’varchar2(20)变长最大4000个字符。