一、oralce数据库
首先明白,oracle数据库、实例、和表空间的关系。
Oracle数据库和传统说的数据库不一样,一个相当于管理系统,而且只有一个。
实例:实例是后台进程和和内存结构,oracle数据库可以有很多个实例
每个实例下面有自己的用户,和数据库对象(表、同义词、序列、视图、索引)。
表空间:
用户可以创建自己的表空间,或者使用系统的表空间。
一个用户只能对应一个表空间。一个表空间可以对应多个用户。
1/表空间是数据库中最大的逻辑单位,一个 Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。
2/
每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。3/表空间的大小等于构成该表空间的所有数据文件大小之和。
二、创建用户和表
创建数据库实例之后,在实例下创建用户
--注意:创建了用户,必须给用户赋予登陆权限和使用存储空间的权限,不然新创建的用户无法登陆
--允许用户连接数据库并创建数据库对象
grant connect to lmj;
--允许用户使用数据库中的存储空间
grant resource to lmj;
--创建表和插入数据,查询数据
--在数据库中,变量名写在前面,变量类型写在后面,与java程序相反
create table student
(
sname varchar2(30),
sid number not null
);
insert into student values('zhansan',1);
select * from student;
三、数据库对象
数据库对象包括:表、同义词、序列、视图、索引。
数据库对象是每个用户拥有的,自己拥有自己的数据库对象,同义词、序列、索引都是独立于表存在的。
1、同义词,他就相当于查询表的时候使用的别名,给表创建一个同义词可以简化复杂的表名方便引用,还可以提高表的安全性,也可以给同一个表创建多个同义词分配给不同的用户,那么大家看到的表名都是不一样的。
同义词分为公有和私有,公有大家可见,私有自己可见
----同义词的创建和使用代码
--定义私有同义词
create synonym e for emp;
--使用同义词查询表
Select * from e;
--删除同义词
drop synonym e;
--赋权限
grant select on dept to zhangsan;
--定义公共的同义词
create or replace public synonym e for emp;
2、序列:自增长的一个变量,它独立于表存在,每次的值都保存下来,下次使用的时候接着增长或者减少。
--创建序列
create sequence seq_num
start with 1
increment by 2
maxvalue 20
minvalue 1
NOCYCLE
CACHE 2
3、视图
视图就是查询语句的封装,它的不存储数据,所有的数据都来自表,他的具体列来自查询语句。
--创建视图
create view v_emp as select empno,ename,job from
emp;
--创建一个视图,名字为v_emp 他的列来自emp表
视图使用:
Select * from v_emp;
--现在得到的就是select empno,ename,job from emp;的数据
视图就相当于一个虚拟表,视图主要是用于查询。
4、索引
它是为了提高查询效率,他根据rowid创建,rowid是保存了每一行数据的内存地址,所以找到了行的rowid就找到了整个行。
索引也是独立于表存在的,它由数据库自动维护,每次更新表的数据,索引都会重新创建,所以建立索引会降低更新的效率。
为什么索引可以提高效率?
比如在查找 where name=“zhangs” and id=11;
如果id建立了索引,就可以直接先匹配每一行的id,提取出满足id的行
再匹配name,就可以不用全部匹配每一行的name和id
如果id没有索引,就会一行一行的,全部匹配每一行的name和id。
语法:
唯一索引和组合索引
Create index my_index on student(sid);
Create index my2_index on student(sid,sname);
PL/SQL
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言。
一、为什么需要PL/SQL编程。
原来我们操作数据库的方式
每次发送一个字符串给oracle,数据库都要编译在运行,这样效率很慢,而且在网络中字符串容易被串改。
利用PL/SQL编程,将操作过程都写在oracle中,编译好后放在那里,只等着java应用来调用,这样效率和安全性都得到提高。
缺点:
移植性差,数据库操作都写在oracle,如果需要换成sql2005数据库,那么将无法移植需要全部重写数据库操作。
1、PL/SQL 分为三个部分,声明部分、可执行部分和异常处理部分
[DECLARE
declarations]
BEGIN
executable statements
[EXCEPTION
handlers]
END;
Begin 到end的内容成为块;
过程:可以重复调用
创建过程的语法:
CREATE [OR REPLACE] PROCEDURE
<procedure name> [(<parameter list>)]
IS|AS
<local variable declaration>
BEGIN
<executable statements>
[EXCEPTION
<exception handlers>]
END;
create or replace procedure pro_1 is
begin
insert into student values('zhangsanfeng',6);
end;
执行的时候需要输入/再按回车
调用的命令
--调用过程
exec pro_1
2、打开输出
set serveroutput on;
打印
begin
dbms_output.put_line('aaaaa');
end;
/
3、将查询结果输出
--声明变量
--变量名在前,类型在后
set serveroutput on;
declare
myname varchar2(20);
myid number(10);
begin
select sname,sid into myname,myid from student where sid=1;
dbms_output.put_line('姓名'||myname||'编号'||myid);
end;
带输入的查询
declare
myname varchar2(30);
myid number(10);
begin
select sname,sid into myname,myid from student where sid=&aa;
dbms_output.put_line('姓名:'||myname||'编号:'||myid);
end;
注意:
通过&aa,aa随便取名,用来接收输入的数据,如果是字符串输入要加‘’
异常处理:(找不到数据)
declare
myname varchar2(30);
myid number(10);
begin
select sname,sid into myname,myid from student where sname=&aa;
dbms_output.put_line('姓名:'||myname||'编号:'||myid);
exception
when no_data_found
then
dbms_output.put_line('没有该学生');
end;
带有参数的过程
create or replace procedure my_pro(name varchar2)
is myid number(10);
begin
select sid into myid from student where sname=name;
dbms_output.put_line('编号:'||myid);
exception
when
no_data_found
then
dbms_output.put_line('没有该学生');
end;
<!--EndFragment-->
相关推荐
ORACLE 数据库入门
oracle数据库入门到精通oracle数据库入门到精通oracle数据库入门到精通oracle数据库入门到精通
ORACLE 数据库入门视频 PPT讲义。
ORACLE 数据库入门.pptORACLE 数据库入门.ppt
Oracle数据库入门 Oracle数据库入门
ORACLE 数据库入门 教程ORACLE 数据库入门 教程ORACLE 数据库入门 教程ORACLE 数据库入门 教程ORACLE 数据库入门 教程ORACLE 数据库入门 教程
ORACLE 数据库入门教程详解 帮助你快速入门Oracle
Oracle数据库入门教程,
ORACLE数据库入门.pdf 基本的链接、权限、及其他基本命令操作
oracle数据库入门命令 1. SQL语言:关系数据库的标准语言 2. PL/SQL:过程化语言Procedural Language 3. SQL*Plus:简单的报表,操作系统接口 (1) 数据分区技术:只适用8.01后的版本,数据分散存放,不要放在一个...
Oracle数据库的入门基础,看了这些文档,我相信你对Oracle数据库有了一个基本的 比较全面的了解了!也会大部分的运用了!
Oracle数据库入门学习课件ppt 一共九章内容 ,基本包括了全部入门知识,不错的学习资料。
ORACLE 数据库入门
1 构建环境安装oracle9i 2 数据库服务的管理入门 3 数据利器 sql 4 智能管理 5 DBA的日常工作
ORACLE数据库入门.ppt
ORACLE 数据库入门 PPT文件 包含PPT和PDF两种格式