oracle学习笔记(1) oracle数据库编程基础。
这段时间出差,一直在搞需求分析和设计,每天都是写文档画uml,都有好几个月没有写**了,只怕都快忘记了!
这是我用oracle时学习的oracle编程做的笔记,今天也发上来与大家分享一下,一共有八章。
现在在有时间就学一下ejb3,因为在项目中会用到,等学完了把ejb3的笔记也发上来和大家分享!
通过sqlplus登录oracle ,sqlplus 用户名/密码@数据库名
建表 sql**
1. createtabledemo(
2. idnumber(8),3. namevarchar2(20)
create table demo(
id number(8),name varchar2(20)
插入数据 sql**
1. insertintodemovalues(1,'zhangshang');
2. insertintodemovalues(2,'lishi');
insert into demo values(1,'zhangshang');
insert into demo values(2,'lishi');
提交 sql**
1. commit;
commit;
查询数据字典(table_name='这里的值要大写')
sql**
1. select*fromdba_tab_'demo';
select * from dba_tab_cols a where 'demo';
创建视图 create or replace:如果该视图存在就替换,如果不存在就创建
sql**
1. createorreplaceviewmyviewasselectid编号,name姓名fromdemo;
2. select*frommyview;
create or replace view myview as select id 编号,name 姓名 from demo;
select * from myview;
创建同义词(同义词相当于表的别名或逻辑名,可以通过该名称来操作相对应的物理表)
在分布式oracle数据库中,标识一个对象需要四部分:主机名、实例名、模式名、对象名。例如其中模式名是system,对象名是auths,是一个数据库链,它指向服务器px上的实例orcl,我们可以为其指定一个同义词,使所有的用户都可以通过简单的同义词来访问表
创建公有的同义词
sql**
1. createpublicsynonymsyn1fordemo;
create public synonym syn1 for demo;
创建私有的同义词
sql**
1. createsynonymsyn2fordemo;
create synonym syn2 for demo;
创建并使用序列
创建序列的完整语法:
create sequence 序列名 increment by 增量种子数 start with 起始数字 maxvalue 最大值;
我们可以使用序列的两个属性nextval和currval,其中nextval是返回下一个可用的序列值,而currval用于获得当前序列的值
创建序列的简单方法
sql**
1. createsequencemyseq;
create sequence myseq;
使用创建的序列
sql**
1. insertintodemovalues('ddd');
insert into demo values('ddd');
获得当前序列的值
sql**
select from dual;
删除一条记录
sql**
1. deletefromdemowhereid=2;
delete from demo where id=2;
查询所有记录
sql**
1. select*fromdemo;
select * from demo;
格式化日期时间
sql**
1. selectto_char(sysdate,'yyyy-mm-ddhh24:mm:ss')格式化日期fromdual;
文章分类:数据库
这是第二章的学习笔记,学习完第一章的基础之后,从现在开始要学习oracle编程了……,希望大家能多给俺一些支持啊!
编程时使用的工具是plsql developer 7.1.4
sql**
1. select*fromemployee;
2. select*fromdba_tab_'employee';
select * from employee;
select * from dba_tab_cols t where 'employee';
sql**
1. -声明部分,用于定义变量。
2. declare
- 声明部分,用于定义变量。
declare
constant用于定义常量,当定义常量时必须指定它的初始值,且数据不能改变
sql**
1. n_aaaconstantnumber(4,2):=5.5;
n_aaa constant number(4,2) :5.5;
boolean 类型的值只能用于sqlplus语句块中,不能用在表字段的数据类型中
not null 用于强制初始化变量不能为空,此时必须为变量指定值
default用于指定变量或常量的默认值
sql**
1. v_validbooleannotnulldefaultfalse;
2. v_namevarchar2(20);
v_valid boolean not null default false;
v_name varchar2(20);
为了确保变量使用合适的数据类型和长度,可以使用%type属性定义变量,它会按照数据库列
或其它变量来确定新变量的类型和长度
sql**
1. v_v_job
将v_job2定义为与变量v_job的数据类型和长度完全一致
sql**
1. v_job2v_job%type;
v_job2 v_job%type;
复合变量:
处理单行单列数据时,用标量变量;处理单行多列时,用pl/sql记录;处理单列多行时,
用集合;处理多行多列数据时,可以结合使用pl/sql记录和集合
pl/sql记录(record):
方法一: emp_recode_type 是pl/sql记录类型并包含有三个成员(name,salary,job)
sql**
1. typeemp_recode_typeisrecord(
type emp_recode_type is record(
name salary job
emp_recode是记录变量
sql**
1. emp_recodeemp_recode_type;
emp_recode emp_recode_type;
方法二: 使用表名的%rowtype 属性定义记录变量
注意:用%rowtype 属性定义记录变量时,记录成员个数、名称、类型必须与
表或视图的列的个数、名称和类型完全相同
sql**
1. emp_recode2employee%rowtype;
emp_recode2 employee%rowtype;
集合类型 pl/sql 表(也称索引表,下标可以为负数,下标没有上限和下限,并且元素的个数无限)
sql**
1. -这里的table实指集合。
2. typename_table_
3. name_tablename_table_type;
-这里的table 实指集合。
type name_table_type is table of index by binary_integer;
name_table name_table_type;
嵌套表: 嵌套表的下标不能为负值,其元素的个数没有限制并可以使用表列的数据类型
在使用嵌套表时必须先用create type 语句建立嵌套表类型
嵌套表只是比pl/sql 表少了 index by binary_integer
sql**
1. typenum_table_typeistableofnumber(4);
2. num_tablenum_table_type;
type num_table_type is table of number(4);
ORACLE学习笔记
rac real application clusters 真实应用集群。ohs oracle http server sga system global area 系统全局区,是系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。实例 存取和控制数据数...
Oracle学习笔记
参数文件 记录了控制文件的位置,控制文件是一个非常小的二进制文件,最大。可以增长到 64mb,控制文件包括如下主要信息 数据库的名字,检查点信息,数据库创建的时间戳 所有的数据文件,联机日志文件,归档日志文件信息 备份信息等 有了这些信息,oracle 就知道那些文件是数据文件,现在的重做日志文件是...
ORACLE学习笔记
目录。oracla管理 1 1.登录sqlplus 1 1.1.sysdba 身份登陆 1 1.2.普通用户登陆sqlplus 1 2.常用命令 1 3.格式化提示符 2 4.查看系统状态 2 4.1.查看实例状态 2 4.2.查看表 2 5.关闭 启动 2 6.创建表空间 3 7.用户和权限 3 ...