
Oracle入门精读
Oracle入门精读是初中级系列教程,内容丰富,图文+实例演示,我用工作之余整理编辑,遵循从易到难,从理论到实践原则,费时近3月,目的希望广大IT同仁朋友们能更快熟悉掌握Oracle这门技术,希望大家喜欢,谢谢!
木生火
起舞弄清影,人间近黄昏;今夕是何年,点亮一盏灯
Email:2156858566@qq.com
展开
-
Oracle入门精读90-Oracle存储过程的for循环读取游标数据
--for循环遍历游标读取数据create or replace procedure test_for asCursor tempcursor is select userName from temUser01; name varchar2(20);begin for name in tempcursor LOOP begin ...原创 2019-02-10 19:43:08 · 435 阅读 · 0 评论 -
Oracle入门精读89-Oracle存储过程的while循环
--while循环调用存储过程插入数据--存储过程名temUser01_Add() 上章节已声明declare num number;begin num := 1; while num < 10 loop --dbms_output.put_line(num); temUser01_Add(01,'msh','...原创 2019-02-10 19:38:09 · 1138 阅读 · 0 评论 -
Oracle入门精读88-Oracle存储过程的案例(insert,update,delete)
建登录用户表create table temUser01( userID int, userName varchar2(10 char), userPass char(10), userAge int)--insert into用户信息create or replace procedure temUser01_Add(int_userID in int,...原创 2019-02-10 19:35:40 · 705 阅读 · 0 评论 -
Oracle入门精读87-Oracle存储过程的参数(in,out)
存储过程带有参数(in,out)创建create or replace procedure userInfo(userName out varchar,userAge in int)asbegin dbms_output.put_line('age='||userAge); select '木生火' into userName from dual;...原创 2019-02-10 19:31:30 · 313 阅读 · 0 评论 -
Oracle入门精读86-Oracle存储过程的基本语法
Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。语法CREATE OR REPLACE PROCEDURE 存储过程名称 (参数in,参数out)AS--变量声明,每个声明用分号结束,可以在声明的同时初始化name varchar2(50);age number(8) default 0;BEGIN--执行业务逻辑exception /...转载 2019-02-10 18:23:59 · 202 阅读 · 0 评论 -
Oracle入门精读85-Oracle建表完整案例
创建部门表SQL> create table hr_dept(id number(7),deptName varchar2(20) not null,constraint pk_dept_id primary key(id),constraint un_dept_deptName unique(deptName))创建人员表SQL> create tab...原创 2019-02-09 16:32:00 · 269 阅读 · 0 评论 -
Oracle入门精读84-Oracle建表参数详解
创建表时,Oracle在某一表空间中为新建的表分配一个数据段,该数据段可以用来存储表中的数据。表所在的表空间情况,如下:1)可以是当前用户的默认表空间。create user ximi identified by ximi123 default tablespace users Temporary TABLESPACE Temp;grant connect,resource to ...转载 2019-02-09 16:29:55 · 1171 阅读 · 0 评论 -
Oracle入门精读83-Oracle建表结构几点改善方法
应用程序开发人员根据实际应用提出表所需要的字段和数据类型。数据库设计人员结合数据库的特性设计表的结构。结构设计:◎ 确定表中字段的数据类型◎ 确定表的完整性约束。如,作为主码的字段,作为唯一码的字段,允许空值的字段◎ 设置表的存储参数。可以继承表空间的默认存储参数,或设置表自己的存储参数◎ 对表进行恰当的分簇,以节省存储空间和优化查询语句的效率如果,用户具有足够的权限和表...原创 2019-02-09 16:27:36 · 200 阅读 · 0 评论 -
Oracle入门精读82-Oracle表字段常用数据类型
类型 用途说明 备注CHAR 固定长度字符串 最大长度2000 bytesVARCHAR2 可变长度的字符串 最大长度4000 bytes NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytesNVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytesDATE 日期(日-月-年) ...转载 2019-02-09 16:25:40 · 183 阅读 · 0 评论 -
Oracle入门精读81-Oracle常用几种类型表
一张表最多有1000列;表的行数理论上没有限制;表上索引个数可以是列的全排列数,而且一次性能够使用32个;Oracle中主要几种表1)堆组织表是一种最常用的存储数据的形式。create table语句默认是创建的这种类型的数据表, 以一种随机的方式使用的空间.也就是说表中插入的每一行数据的空间分配是随机的,第一和第二条记录,在实际的硬盘上的位置可能不是紧挨着的。2)...转载 2019-02-09 16:21:04 · 270 阅读 · 0 评论 -
Oracle入门精读80-Oracle时间间隔interval的操作(函数extract)
两个Date相减的结果是一个number。两个timestamp相减的结果是一个INTERVAL值, 完整的年月日时分秒小数秒.演示SQL> create table test_timestamp2(time1 timestamp(9), time2 timestamp(9));SQL> insert into test_timestamp2 values(to_tim...转载 2019-02-09 12:59:12 · 559 阅读 · 0 评论 -
Oracle入门精读79-Oracle时间操作详解(TIMESTAMP 类型)
TIMESTAMP是支持小数秒,对秒的精确度更高。SQL> SELECT sysdate,systimestamp FROM dualto_char函数支持date和timestampSELECT sysdate,systimestamp,to_char(systimestamp,'yyyy/mm/dd hh24:mi:ssxff3') FROM dual语法格式...转载 2019-02-09 12:57:28 · 6196 阅读 · 0 评论 -
Oracle入门精读78-Oracle时间加减操作(add_months)
原有时间上增加10秒SQL> create table test_date1(id varchar2(10), operate_time date);insert into test_date1 values('1',sysdate);select * from test_date1SQL> update test_date1 set operate_time = ...原创 2019-02-09 12:55:51 · 2366 阅读 · 0 评论 -
Oracle入门精读77-Oracle时间详解(Date类型)
Date类型用于表示日期和时间的数据类型。固定占用7个字节。七个属性:世纪 年份 月份 某天 小时 分 秒演示SQL>create table test_date(col_date date);SQL>insert into test_date values(to_date('2019-02-08 22:35:00','yyyy-mm-dd hh24:...原创 2019-02-09 12:54:33 · 9786 阅读 · 0 评论 -
Oracle入门精读76-Oracle数值详解(float double)
Number类型是由oracle软件支持的类型,binary_float 和binary_double, 允许由在硬盘上(CPU,芯片)上执行运行。binary_float是一种IEEE固有的单精度浮点数。可存储6位精度binary_double是一种IEEE固有的双精度浮点数。可存储12位精度备注,在oracle 10g之前是没有这两种类型的。一般在科学计算中执行实数处理,依...转载 2019-02-09 12:53:02 · 1082 阅读 · 0 评论 -
Oracle入门精读75-Oracle数值详解(number类型)
number数值类型,是一种变长类型,长度为0-22字节。存储的数值的精度可以达到38位。number(p,s)P和s都是可选的。P指精度(precision),即总位数。默认情况下精度为38。精度的取值范围为1~38.S指小数位(scale),小数点右边的位数。小数点位数的合法值为-48~127。小数位的默认值由精度来决定。如果指定了精度,没有指定小数位,小数位默认为...转载 2019-02-09 12:51:11 · 764 阅读 · 0 评论 -
Oracle入门精读74-Oracle字符型NCHAR和NVARCHAR2(国家字符集存储模式)
使用NCAHR和NVARCHAR2时,文本内容采用国家字符集来存储和管理。而不是数据库默认字符集。这两种类型的长度默认指的是字符数,而不是字节数NLS国家语言支持(National Language Support)SQL>select * from nls_database_parameters;在oracle 9i及以后的版本,数据库的国家字符集可以是:utf-8和A...转载 2019-02-09 12:49:42 · 874 阅读 · 0 评论 -
Oracle入门精读73-Oracle字节与字符区别(byte/char)
byte就是字节, char就是字符在10g及后续版本中,字符类型的宽度定义时,可以指定单位(byte,char)。char(10 byte), varchar2(10 byte)char(10 char), varchar2(10 char)一个字符占用多少个字节,是由当前oracle数据库系统采用的字符集。如果在定义类型时,不指定单位,默认是按byte。表的某一列长度定义为...原创 2019-02-09 12:46:12 · 2875 阅读 · 0 评论 -
Oracle入门精读71-Oracle字符型详解(varchar2类型)
varchar2是一种变长的字符类型。最多可占用4000字节的存储空间。新建只有一个vchar2类型列长度为10的表SQL> create table test_varchar2(col varchar2(10));SQL> insert into test_varchar2 values('a');SQL> insert into test_varchar2...转载 2019-02-09 12:41:38 · 474 阅读 · 0 评论 -
Oracle入门精读70-Oracle字符型详解(char类型)
char定长字符串,会用空格来填充来达到其最大长度,最长2000个字节dump函数可以查看每一行的内部存数结构范例新建只有一个char类型列长度为10的表SQL> create table testChar(colA char(10));SQL> insert into testChar values('a');SQL> insert into tes...转载 2019-02-09 12:39:55 · 387 阅读 · 0 评论 -
Oracle入门精读69-Oracle数据类型及存储方式
一个字符占用多少个字节,是由当前Oracle数据库系统采用的字符集来决定的。查看当前Oracle数据库系统采用的字符集:SQL> select * from nls_database_parameters;NLS_CHARACTERSET是数据库字符集NLS_NCHAR_CHARACTERSET是国家字符集CHAR,VARCHAR2是按照数据库字符集来存储数据。N...原创 2019-02-09 12:37:42 · 176 阅读 · 0 评论 -
Oracle入门精读68-Oracle DBA常用的用户管理操作
查看所有用户:SQL>select * from dba_users;SQL>select * from all_users;SQL>select * from user_users;创建新用户create user 用户名 identified by 密码;SQL> create user Tom identified by T123456; ##...原创 2019-02-08 13:29:36 · 239 阅读 · 0 评论 -
Oracle入门精读67-Oracle某个用户被限制100个并发连接
限制用户(Tom)只允许100个并发连接SQL> alter system set resource_limit=true;SQL> create profile profile_TOM limit sessions_per_user 100;SQL> ALTER USER tom profile profile_TOM;...转载 2019-02-08 13:26:40 · 500 阅读 · 0 评论 -
Oracle入门精读66-Oracle用户4次登录没成功则限制再登,3天后方可重新登入
4次登录没成功则限制再登,3天后方可重新登入SQL>create profile 自定义名 limit failed_login_attempts 4 password_lock_time 3;SQL>alter user 账号 unlock;转载 2019-02-08 13:24:20 · 185 阅读 · 0 评论 -
Oracle入门精读64-Oracle用户每隔60天修改登录密码,宽限位2天
用户每隔60天修改登录密码,宽限位2天SQL>create profile 自定义名 limit password_life_time 60 password_grace_time 2;转载 2019-02-08 13:22:06 · 213 阅读 · 0 评论 -
Oracle入门精读63-Oracle历史口令10天内不可重复
如果希望用户在修改密码的时候不能使用以前使用过的密码.这样Oracle就会将口令修改的信息存放到数据字典中。当用户修改密码时,Oracle就会对新旧密码进行比较。当发现新旧密码一样时,就提示用户重新输入密码。sql > create profile 自定义名 limit password_life_time 60 password_grace_time 2 password_reuser...转载 2019-02-08 13:20:27 · 370 阅读 · 0 评论 -
Oracle入门精读62-Oracle DBA如何管控用户争用数据库系统资源
用户常争用的系统资源:cpu使用时间内存逻辑读取个数每个用户同时可以连接的会话数据一个会话的内存空间和持续时间每次会话的专用SGA空间通过设置用户资源文件可对用户的资源存取进行限制。备注:建立数据库时,oracle会自动建立名为default的profile。当建立用户没有指定profile选项,那么oracle就会将default分配给用户。创建用户资源文件...原创 2019-02-08 12:59:06 · 272 阅读 · 0 评论 -
Oracle入门精读61-Oracle设定用户的默认表空间
表空间是信息存储的最大逻辑单位。当用户连接到数据库进行资料存储时,若未指出数据表的目标存储表空间时,则数据表存储在用户的默认表空间中。sql>create table HR_Emp_Now(id varchar2(20),name varchar2(100));该语句创建了一个表HR_Emp_Now,其存储位置是在当前用户的默认表空间中。sql>create table...原创 2019-02-08 12:32:18 · 280 阅读 · 0 评论 -
Oracle入门精读60-Oracle创建用户的典型语法详解
大家经常使用的创建用户语法是比较简单的。介绍典型的语法create user userNameidentified by passWorddefault tablespace tablespaceNametemporary tablespace tablespaceNameprofile profilequota integer|unlimited on tablesp...转载 2019-02-08 12:29:42 · 366 阅读 · 0 评论 -
Oracle入门精读59-Oracle11g系统中预定义的用户及用途说明
Oracle11g系统中预定义的用户及用途说明SQL> select username,account_status from dba_users数据库中存在的用户具有OPEN,LOCK,EXPIRE三种状态, unlock状态不可登陆。用户名 密码 描述ANONYMOUS ANONYMOUS 访问http的匿名用户帐户CTXSYS CTXS...转载 2019-02-08 11:16:12 · 661 阅读 · 0 评论 -
Oracle入门精读58-Oracle中sys用户密码忘记了的办法
登录服务端cmd > sqlplus /nologSQL >connect / as sysdbaSQL >alter user sys identified by K17000205;SQL >exit 退出,密码修改完成了。##验证密码修改效果:Cmd >sqlplus sys/K17000205 as sysdbaSQL>...转载 2019-02-07 22:31:55 · 137 阅读 · 0 评论 -
Oracle入门精读57-Oracle常见对象权限的使用与回收
对象的拥有者拥有所有权限对象的拥有者可以向外分配权限权限名称 说明all 所有对象权限alter 修改表结构delete 删除数据select 查询数据insert 添加数据update 修改数据index 在表上建立索引references 引用execute ...转载 2019-02-07 21:42:01 · 224 阅读 · 0 评论 -
Oracle入门精读56-Oracle常见系统权限的使用与回收(revoke)
当刚新建立用户时,用户没有任何权限,也不能执行任何操作。如果要执行某种特定的数据库操作,则必须为其授予系统权限;如果用户要访问方案的对象,则必须为其授予对象权限。 系统权限是指执行特定类型Sql命令的权利,它用于控制用户可以执行的一个或是一组数据库操作。Oracle 11G提供了200多种系统权限,可以查询数据字典视图system_privilege_map显示所有...原创 2019-02-07 21:39:03 · 589 阅读 · 0 评论 -
Oracle入门精读55-Oracle角色管理常用方法
显示系统中的所有角色sql>select * from dba_roles;显示角色具有的系统权限Sql> select role,privilege from role_sys_privs where role='CONNECT';显示角色具有的对象权限Sql> select role,privilege from role_tab_privs wher...原创 2019-02-07 20:00:07 · 247 阅读 · 0 评论 -
Oracle入门精读54-Oracle自定义角色的授权与分配(grant)
一般DBA根据自己的需要来定义角色,在建立角色时可以指定验证方式(不验证,数据库验证等)。具有create role的系统权限创建自定义的新角色(不验证)角色是公用的角色,可以采用不验证的方式建立角色sql>create role 自定义角色名 not identified;创建自定义的新角色(数据库验证)在建立这种角色时,需要为其提供口令,角色名、口令存放在数据库中...原创 2019-02-07 19:58:43 · 403 阅读 · 0 评论 -
Oracle入门精读53-Oracle预定义角色的拥有权限的详解
connectconnect角色具有一般应用开发人员需要的大部分权限,当建立了一个用户后,一般情况下,只要给用户授予connect和resource角色。该角色具有以下系统权限:alter sessioncreate clustercreate database linkcreate sessioncreate viewcreate sequence res...原创 2019-02-07 19:55:50 · 378 阅读 · 0 评论 -
Oracle入门精读52-Oracle预定义角色分类(DBA、RESOURCE...)
Oracle角色分为预定义角色和自定义角色预定义角色Oracle预定义五个角色:DBA、RESOURCE、 CONNECT 、EXP_FULL_DATABASE、 IMP_FULL_DATABASE 角色主要作用:简化权限管理例如,我们给用户a,b,c拥有在emp表上session ,select,insert,update,delete权限, 需要进行15次授权。如果...原创 2019-02-07 19:53:45 · 437 阅读 · 0 评论 -
Oracle入门精读51-Oracle11g数据字典视图应用详解
表查看用户下所有的表select * from user_tables;查看名称包含log字符的表select object_name,object_id from user_objects where instr(object_name,'LOG')>0;查看某表的创建时间select object_name,created from user_objects wh...原创 2019-02-07 13:11:54 · 209 阅读 · 0 评论 -
Oracle入门精读50-数据字典视图与数据库组件相关的汇总
数据库组件 数据字典中的表或视图 说明数据库 v$datafile 记录系统的运行情况表空间 dba_tablespaces 记录系统表空间的基本信息 dba_free_space 记录系统表空间空闲信息控制文件 v$contro...原创 2019-02-07 13:09:34 · 157 阅读 · 0 评论 -
Oracle入门精读49-Oracle动态数据字典视图列表(常用)
v$_ 前缀v$database 数据库信息v$datafile 数据文件信息v$controlfile 控制文件信息v$logfile 重做日志信息v$instance 数据库实例信息v$log 日志组信息v$loghist 日志历史信息v$sga 数据库SGA信息v$parameter 初始化参数信息v$process 数据库服...原创 2019-02-07 13:02:47 · 236 阅读 · 0 评论