韩顺平Oracle笔记1

合集下载

oracle教程从入门到精通之欧阳与创编

oracle教程从入门到精通之欧阳与创编

韩顺平—玩转oracle视频教程笔记时间:2021.03.08 创作:欧阳与一: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.sql 2.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教程从入门到精通之欧阳治创编

韩顺平—玩转oracle视频教程笔记时间2021.03.10 创作:欧阳治一: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.sql 2.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学习笔记

韩顺平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。

OCM学习笔记

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关键字,会将与这个用户相关联的表一并删除。

racle学习笔记总计

racle学习笔记总计

培训第二天(上午)学习视频《韩顺平oracle视频》学习中遇到的想法:1.sql server 数据——》oracle(编程是实现java,先读在插入)一,oracle的安装1.oracle数据库自带用户 sys(默认密码:manager)(最好权限,可以create database),system(默认密码:change_on_install)。

二,oracle的启动1.启动一个oracle实例,即启动一个单个数据库。

2.管理——服务 oracleservice实例名(一个实例代表一个数据库)+oracle……listener三,oracle的卸载1.卸载需要动注册表(可观看视频)四,sql plus常用命令1.显示用户show user2.链接命令conn 用户名/密码disc3.修改密码passw4.运行一个脚本start和@ 如:start d:\aa.sql || @ d:\aa.sql5.编辑一个脚本edit D:\aa.sql6.spool 该命令可以将sqlplus屏幕上的内容输出到指定的文件中1. spool d:\b.sql2. select * from3. spool off7.交互 &8 set linesize, set pagesize(分页显示)9.desc 表名(查看表结构)五,oracle常用工具1.sqlplus,sqlplusw,pl/sql developer(第三方独立开发),oracle enterprise manager(图像化界面)六,用户管理1.create user 名 identified by 密(密码不能以数字开头)(新创建的用户是没有任何权限的,甚至是没有登录权限 grant, revoke)2.password 名3.drop user 名(如果用户有表,则加参数cascade)培训第二天(下午)(自己动手遇到无法登陆oracle)(gaotuan:gaotuan、system:G6*******cxz)一,用户授权(对象权限(select insert update delete all create index),系统权限)1.grant connect to 名(登录)2.grant resource to 名(创建数据库对象)3.sqlplus "/as sysdba"(sys登陆)4.alter user scott account unlock;(解锁)二,角色connect ,dba对象权限:with grant option系统权限:with admin option收回父权限时下边的用户也没有相应得权限三,表空间一,表空间作用: 1.控制数据库占用的磁盘空间。

oracle笔记第一讲

oracle笔记第一讲

Sys用户(超级用户权限最大)System用户(管理员用户,其权限仅次于sys)Scott用户(普通用户)10g(g是Grid的缩写):支持网格,支持自动管理9i与10g的区别:1.增加了网格计算2.安装简单3.增加了浏览器管理在默认的情况,scott用户是锁定状态(lock user)不能使用我们要启用他登录:如果你安装的时候忘记对某个用户解锁,比如scott,我们可以通过system来对该用户解锁解锁步骤:(1)先使用system登录(密码为oraclesls)(2)然后alter user account unlockOracle企业管理器:(一般情况下不启用该服务)登录方式:http://localhost:1158/emShow user:显示当前用户名是什么?conn[ect] 用户名/密码:该命令经常用于切换当前用户,因为建议使用普通用户conn user systemdisc[onnect]:该命令用于断开和oracle连接,但是不退出sqlplus窗口exit该命令用于断开和oracle连接,但是退出sqlplus窗口Passw[ord]该命令用于修改密码基本用法:Password 用户名:如果给自己修改密码,则可以不带用户名,如果给别人密码,则需要带用户名。

(前者是sys 用户或system用户)&:交互式命令Set linesize 140创建sql文件(编辑文本)edit d:/aa.sqlspool需求如下:把屏幕上显示的记录,保存到文件中Spool on基本用法:(1)spool 文件路径(spool d:/bak.sql)(2)执行操作(select * from emp;)(3)Spool off(1)set linesize字符数用于控制每行显示多少个字符,默认80字符基本用法:set linesize字符数(2)pagesize用于每页显示多少行,默认显示14行基本用法:set pagesize每页显示的行数oracle的用户管理需求:假设你是oracle管理员,当你一个同时入职,你需要给他分配一个帐号①建用户(需要有dba权限的用户)基本语法Create user用户名identified by密码举例创建一个普通用户xiaomingCreate user xiaoming identified by m123(oracle要求用户名密码不能以数字开头)为什么创建的用户无法登录?这是因为oracle刚刚创建的用户是没有任何权限需要管理员给其授权才能够登录Shunping create session②如何给用户分配权限grant create session to xiaoming;表空间:什么是表空间?就是表存在的空间,一个表空间是指向具体的数据文件得到③创建用户的细节方法create user sunlinsong identified by m123defaulttablespace userstemporarytablespace tempquota 3m on user;(说明:quota是限制配额的意思,也就是说此处创建的用户只拥有3m的空间)角色:1.预定义角色dba,connect,resource2.自定义角色Revoke:回收权限回收要用system身份登录回收Revoke connect from xiaohongRevoke resource from xiaohong删除用户:Drop user xiaohong [cascade] 注:cascade,级联Oracle里的表用number来表示创建表:Create table users (id number);方案(schema):需求:给xiaohong能够查看scott的emp表的权限(1)conn scott/tiger(2)赋权限grant select[update/delete/insert/all] on emp to xiaohong; 查询scott的emp表:select * from scott.emp;系统权限:with admin option对象权限:with grant optionProfile管理用户口令Create profile 文件名limit failed_login_attempts 3 password _lock_time 2; 分配文件alter user 用户名profile文件名如何给一个用户解锁Alter user 用户名account unlock终止口令需求:说一个帐号,最多10天,宽限期为2天,到时候必须重置密码基本用法:Create profile 文件名limit password_life_time 10 password_grace_time 2; 分配文件:Alter user 用户名profile 文件名解锁:Alter user 用户名account unlock口令历史:1)建立profileSql>create profile password_history limit password_life_time 10 password_grace_time2 password_reuse_time 1;Password_reuse_time //指定口令可重用时间即10天后就需要修改2)分配给某个用户alter user tea profile myprofile删除profiledrop profile profile文件名oracle启动流程----Windows下1)lsnrctl start(启动监听)2)oradim–startup-sid数据库实例名(orclsls)3)sqlplus sys/change_on_install as sysdba(以sysdba身份登录,在oracle10g后可以这样写)sqlplus /nologconn sys/change_on_install as sysdba3)startup普通用户与特权用户普通用户:connscott/tiger特权用户:conn scott/*** as sysdba-- 以sysdba身份登录(sys),不用验证密码密码恢复:小知识:查看Windows运行了多长时间用Systeminfo命令使用profile文件对口令进行管理需求:只允许某个用户最多尝试登录三次,如果三次没有成功,则锁定两天,两天后才能重新登录。

