一、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 数据库入门.ppt"内容的详细解析: 一、Oracle体系结构 1. 物理结构: Oracle数据库的物理结构包括数据文件(datafiles)、重做日志文件(redo log files)、控制文件(control files)以及参数...
oracle数据库入门到精通oracle数据库入门到精通oracle数据库入门到精通oracle数据库入门到精通
通过这个Oracle数据库入门教程,你将获得对Oracle数据库系统的基本理解,能够建立和管理自己的数据库,编写SQL语句,以及初步了解DBA的角色。随着经验的积累,你将能够更深入地探索Oracle的高级特性,为各种复杂的...
### ORACLE 数据库入门知识点详解 #### 一、Oracle体系结构概述 Oracle数据库是一个高度复杂的系统,其架构设计包括了物理结构与内存结构等多个层面。理解这些基础概念对于初学者来说至关重要。 ##### 1. 物理...
Oracle数据库入门 Oracle数据库入门
Oracle数据库是一种广泛使用的大型关系型数据库管理系统,以其稳定性和高效性闻名。...掌握这些基础概念和操作是Oracle数据库入门的第一步,随着经验的积累,你将能够更深入地理解和管理Oracle数据库系统。
ORACLE 数据库入门 教程ORACLE 数据库入门 教程ORACLE 数据库入门 教程ORACLE 数据库入门 教程ORACLE 数据库入门 教程ORACLE 数据库入门 教程
Oracle数据库入门教程,
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。本文将深入探讨Oracle数据库的基础知识,包括其体系结构、内存结构、实例、会话、事务、后台进程以及SQL语句的执行流程。 ...
这份“Oracle数据库入门学习课件ppt”提供了全面的基础知识,适合初学者系统学习。以下是根据提供的PPT文件名称和描述整理出的核心知识点: 1. **数据库基础知识**: - 数据库的概念:存储和管理数据的系统。 - ...
本入门教材主要针对初学者,旨在帮助你建立起对Oracle数据库的基本理解和操作技能。 一、Oracle数据库简介 Oracle数据库是由美国Oracle公司开发的,它提供了一套完整的数据管理和分析工具,包括数据库服务器、开发...
Oracle数据库是一种广泛应用于企业级环境的大型数据库管理系统,由Oracle公司开发。它属于关系型数据库,同时也融合了面向对象的特性,这使得它在处理复杂的数据和事务上具有独特优势。本知识点详细介绍Oracle数据库...
ORACLE数据库入门 本课程主要介绍了ORACLE数据库的基本概念和结构,包括ORACLE数据库的体系结构、内存结构、实例、会话、事务、后台进程、SQL语句执行过程等。 一、Oracle 体系结构 ORACLE数据库的体系结构...
本教程“ORACLE 数据库入门”旨在为初学者提供一个全面了解Oracle数据库的基础,帮助他们掌握核心概念和技术,以便在实际工作环境中有效管理数据。 PPT文件和PDF文件的结合为学习者提供了多样化的学习方式。PPT通常...
### Oracle数据库入门命令详解 #### 一、SQL语言:关系数据库的标准语言 SQL(Structured Query Language)是一种专门用于处理关系数据库的语言,它被设计用来管理数据的查询、更新以及维护等操作。对于Oracle...
学习Oracle数据库入门,必须掌握SQL的基本语法,包括数据查询、插入、更新、删除(DQL、DML)、创建表、索引、视图(DDL)、存储过程和函数(PL/SQL)等。 五、数据管理 数据管理包括数据的插入、查询、更新和删除...