韩顺平老师java视频课程笔记1-13课

韩顺平老师java视频课程笔记1-13课

JA V A学习记录第一讲//pulic:表示这个类是公共的,一个java文件中只能有一个public类//class :表示这是一个类//Hello:类名(公共类的类名必须和文件名一致)public class Hello{//一个主函数,相当于是程序的入口public static void main (String args[]){/* 多行注释*///System.out.println("hello");int a=10;// 定义一个变量,变量名位a,它的值为10// int为4个字节,long为8个字节int b=20;int result=a+b//输出结果system.out.println("结果是"+result)}}第二讲JA V A基本数据类型四大类型整数类型小数(浮点)类型基本数据类型布尔类型字符类型1.整数类型整数类型表示一个整数,常用的整数类型有:byte, short, int, long范围:byte 一个字节-128 – 127short 两个字节-32768 - 32767int 四个字节-2147483648 – 2147483647long 八个字节一个字节= 八个byte例:一个byte0 0 0 0 0 0 0 1 最高位为符号位0表示正数,1表示负数1 1 1 1 1 1 1 1 – 0 1 1 1 1 1 1 12.小数(浮点)类型常用类型有float, double3.布尔类型可以表示:真或者假,类型是boolean4.字符类型表示单个字符,字符类型是char,chai是两个字节,可以存放汉字。

多个字符称为字符串,在java中用String表示,String属于类。

.在java中,对char进行运算的时候,直接当做ascii码对应的整数对待。

(汉字则是unic码)定义变量int a初始化变量int a = 45给变量赋值int a ; a =45基本数据类型转换int a = 1.2 错误会损失精度double a = 4 正确数据类型可以自动从低精度向高精度转换。

韩顺平玩转ORACLE

韩顺平玩转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课件

Generated by Foxit PDF Creator © Foxit Software For evaluation only.
现在说下对象权限,现在要做这么件事情: * 希望 xiaoming 用户可以去查询 emp 表 * 希望 xiaoming 用户可以去查询 scott 的 emp 表
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
显示和设置环境变量
概述:可以用来控制输出的各种格式,set show 如果希望永久的保存相关的设 置,可以去修改 glogin.sql 脚本 1.linesize 说明:设置显示行的宽度,默认是 80 个字符 show linesize set linesize 90 2.pagesize 说明:设置每页显示的行数目,默认是 14 用法和 linesize 一样 至于其它环境参数的使用也是大同小异
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;
用户已创建。
SQL> grant connect to xiaohong;

韩顺平老师oracle视频教程听课笔记

韩顺平老师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.&说明:可以替代变量,而该变量在执行时,需要用户输入。

韩顺平循序渐进学java从入门到精通(全知识点笔记整理)

韩顺平循序渐进学java从入门到精通(全知识点笔记整理)

Java韩顺平笔记第1讲内容介绍.项目演示.原理剖析1. 课程包括:java面向对象编程,java图形界面,java数据库编程,java文件i/o流,java网络编程,java的多线程2. Java历史:1990 sun 启动绿色计划 1992 创建 oak语言—> java1994 gosling 参加硅谷大会演示java功能震惊世界 1995 sun 正式发布java第一个版本,目前最新的是jdk7.03. java开发工具:记事本,jcreator,jbuilder,netbean,eclipse4. jdk包括:jre(java运行环境)java的工具:编译器javac.exe解释执行器java.exe java的类库:3600多个,常用的150多个5. 第一个程序://功能:显示―HelloWorld‖//public:表示类是公共的,一个文件中只有一个public类 //class:表示这个是一个类//HelloWorld:类名(公共类的类名,必须和文件名一样)public class HelloWorld {//一个主函数,程序的入口 public static void main (String args[]) {//执行语句System.out.println("helloWorld!"); } }6. Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机(jvm)——>字节码文件(.class)就会在java虚拟机中执行l,average); } }第2讲变量.数据类型1. 在java里面int占4个字节,long占8个字节2. Java基本数据类型:整数:(byte一个字节:-128---127 int四个字节:-2147483648---+2147483647short两个字节:-32768---+32767 long八个字节:)小数(浮点):float double布尔:boolean字符:char(两个字节,可以存放汉字, char test1 ='中';)引申到字符串(类)3.在java中对char进行运算的时候,直接是当做ASCII码对应的整数4.数据不能从高精度到低精度的转换Byte<short<int<long<float<doublefloat a=3.4;是过不去的,在java中小数默认是double(双精度)的应该写成是float a=3.4f;不过可以强制转换:int a=(int)1.2; intb=(int)1.95. int a=1;int b=a+1.2; a先是往高精度转换,然后赋给b,就报错改成int a=1;double b=a+1.2; 或者int a=1;float b=a+1.2f; 就解决了第4讲流程控制1. switch case语句中,switch条件表达式的数据类型应该和后面case的类型一致2. switch case语句中,可用的数据类型主要是:byte short int char enum第5讲类与对象1. 面向对象编程-类与对象类名首字母大写类里面的元素叫类的成员变量/属性2. 类的定义package 包名;class 类名extends 父类implements接口名{成员变量;构造方法;成员方法;}3. 如何创建对象:先声明再创建Cat cat1;cat1=new Cat();一步到位Cat cat1 =new Cat();4. 引用传递类似于指针一样第8讲this 类变量1. this属于类的对象的而不是属于类的2. 5this不能在类的外部使用,只能在类定义时候使用!3. 可以用类名直接访问静态变量第9讲类方法封装1.类变量是该类的所有对象共享的对象,一改全改了2.定义语法:访问修饰符static 数据类型变量名3. public class Demo9{static int i=1;static{System.out.println("zhixingyicile");i++;}//会自动执行一次,也只有一次public Demo9(){System.out.println("ffffffff");i++;}public static void main(String args[]){Demo9 t1=new Demo9();System.out.println(Demo9.i);Demo9 t2=new Demo9();System.out.println(i);}}4.类方法(静态方法、静态函数):属于所有对象实例的5.Java中:类变量(static)原则上用类方法(static)去访问;类方法中不能访问非静态变量,就是非类变量,但是普通的成员方法可以访问静态变量(类变量)使用:类名.类方法名对象名.类方法名6.非类变量就是实例变量,属于每个对象自己的7.Java面向对象编程的三(四)大特征:封装、继承、多态(、抽象)8.抽象:把一类事物的共有的属性和行为提取出来,形成一个物理模板,此研究问题的方法就是抽象9.封装:把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。

玩转oracle第8讲-oracle表查询(1)

玩转oracle第8讲-oracle表查询(1)

·在当前用户下,查询该用户的所有表
select table_name from user_tables;
------------------------------------------
Oracle表基本查询 -简答的查询语句
·查看表结构
sql>desc dept;
·如何使用like操作符
%:表示任意0到多个字符
_:表示任意单个字符
?如何显示首字母为S的员工姓名和工资
select ename,sal from emp where ename like 'S%';
?如何显示第三个字符为大写O的所有员工的 姓名和工资
玩转Oracle实战教程 主讲:韩顺平
------------------------------------------
玩转Oracle第8讲:oracle表查询(1)
------------------------------------------
Oracle表基本查询 -介绍
·介绍
利用scott用户存在的几张表(emp,dept)来演示如何使用select查询语句
·在当前用户下,查询该用户共有几个表
select count(*) from user_tables
select count(*) from user_all_tables
select ename,sal from emp where ename like '__O%';
·在where条件中显示in
?如何显示empno为123,345,800...的雇员情况
select * from emp where empno in (123,345,800);

[实用参考]Oracle教程从入门到精通

[实用参考]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屏幕上的内容输出到指定文件中去。

韩顺平 oracle视频教程上课笔记

韩顺平 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视频教程笔记

韩顺平玩转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屏幕上的内容输出到指定文件中去。

oracle11g教程从入门到精通

oracle11g教程从入门到精通

韩顺平—玩转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 用户名/密码@网络服务名[assysdba/sysoper]当用特权用户身份连接时, 必需带上as sysdba或是as sysoper 2.disc[onnect]说明: 该命令用来断开与以后数据库的连接3.psssw[ord]说明: 该命令用于修改用户的密码, 如果要想修改其它用户的密码, 需要用sys/system登录. 4.show user说明: 显示以后用户名说明: 该命令会断开与数据库的连接, 同时会退出sql*plus 文件把持命令1.start和@说明: 运行sql脚本案例: sql>@ d:\a.sql或是sql>start d:\a.sql ,这样会把d:\a.sql这个文件翻开说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去. 案例: sql>spool d:\b.sql 并输入 sql>spool off 交互式命令1.&说明:可以替代变量, 而该变量在执行时, 需要用户输入.select * from emp where job='&job';说明:该命令可以编纂指定的sql脚本案例:SQL>edit d:\a.sql说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去. spool d:\b.sql 并输入 spool off 显示和设置环境变量概述:可以用来控制输出的各种格式, set show如果希望永久的保管相关的设置, 可以去修改glogin.sql脚本说明:设置显示行的宽度, 默认是80个字符show linesizeset linesize 90说明:设置每页显示的行数目, 默认是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 option grant 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分配给用户. 概述:指定该账户(用户)登岸时最多可以输入密码的次数, 也可以指定用户锁定的时间(天)一般用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; 为了让用户按期修改密码可以使用终止口令的指令来完成, 同样这个命令也需要dba的身份来把持. 例子:给前面创立的用户tea创立一个profile文件, 要求该用户每隔10天要修改自己的登岸密码, 宽限期为2天.看看怎么做. SQL> create profile myprofile limitpassword_life_time 10 password_grace_time 2; SQL> alter user tea profile myprofile;口令历史概述:如果希望用户在修改密码时, 不能使用以前使用过的密码, 可使用口令历史, 这样oracle就会将口令修改的信息寄存到数据字典中, 这样当用户修改密码时, oracle就会对新旧密码进行比力, 当发现新旧密码一样时, 就提示用户重新输入密码. 例子: 1)建立profile SQL>create profilepassword_history limit password_life_time 10password_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个字符. 例子:varchar2(10)‘小韩’ oracle分配四个字符.这样可以节省空间.clob(character large object) 字符型年夜对象最年夜4G char 查询的速度极快浪费空间, 查询比力多的数据用. varchar 节省空间数字型number范围 -10的38次方到 10的38次方可以暗示整数, 也可以暗示小数 number(5,2) 暗示一位小数有5位有效数, 2位小数范围:-999.99到999.99 number(5) 暗示一个5位整数范围99999到-99999日期类型 date 包括年月日和时分秒 oracle默认格式 1-1月-1999 timestamp 这是oracle9i对date数据类型的扩展.可以精确到毫秒. 图片blob 二进制数据可以寄存图片/声音 4G 一般来讲, 在真实项目中是不会把图片和声音真的往数据库里寄存, 一般寄存图片、视频的路径, 如果平安需要比力高的话, 则放入数据库. 怎样创立表建表--学生表 create table student ( ---表名 xh number(4), --学号 xm varchar2(20), --姓名 sex char(2), --性别 birthday date, --出身日期 sal number(7,2) --奖学金 );--班级表 CREATE TABLE class( classIdNUMBER(2), cName VARCHAR2(40));修改表添加一个字段SQL>ALTER TABLE student add (classId NUMBER(2)); 修改一个字段的长度 SQL>ALTER TABLE student MODIFY (xmVARCHAR2(30)); 修改字段的类型/或是名字(不能有数据)不建议做 SQL>ALTER TABLE student modify (xm CHAR(30)); 删除一个字段不建议做(删了之后, 顺序就变了.加就没问题, 应为是加在后面)SQL>ALTER TABLE student DROP COLUMN sal; 修改表的名字很少有这种需求 SQL>RENAME student TO stu; 删除表 SQL>DROP TABLE student; 添加数据所有字段都拔出数据INSERT INTO student VALUES ('A001','张三','男','01-5月-05', 10); oracle中默认的日期格式‘dd-mon-yy’ dd日子(天) mon 月份 yy 2位的年‘09-6月-99’ 1999年6月9日修改日期的默认格式(临时修改, 数据库重启后仍为默认;如要修改需要修改注册表) ALTER SESSION SETNLS_DATE_FORMAT ='yyyy-mm-dd'; 修改后, 可以用我们熟悉的格式添加日期类型: INSERT INTO student VALUES('A002','MIKE','男','1905-05-06', 10); 拔出部份字段INSERT INTO student(xh, xm, sex) VALUES ('A003','JOHN','女'); 拔出空值 INSERT INTO student(xh, xm, sex, birthday) VALUES ('A004','MARTIN','男', null); 问题来了, 如果你要查询student内外birthday为null的记录, 怎么写sql呢?毛病写法:select * from student where birthday = null; 正确写法:select * from student where birthday is null; 如果要查询birthday不为null,则应该这样写: select * from student where birthday is not null; 修改数据修改一个字段UPDATE student SET sex = '女' WHERE xh = 'A001'; 修改多个字段UPDATE student SET sex = '男', birthday = '1984-04-01' WHERE xh = 'A001'; 修改含有null值的数据不要用 =null 而是用 is null; SELECT * FROM student WHERE birthday IS null;删除数据DELETE FROM student; 删除所有记录, 表结构还在,写日志, 可以恢复的, 速度慢. Delete 的数据可以恢复. savepoint a; --创立保管点 DELETE FROM student; rollback to a; --恢复到保管点一个有经验的DBA, 在确保完成无误的情况下要按期创立还原点. DROP TABLE student; --删除表的结构和数据; delete from student WHERE xh = 'A001'; --删除一条记录; truncate TABLE student; --删除表中的所有记录, 表结构还在, 不写日志, 无法找回删除的记录, 速度快.五:oracle表查询(1)oracle表基本查询介绍在我们讲解的过程中我们利用scott用户存在的几张表(emp, dept)为年夜家演示如何使用select语句, select语句在软件编程中非常有用, 希望年夜家好好的掌握. emp 雇员表clerk 普员工 salesman 销售 manager 经理 analyst 分析师 president 总裁 mgr 上级的编号 hiredate 入职时间sal 月工资 comm 奖金 deptno 部份 dept部份表 deptno 部份编号 accounting 财政部 research 研发部 operations 业务部 loc 部份所在地址 salgrade 工资级别 grade 级别 losal 最低工资 hisal 最高工资简单的查询语句检查表结构DESC emp; 查询所有列SELECT * FROM dept; 切忌动不动就用select * SET TIMING ON; 翻开显示把持时间的开关, 在下面显示查询时间. CREATE TABLE users(userId VARCHAR2(10), uName VARCHAR2 (20), uPassw VARCHAR2(30)); INSERT INTO users VALUES('a0001','啊啊啊啊','aaaaaaaaaaaaaaaaaaaaaaa'); --从自己复制, 加年夜数据量年夜概几万行就可以了可以用来测试sql语句执行效率 INSERT INTO users(userId,UNAME,UPASSW) SELECT * FROM users; SELECT COUNT (*) FROM users;统计行数查询指定列SELECT ename, sal, job, deptno FROM emp; 如何取消重复行DISTINCT SELECT DISTINCT deptno, job FROM emp; 查询SMITH所在部份, 工作, 薪水 SELECT deptno,job,sal FROM emp WHERE ename = 'SMITH'; 注意:oracle对内容的年夜小写是区分的, 所以ename='SMITH'和ename='smith'是分歧的使用算术表达式nvl null 问题:如何显示每个雇员的年工资? SELECT sal*13+nvl(comm, 0)*13 "年薪" , ename, comm FROM emp; 使用列的别名SELECT ename "姓名", sal*12 AS "年收入" FROM emp; 如何处置null值使用nvl函数来处置如何连接字符串(||)SELECT ename || ' is a ' || job FROM emp; 使用where子句问题:如何显示工资高于3000的员工?SELECT * FROM emp WHERE sal > 3000; 问题:如何查找1982.1.1后入职的员工?SELECT ename,hiredate FROM emp WHERE hiredate >'1-1月-1982'; 问题:如何显示工资在2000到3000的员工? SELECT ename,sal FROM emp WHERE sal >=2000 AND sal <= 3000; 如何使用like把持符 %:暗示0到多个字符 _:暗示任意单个字符问题:如何显示首字符为S的员工姓名和工资? SELECT ename,sal FROM emp WHERE ename like 'S%'; 如何显示第三个字符为年夜写O的所有员工的姓名和工资? SELECT ename,sal FROM emp WHERE ename like '__O%'; 在where条件中使用in 问题:如何显示empno为7844, 7839,123,456 的雇员情况?SELECT * FROM emp WHERE empno in (7844, 7839,123,456); 使用is null的把持符问题:如何显示没有上级的雇员的情况?毛病写法:select * from emp where mgr = ''; 正确写法:SELECT * FROM emp WHERE mgr is null;六:oracle表查询(2)使用逻辑把持符号问题:查询工资高于500或者是岗位为MANAGER的雇员, 同时还要满足他们的姓名首字母为年夜写的J?SELECT * FROM emp WHERE (sal >500 or job = 'MANAGER') and ename LIKE 'J%'; 使用order by 字句默认asc 问题:如何依照工资的从低到高的顺序显示雇员的信息? SELECT * FROM emp ORDER by sal; 问题:依照部份号升序而雇员的工资降序排列 SELECT * FROM emp ORDER by deptno, sal DESC; 使用列的别名排序问题:按年薪排序 select ename, (sal+nvl(comm,0))*12 "年薪" from emp order by "年薪" asc; 别名需要使用“”号圈中,英文不需要“”号分页查询等学了子查询再说吧........ Clear 清屏命令 oracle表复杂查询说明在实际应用中经常需要执行复杂的数据统计, 经常需要显示多张表的数据, 现在我们给年夜家介绍较为复杂的select语句数据分组——max, min, avg, sum, count 问题:如何显示所有员工中最高工资和最低工资? SELECT MAX(sal),min(sal) FROM emp e; 最高工资那个人是谁?毛病写法:select ename, sal from emp where sal=max(sal); 正确写法:select ename, sal from emp where sal=(select max(sal)from emp); 注意:select ename, max(sal) from emp;这语句执行的时候会报错, 说ORA-00937:非单组分组函数.因为max是分组函数, 而ename不是分组函数....... 可是select min(sal), max(sal) from emp;这句是可以执行的.因为min和max都是分组函数, 就是说:如果列里面有一个分组函数, 其它的都必需是分组函数, 否则就犯错.这是语法规定的问题:如何显示所有员工的平均工资和工资总和?问题:如何计算总共有几多员工问题:如何扩展要求:查询最高工资员工的名字, 工作岗位 SELECT ename, job, sal FROM emp e where sal = (SELECT MAX(sal) FROM emp); 显示工资高于平均工资的员工信息 SELECT * FROM emp e where sal > (SELECT AVG(sal) FROM emp); group by 和having子句 group by用于对查询的结果分组统计, having子句用于限制分组显示结果. 问题:如何显示每个部份的平均工资和最高工资? SELECT AVG(sal), MAX(sal), deptno FROM emp GROUP by deptno; (注意:这里隐藏了一点, 如果你要分组查询的话, 分组的字段deptno一定要呈现在查询的列内外面, 否则会报错.因为分组的字段都不呈现的话, 就没法子分组了)问题:显示每个部份的每种岗位的平均工资和最低工资? SELECT min(sal), AVG(sal), deptno, job FROM emp GROUP by deptno, job; 问题:显示平均工资低于2000的部份号和它的平均工资?SELECT AVG(sal), MAX(sal), deptno FROM emp GROUP bydeptno having AVG(sal) < 2000; 对数据分组的总结 1 分组函数只能呈现在选择列表、having、order by子句中(不能呈现在where中) 2 如果在select语句中同时包括有group by, having, order by 那么它们的顺序是group by, having, order by 3 在选择列中如果有列、表达式和分组函数, 那么这些列和表达式必需有一个呈现在group by 子句中, 否则就会犯错. 如SELECT deptno, AVG(sal),,, d.dname FROM emp e,,, e.sal FROM emp e,,, s.grade FROM emp e,,, d.dname FROM emp e,,boss.ename FROM emp worker,emp boss WHERE worker.mgr = boss.empno AND worker.ename = 'FORD'; 子查询什么是子查询子查询是指嵌入在其他sql语句中的select语句, 也叫嵌套查询. 单行子查询单行子查询是指只返回一行数据的子查询语句请思考:显示与SMITH同部份的所有员工?思路:1 查询出SMITH的部份号 select deptno from emp WHERE ename = 'SMITH'; 2 显示 SELECT * FROM emp WHERE deptno = (select deptno from emp WHERE ename = 'SMITH'); 数据库在执行sql 是从左到右扫描的, 如果有括号的话, 括号里面的先被优先执行. 多行子查询多行子查询指返回多行数据的子查询请思考:如何查询和部份10的工作相同的雇员的名字、岗位、工资、部份号 SELECT DISTINCT job FROM emp WHERE deptno = 10; SELECT * FROM emp WHERE job IN (SELECT DISTINCT job FROM emp WHERE deptno = 10); (注意:不能用job=.., 因为等号=是一对一的)在多行子查询中使用all把持符问题:如何显示工资比部份30的所有员工的工资高的员工的姓名、工资和部份号?SELECT ename, sal, deptno FROM emp WHERE sal > all (SELECT sal FROM emp WHERE deptno = 30); 扩展要求:年夜家想想还有没有另外查询方法. SELECT ename, sal, deptno FROM emp WHERE sal > (SELECT MAX(sal) FROM emp WHERE deptno = 30); 执行效率上, 函数高很多在多行子查询中使用any把持符问题:如何显示工资比部份30的任意一个员工的工资高的员工姓名、工资和部份号? SELECT ename, sal, deptno FROM emp WHERE sal > ANY (SELECT sal FROM emp WHEREdeptno = 30); 扩展要求:年夜家想想还有没有另外查询方法. SELECT ename, sal, deptno FROM emp WHERE sal > (SELECTmin(sal) FROM emp WHERE deptno = 30); 多列子查询单行子查询是指子查询只返回单列、单行数据, 多行子查询是指返回单列多行数据, 都是针对单列而言的, 而多列子查询是指查询返回多个列数据的子查询语句. 请思考如何查询与SMITH的部份和岗位完全相同的所有雇员. SELECT deptno, job FROM emp WHERE ename = 'SMITH'; SELECT * FROM emp WHERE (deptno, job) = (SELECT deptno, job FROM emp WHERE ename ='SMITH'); 在from子句中使用子查询请思考:如何显示高于自己部份平均工资的员工的信息思路: 1. 查出各个部份的平均工资和部份号 SELECT deptno,,,, ds.mysal FROM emp e, (SELECT deptno,,,, ds.mysal FROM emp e,(SELECT deptno, AVG(sal) mysal FROM emp GROUP by deptno) as ds WHERE e.deptno = ds.deptno AND e.sal > ds.mysal; 在ds前不能加as, 否则会报错(给表取别名的时候, 不能加as;可是给列取别名, 是可以加as的)分页查询按雇员的id号升序取出 oracle的分页一共有三种方式 1.根据rowid来分 select * from t_xiaoxi where rowid in (select rid from (select rownum rn, rid from(select rowid rid, cid from t_xiaoxi order by cid desc) where rownum<10000) where rn>9980) order by cid desc; 执行时间0.03秒 2.按分析函数来分 select * from (select t.*, row_number() over(order by cid desc) rk from t_xiaoxi t) where rk<10000 and rk>9980; 执行时间1.01秒 3.按rownum来分 select * from (select t.*,rownum rnfrom(select * from t_xiaoxi order by cid desc)t where rownum<10000) where rn>9980; 执行时间0.1秒其中t_xiaoxi为表名称, cid为表的关键字段, 取按cid降序排序后的第9981-9999条记录, t_xiaoxi表有70000多条记录. 个人感觉1的效率最好, 3次之, 2最差. //测试通过的分页查询okokok select * from (select a1.*, rownum rn from(select ename,job from emp) a1 where rownum<=10)where rn>=5; 下面最主要介绍第三种:按rownum来分 1. rownum 分页 SELECT * FROMemp; 2. 显示rownum[oracle分配的] SELECT e.*, ROWNUM rn FROM (SELECT * FROM emp) e; rn相当于Oracle分配的行的ID号 3.挑选出6—10条记录先查出1-10条记录SELECT e.*, ROWNUM rn FROM (SELECT * FROM emp) e WHERE ROWNUM <= 10; 如果后面加上rownum>=6是不成的, 4. 然后查出6-10条记录 SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT * FROM emp) e WHERE ROWNUM <= 10) WHERE rn >= 6; 5. 几个查询变动 a. 指定查询列, 只需要修改最里层的子查询只查询雇员的编号和工资 SELECT * FROM (SELECT e.*, ROWNUMrn FROM (SELECT ename, sal FROM emp) e WHERE ROWNUM <= 10) WHERE rn >= 6; b. 排序查询, 只需要修改最里层的子查询工资排序后查询6-10条数据 SELECT * FROM (SELECT e.*, ROWNUMrn FROM (SELECT ename, sal FROM emp ORDER by sal) e WHEREROWNUM <= 10) WHERE rn >= 6; 用查询结果创立新表这个命令是一种快捷的建表方式 CREATE TABLE mytable (id, name, sal, job, deptno) as SELECT empno, ename, sal, job, deptno FROM emp; 创立好之后, desc mytable;和select * from mytable;看看结果如何?合并查询合并查询有时在实际应用中, 为了合并多个select语句的结果, 可以使用集合把持符号union, union all, intersect, minus 多用于数据量比力年夜的数据局库, 运行速度快. 1). union 该把持符用于取得两个结果集的并集.当使用该把持符时, 会自动去失落结果集中重复行. SELECT ename, sal, job FROM emp WHERE sal >2500 UNION SELECT ename, sal, job FROM emp WHERE job = 'MANAGER'; 2).union all 该把持符与union相似, 可是它不会取消重复行, 而且不会排序. SELECT ename, sal, job FROM emp WHERE sal >2500 UNION ALL SELECT ename, sal, job FROM emp WHERE job ='MANAGER'; 该把持符用于取得两个结果集的并集.当使用该把持符时, 会自动去失落结果集中重复行. 3). intersect 使用该把持符用于取得两个结果集的交集. SELECT ename, sal, job FROM emp WHERE sal >2500 INTERSECT SELECT ename, sal, job FROM emp WHERE job = 'MANAGER'; 4). minus 使用改把持符用于取得两个结果集的差集, 他只会显示存在第一个集合中, 而不存在第二个集合中的数据. SELECT ename, sal, job FROM emp WHERE sal >2500 MINUS SELECT ename, sal, job FROM emp WHERE job = 'MANAGER'; (MINUS就是减法的意思)创立数据库有两种方法: 1). 通过oracle提供的向导工具.√ database Configuration Assistant 【数据库配置助手】 2).我们可以用手工步伐直接创立.七:java把持oraclejava连接oracle 介绍:前面我们一直在plsql中把持oracle, 那么如何在java 法式中把持数据库呢?下面我们举例说明, 写一个java, 分页显示emp表的用户信息.Java代码1.package com.sp;2.import java.sql.Connection;3.import java.sql.DriverManager;4.import java.sql.ResultSet;5.import java.sql.Statement;6.//演示如何使用jdbc_odbc桥连接方式7.public class TestOracle {8.public static void main(String[] args){9.try {10.// 1.加载驱动11.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");12.// 2.获得连接13.Connection ct = DriverManager.getConnection(14."jdbc.odbc:testConnectOracle", "scott",15."tiger");16.// 从下面开始, 和SQL Server一模一样17.Statement sm = ct.createStatement();18.ResultSet rs = sm.executeQuery("select * from emp");19.while (rs.next()) {20.//用户名21.System.out.println("用户名:"+rs.getString(2));22.//默认是从1开始编号的23.}24.} catch (Exception e) {25. e.printStackTrace();26.}27.}28.}在获得连接那里, 要去配置数据源, 点击控制面板-->系统和平安-->管理工具-->数据源(ODBC),翻开后点添加,如图:可以看到, 有个Oracle in OraDb10g_home1的驱动, 它是Oracle装置完后自动加上去的. 选中后, 点完成, 再填如下信息,如图:这样配好后基本就可以了, 但为了平安起见, 建议年夜家测试一下, 点击 Test Connection按钮, 测试通过后点ok,然后数据源就生成了, 如图:然后把数据源名称写进jdbc.odbc:里.这里要注意:jdbcodbc能不能远程连接呢?不能远程连接, 也就是你这样写的话就意味着java法式和oracle数据库应该是在同一台机器上, 因为这里没有指定IP地址, 肯定默认就是本地.如果要远程连, 就用jdbc,jdbc是可以远程连的.,控制台输出.......................可惜我没运行胜利, 说java.sql.SQLException: No suitable driver found forjdbc.odbc:testConnectOracle atjava.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at com.sp.TestOracle.main(TestOracle.java:18) 不知道为什么... 接下来讲解用JDBC的方式连接OracleJava代码1.package com.sp;2.import java.sql.Connection;3.import java.sql.DriverManager;4.import java.sql.ResultSet;5.import java.sql.Statement;6.//使用jdbc连接oracle7.public class TestOracle2 {8.public static void main(String[] args){9.try {10.// 1.加载驱动11.Class.forName("oracle.jdbc.driver.OracleDriver");12.// 2.获得连接13.Connection ct = DriverManager.getConnection14.("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott","tiger");15.// 从下面开始, 和SQL Server一模一样16.Statement sm = ct.createStatement();17.ResultSet rs = sm.executeQuery("select * from emp");18.while (rs.next()) {19.//用户名20.System.out.println("用户名:"+rs.getString(2));21.//默认是从1开始编号的22.}23.} catch (Exception e) {24. e.printStackTrace();25.}26.}27.}记得要把驱动包引入, classes12.jar 运行, .... 再次可惜, 我还是没运行胜利, 毛病是: java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.ja va:134) atoracle.jdbc.dbaccess.DBError.throwSqlException(DBError.ja va:179) atoracle.jdbc.dbaccess.DBError.throwSqlException(DBError.ja va:334) atoracle.jdbc.driver.OracleConnection.<init>(OracleConnecti on.java:418) atoracle.jdbc.driver.OracleDriver.getConnectionInstance (OracleDriver.java:521) atoracle.jdbc.driver.OracleDriver.connect(OracleDriver.java :325) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at com.sp.TestOracle2.main(TestOracle2.java:18) 我也不知道为什么... 幽怨了.. 接下来建个web project, 来测试oracle的分页, 挺麻烦, 不记录了.. 在oracle中把持数据 - 使用特定格式拔出日期值使用 to_date函数请年夜家思考:如何拔出列带有日期的表, 并依照年-月-日的格式拔出? insert into empvalues (9998,'xiaohong', 'MANAGER',7782,to_date('1988-12- 12','yyyy-mm-dd'),,, 10); 注意: insert into emp values (9998,'xiaohong','MANAGER', 7782,'12-12月-1988',,,10); 这句语句是可以胜利运行的使用子查询拔出数据介绍当使用valus子句时, 一次只能拔出一行数据, 当使用子查询拔出数据时, 一条inset语句可以拔出年夜量的数据.当处置行迁移或者装载外部表的数据到数据库时, 可以使用子查询来拔出数据. 把emp表中10号部份的数据导入到新表中 create table kkk(myId number(4), myName varchar2(50), myDeptnumber(5)); insert into kkk (myId, myName,myDept) select empno, ename, deptno from emp where deptno = 10; 介绍使用update语句更新数据时, 既可以使用表达式或者数值直接修改数据, 也可以使用子查询修改数据. 问题:希望员工SCOTT的岗位、工资、补助与SMITH员工一样.update emp set(job, sal, comm)=(select job, sal, comm from emp where ename='SMITH') where ename='SCOTT';八:oracle中事务处置什么是事务事务用于保证数据的一致性, 它由一组相关的dml语句组成, 该组的dml(数据把持语言, 增删改, 没有查询)语句要么全部胜利, 要么全部失败. 如:网上转账就是典范的要用事务来处置, 用于保证数据的一致性. dml 数据把持语言银行转账、QQ申请、车票购买事务和锁当执行事务把持时(dml语句), oracle会在被作用的表上加锁, 防止其它用户修改表的结构.这里对我们的用户来来讲是非常重要的. .....其它进程排序, 知道1号进程完成, 锁翻开, 2号进程进入.依次进行, 如果有进程级别较高的, 可以插队. 提交事务当执行用commit语句可以提交事务.当执行了commit语句之后, 会确认事务的变动、结束事务.删除保管点、释放锁, 当使用commit语句结束事务之后, 其它会话将可以检查到事务变动后的新数据. 保管点就是为回退做的.保管点的个数没有限制回退事务在介绍回退事务前, 我们先介绍一下保管点(savepoint)的概念和作用.保管点是事务中的一点.用于取消部份事务, 当结束事务时, 会自动的删除该事务所界说的所有保管点.当执行rollback时, 通过指定保管点可以回退到指定的点, 这里我们作图说明. 事务的几个重要把持 1.设置保管点 savepoint a 2.取消部份事务 rollback to a 3.取消全部事务 rollback 注意:这个回退事务, 必需是没有commit前使用的;如果事务提交了, 那么无论你刚才做了几多个保管点, 都统统没有. 如果没有手动执行commit,而是exit了, 那么会自动提交java法式中如何使用事务在java把持数据库时, 为了保证数据的一致性, 比如账户把持(1)从一个账户中减失落10$(2)在另一个账户上加入10$,我们看看如何使用事务?Java代码1.package com.sp;2.import java.sql.Connection;3.import java.sql.DriverManager;4.import java.sql.ResultSet;5.import java.sql.Statement;。

韩顺平Oracle笔记——表空间

韩顺平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;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


--例子:如果Scott用户把访问表EMP的权限授予用户xiaoming,并允许它传递这个权限, 用户xiaoming把这个权限传递给了用户xiaohong, 所以现在无论是xiaoming或者是 xiaohong都可以访问scott用户的EMP表,但是当Scott用户收回了用户xiaoming的这个权 限之后,无论是xiaoming或者是xiaohong都没有办法在访问Scott用户的EMP表
• 条件是:is null • 条件是:is not null
删除数据
Oracle表管理
• .删除数据: • --delete from 表名;删除所有记录,但是表格的结构仍然存
在,写日志,可以恢复,速度慢 • 在删除之前,设置savepoint 点名—>删除—>rollback to 点名; 就可以 恢复
Oracle表名和列的命名规则、Oracle支持的数据类型
Oracle表管理
• *Oracle表名和列的命名规则
• • • • . . . . 必须以字母开头 长度不能超过30个字符 不能使用Oracle的保留字 只能使用如下字符A-Z、a-z、0-9、$、#等
• *Oracle支持的数据类型 • .字符型
• •
数字型、日期类型、图片类型
Oracle表管理
• .数字型
• • • --number 范围 10的-38次方到-10的38次方可以表示整数,也可以 表示小数。 --number(5,2) 表示一个小数有5为有效数字,2位小数,范围999.99到999.99 --number(5) u表示一个无谓整数,范围-99999到99999
权限分为、角色分为、数据库中的重要角色、对象权限
Oracle用户管理
• .权限分为: • 系统权限:用户对数据库的相关权限
• 对象权限:用户对其他用户的数据对象操作的权限
• .角色分为: • 自定义角色
• 预定义角色
• .数据库中的重要角色:resource、dba、 connect。 • .对象权限:select 、insert、update(修改)、 delete、all(所有权限 )
– char 定长 最大 最大2000字符。括号中指定的长度就是该字符串的长 字符。 字符 因此占用的空间较大,但是在产讯的时候不像varchar似地一 度,因此占用的空间较大,但是在产讯的时候不像 似地一 个字符一个字符的匹配,而是统一匹配,所以查询速度较快。 个字符一个字符的匹配,而是统一匹配,所以查询速度较快。 例子:char(10) '小寒' 前四个字符存放'小寒',后添6个空格补全。 – varchar2(20) 变长 最大 最大4000字符 字符 例子:varchar2(10) ‘小寒’Oracle分配4个字符,这样可以节省空间。 – clob(character large object) 字符型大对象 最大 最大4G
修改数据
Oracle表管理
• .修改一个字段内容:
• update 表名 set 修改前字段=修改后内容 Where 条件; • 例子:update Student set sex='女' Where xh=‘A001’;
• update emp set sal=sal/2; • .修改多个字段内容:
增删改 表名或者字段
Oracle表管理
• *添加一个字段 • .alter table 表名 add(字段名 类型); • *修改字段长度 • .alter table 表名 modify (字段名 类型(长度)); • * *修改字段的类型/或是名字(不能有数据) / ( )
• • • .alter table 表名 modify (字段名 类型); .alert table 表名 drop column 字段名; .rename 修改前的表名 to 修改后的表名; 表名;

账户锁定
Oracle用户管理
• 使用profile管理用户口令
• 概述:profile是口令限制、资源限制的命令集合。当建立数据库时, Oracle会自动建立名为default的profile,当建立的用户没有指定profile 选项,那Oracle就会将default分配给用户。
• ①账户锁定:就是指该账户(用户)登录时最多可以输入密码
给账户(用户)解锁、终止口令
Oracle用户管理
• ②给账户(用户)解锁

alter user scott(用户名) account unlock;
• ③:为了让用户定期修改密码,可以使用终止口令的指令来完成,
这个操作需要dba的身份操作。 • 例子:给用户Scott创建一个profile文件,要求该用户每隔10天就修 改一次自家的Oracle登录密码,宽限期为2天。 创建profile文件: •
给用户授权、访问别的表、收回权限、权限的传递
Oracle用户管理
• 给用户授权:grant 对象权限 on 表名 to 用户名;(有权授予该权
利的是sys或system或者拥有该表的用户)
• .当该用户访问别的用户的表的时候,格式为:别的用户名.表名。 • .收回权限:revoke 对象权限 on 表名 from 用户名;(只有给用 户授权的用户才可以收回权限) • .权限的传递:希望某用户可以查询另一个用户的某表,还希望 该用户还可以把这个权限继续给别人。 • 格式:grant 权限 on 表名 to 用户名 with grant option; • --grant select on emp to xiaoming with grant option;(如 果是对象权限,则加上with grant option) • 格式: grant 角色 to 用户名 with admin option; • --grant connect to xiaoming with admin option;(如 果是系统权限)
• --drop table 表名;删除表的结构和数据 • --delete from 表名 Where 条件;删除一条记录 • --truncate table 表名;删除表中的所有记录,表结构还在,
不写日志,无法找回删除的记录,速度快。

.
查看表结构、查询所有列、查询指定列、从别的表复制信息到表中
韩顺平Oracle笔记
新叶落无痕
创建一个用户、修改密码、删除用户、给用户赋予权限
Oracle用户管理
• 创建一个用户:
• create user 用户名 identified by 密码;
• .修改密码:
• password (修改自己的密码可以使用该命令) • alter user 用户名 identified by 密码;(dba修改普通用户的密码)
操作表
• 查看当前用户的所有表:
• Select *from tab;
• 查看表结构:
• DESC 表名;
• *删除一个字段 • *删除表的名字 • *删除表 • .drop table
添加数据
Oracle表管理
• *添加数据 • .所有字段都插入:insert into 表名 values('内容1','内 容2','内容3',…) • (字符串型或者是日期型需要加单引号,数字行不需 要加单引号) • 提示:Oracle中默认的日期格式是“dd-mon-yy”,dd日,mon-月,yy-年 • 若要插入自己要求的格式,则需要在sq-l*plus中输入命 令: • alter session set nls_date_format='yyyy-mm-dd';然后再插 入数据是就可以使用自己定义的格式,原来的格式将不 能再使用。 • .插入部分字段:insert into 表名(字段1,字段2,字段 3,…) values('内容1','内容2','内容3',…); • .插入空值: insert into 表名(字段1,字段2,字段-3,…) values('内容1','内容2',null,…);
• .删除用户:
• drop user 用户名
• .给用户赋予权限:
• grant connect to 用户名
• .常见的权限和角色
• create session------登录到数据库的权限 • connect-------是一种角色(权限的集合)
查询数据库满足条件的用户
• 命令格式:
– SELECT username FROM all_user WHERE 条件; 例子:
• •
分配给用户:
alter user Scott(用户名) profile ccc(文件名);
删除profile
Oracle用户管理
• ⑤删除profile
• 当不需要某个profile文件的时候,可以删除该文件: • drop profile ccc(文件名)[cascade]
• 注意:当删除profile文件后,被该profile文件约束的用户将被释放。
用户权限传递需要注意的事项
Oracle用户管理
• 用户权限传递需要注意的事项:
• 用户的系统权限的传递过程中,就算用户A已经把权限授给了 另一个用户B,而当该用户A的权限被收回时,其授予B的权限 也无法被收回(系统权限的收回是不级联的)。 • 用户的对象权限的传递过程中,就算用户A已经把权限授予了 另一个用户B,而当该用户A的权限被收回时,其授予B的权限 也将被收回(对象权限的收回是级联的)。
• • • • • 的次数,也可以指定用户锁定的时间(天),一般用DBA的身份去执 行该命令。 例子:指定Scott用户最多尝试输入3次密码,锁定时间为2天。 创建profile文件: create profile aaa(文件名) limit failed_login_attempts 3(次数) password_lock_time 2(天数); 分配给用户: alert user Scott(用户名) profile aaa(文件名);
相关文档
最新文档