2020-12-20

第一章Oracle入门
1.创建表空间
CREATE TABLESPACE 表名
DATAFILE ‘filename’ [SIZE integer [K | M]]
[AUTOEXTEND [OFF | NO ] ];
DATAFILE: 指定组成表空间的一个或多个数据文件,
filename: 数据库文件的路径和名称
SIZE:指定文件的大小,用K指定千字节大小,用M指定兆字节大小
AUTOEXTEND字句用来启用或禁用数据文件的自动扩展.
2.删除表空间
用过DROP语句(DROP TABLESPACE 加上表空间的名称) 来删除用户自定义的表空间
3.权限设置
CREATE SESSION:连接到数据库
CREATE TABLE:创建表
CREATE VIEW:创建视图
CREATE SEQUENCE:创建序列
4.数据类型
CHAR数据类型,VARCHAR2数据类型,HCHAR数据类型,DATE,TIMESTAMP,DLOB,BLOB,BFILE,NCLOB.
5.Oracle中的伪列
ROWIN:能以最快的方式访问表中的一行,能显示的行是访问表中的一行,可以作为表中行的唯一标识.
ROWNUM:对于一个查询放回的每一行,ROWNUM伪列放回一个数值代表行的次序,放回的第一行的ROWNUM值为1,放回的第二行的ROWNUM值为2,以此类推,通过使用ROWNUM伪列,用户可以限制查询放回的行数;

第二章
1.数据库定义语言 CREATE TABLE 命令 CREATE TABLE[schema.]table (column datatye [,column datatype[,…]); schema表示对象的所有者,即模式的名称,如果用户在自己的模式中创建表,则可以不指定所有则名称. table表示表的名称 column表示列的名称 datatype表示该列的数据类型及其宽度. 第2章
Oracle数据库应用SQL语言是高级的结构化查询语言。用户使用SQL语句进行数据操作时,只需提出“做什么”,而不必指明“怎么做”,具体的执行过程由系统自动完成,大大减轻了用户负担。SQL语言是数据库服务器和客户端之间的重要沟通手段,用于存取数据以及查询、更新和管理关系型数据库系统。
经过多久的发展,SQL语言已经成为关系型数据库的标准语言。SQL支持如下类别的命令。
数据库定义语言`(DDL):CREATE(创建)、ALTER(更改)、TRUNCATE(截断)和DROP(删除)命令
数据库操纵语言(DML):INSERT(插入)、SELECT(选择)、DELETE(删除)和UPDATE(更新)命令
事务控制语言(TCL):COMMIT(提交)、SAVEPOINT(保存点)和ROLLBACK(回滚)命令
数据控制语言(DCL):GRANT(授予)、REVOKE(回收)命令SQL操作符1.算数运算符
查询语句中要执行基于数值的计算,可以在SQL命令中使用算术表达式。算术表达式由NUMBER数据类型的列名、数值常量和连接它们的算术操作组成。算术操作包括+(加)、-(减)、*(乘)、/(除)。
2.比较操作符
比较操作符用于比较两个表达式的值。比较操作符包括=、!=、<、>、<=、>=、BETWEEN…AND(检查是否在两个值之间)、IN(与列表中的值匹配)、LIKE(匹配字符模式)、和IS NULL(检查是否为空)。
3.逻辑操作符
逻辑操作符用于组合多个比较运算的结果以生产一个或真或假的结果。逻辑操作符包括AND(与)、OR(或)、NOT(非)。4.集合操作符
集合操作符将两个查询的结果组成一个结果集。可以在SQL中使用下面的集合操作符来组合多个查询中的行。
UNION(联合)
UNION ALL(联合所有)
INTERSECT(交集)
MINUS(减集)
使用集合操作符连接起来的SELECT语句中的列遵循以下规则。
通过集合操作符连接的各个查询具有相同的列数,而且对应列的数据类型必须兼容
这种查询结果不应含有LONG类型的列。列标题来自第一个SELECT语句
1.UNION
UNION(并集)操作符返回两个查询选定的所有不重复的行。
2.UNION ALL
UNION ALL (并集ALL)操作符合并两个查询结果选定的所有行,包括重复的行。
3.INTERSECT
INTERSECT(交集)操作符值只返回两个查询结果都有的行。
4.MINUS
MINUS(减集)操作符只返回由第一个查询选定而未被第二个查询选定的行,即在第一个查询结果中排出在第二个查询中出现的行。
5.连接操作符
连接操作符(||)用于将两个或多个字符串合并成一个字符串,或者将一个字符串与一个数值合并在一起。第3章 Oracle数据库对象和管理序列1.创建序列
序列是用来生产唯一、连接的整数的数据库对象。序列通常来自自动生产主键或唯一键的值。序列可以按升序排序,也可以按降序排序。创建序列的语法如下:
CRATE SEQUENCE sequence_name
[START WITH integer]
[INCREMENT BY integer]
[MAXVALUE integer|NOMAXVALUES]
[MINVALUE integer|NOMINVALUES]
[CYCLE|NOCYCLE]
[CACHE integer|NOCACHE]
12345678在语法中:
START WITH:指定要生成的第一个序列号。对于升序序列,其默认值为序列的最小值;对于降序序列,其默认值为序列的最大值。
INCREMNT BY:用于指定序列号之间的间隔,其默认值为1。如果n为正值,则生成的序列将按升序排列;如果n为负值,则生成的序列将按降序排列。
MAXVALUES:指定序列可以生成的最大值。
NOMAXVALUES:如果指定了NOMAXVALUES,Oracle将升序序列的最大值设为102,将降序序列的最大值设为-1.这是默认选择。
MINVALUES:指定序列的最小值。MINVALUES必须小于或等于START WITH的值,并且必须小于MAXVALUES。
NOMINVALUES:如果指定了NOMINVALUE,Oracle将升序序列的最小值设为1,将降序序列的最小值设为-10^26。这是默认值。
CYCLE:指定序列在达到最大值或最小值后,将继续从头开始生成值。
NOCYCLE:指定序列在达到最大值或最小值后,将不能再继续生成值。这是默认选项。
CACHE:使用CACHE选择可以预先分配一组序列号,并将其保留在内存中,这样可以更快地访问序列号。当用完缓存中的所有序列号时,Oracle将生成一组数值,并将其保留在缓存中。
NOCACHE:使用NOCACHE选项,则不会为加快访问速度而预先分配序列号。如果在创建序列时忽略了CACHE和NOCACHE选项,Oracle将默认缓存20个序列号。
2.访问序列
创建了序列之后,可以通过NEXTVAL和CURRVAL伪列来访问该 序列的值。可以从伪列中选择值,但是不能操纵它们的值。下面分别说明NEXTVAL和CURRVAL。
NEXTVAL:创建序列后第一次使用NEXTVAL时,将返回该序列的初始值。以后再引用NEXTVAL时,将使用INCREMENT BY字句来增加序列值,并返回这个新值。
CURRVAL:返回序列的当前值,即最后一次用NEXTVAL时返回的值。
3.更改序列
ALTER SEQUENCE命令用于修改序列的定义。如果执行以下操作,则会修改序列。
设置或删除 MINVALUES或MAXVALUES
修改增量值。
修改缓存中序列号的数目更改序列的语法如下:
ALTER SEQUENCE [schema.]sequence_name
[INCREMENT BY integer]
[MAXVALUES integer|NOMAXVALUES ]
[MINVALUES integer|NOMINVALUES ]
[CACHE Integer|NOCACHE]
1234564.删除序列
DROP SEQUENCE命令用于删除。还可以使用此语句重新开始一个序列,方法是先删除序列,然后再重新创建序列。例如,一个序列的当前值为100,现在想用值25重新开始此序列。此时,可以先删除此序列,然后以相同的名称重新创建它,并将START WITH参数设置为25.删除序列的语法如下:
DROP SEQUENCE [schema.]sequence_name
下面的命令用于从数据库中删除seql序列。
DROP SEQUENCE seql;
1234同义词1.同义词用途
(1)简化SQL语句
(2)隐藏对象的名称和所有者
(3)为分布式数据库的远程对象提供了位置透明性
(4)提供对对象的公共访问
2.同义词分类
(1)私有同义词
(2)公有同义词
1.私有同义词
私有同义词只能被当前模式的用户访问。私有同义词名称不可与当前模式的对象名称相同。用户必须拥有CREATE SYNONYN系统权限。要在其他用户模式下创建私有同义词,用户必须拥有CREATE ANY SYNONYM系统权限。创建私有同义词的语法如下:
CREATE [OR REPLACE] SYNONYM [schema.]synonym_name
FOR [schema.]object_name;
1232.公有同义词
公有同义词可被所有的数据库用户访问。公有同义词可以隐藏数据库对象的所有者和名称,并降低SQL语句的复杂性。要创建公有同义词,用户必须拥有CREATE PUBLIC SYNONYM系统权限。创建公有同义词的语法如下:
CREATE [OR REPLACE] PUBLIC SYNONYM synonym_name
FOR [schema.]object_name;
1233.删除同义词
DROP SYNONYM语句用于从数据库中删除同义词。要删除同义词,用户必须拥有相应的权限。删除同义词的语法如下:
DROP [PUBLIC] SYNONYM [schema.]synonym_name;
12索引1.什么是索引
索引是与表关联的可选结构,是一种快速访问数据的途径,可提供数据库性能。数据库可以明确地创建索引,以加快对表执行SQL语句的速度。当索引键作为查询条件时,该索引将直接指向包含这些值的行的位置。即便删除索引,也无须修改任何SQL语句的定义。
2.索引的分类
(1)物理分类
(2)逻辑分类
1.B树索引
B树索引通常也称为标准索引。索引的顶部为根,其中包含指向索引中下一级的项。下一级为分支块,分支块又指向索引中下一级的块。最低一级为叶节点,其中包含指向表行的索引项。叶块为双向链接,有助于按关键字值的升序和降序扫描索引。B树索引索引类似于SQL Server中的非聚集索引。创建普通索引的语法如下:
CREATE [UNIQUE] INDEX index_name ON table_name (column_list) [TABKESOACE tablespace_name];
122.唯一索引或非唯一索引
唯一索引:定义索引的列中任何两行都没有重复值。唯一索引中的索引关键字只能指向表中的一行。在创建主键约束和创建唯一约束时都会创建一个与之对应的唯一索引。第4章 PL/SQL编程初识PL/SQL(Procedure Language & Structured
Query Language)PL/SQL是Oracle在标准SQL语言上的过程性扩展,允许嵌入SQL语句,定义变量和常量允许过程语言结构(条件分支语句和循环语句)允许使用异常来处理Oracle错误 可以用于创建存储过程、触发器和程序包等,也可以用于处理业务 规则、数据库事件或给SQL命令的执行添加程序逻辑普通SQL语言只能实现访问,操作数据;PL/SQL可以实现流程控制,异常处理,创建可存储的代码块;PL/SQL块所有的PL/SQL程序都以块作为基本单位块中包含过程化语句和SQL的DML语句。这些块可以按顺序出现,也可以相互嵌套(一个块在另一个块的内部)无名块或匿名块(anonymous):动态构造,只能执行一次,可调用其它程序,但不能被其它程序调用。命名块(named):是带有名称的匿名块,这个名称就是标签。子程序(subprogram):存储在数据库中的存储过程、函数等。当在数据库上建立好后可以在其它程序中调用它们。触发器(Trigger):当数据库发生操作时,会触发一些事件,从而自动执行相应的程序。程序包/包(package):存储在数据库中的一组子程序、变量定义。在包中的子程序可以被其它程序包或子程序调用。但如果声明的是局部子程序,则只能在定义该局部子程序的块中调用该局部子程序。第5章 游标和存储过程关于存储过程和游标的总结 收藏
这两天修改代码的时候,用到了存储过程和游标。这里我就在网上的资料进行汇总一下。供以后使用。一:首先是游标的使用,下面是摘抄网上的一位朋友,写的很详细,再次表示感谢。Oracle系列:Cursor1,什么是游标?
①从表中检索出结果集,从中每次指向一条记录进行交互的机制。②关系数据库中的操作是在完整的行集合上执行的。
由 SELECT 语句返回的行集合包括满足该语句的 WHERE 子句所列条件的所有行。由该语句返回完整的行集合叫做结果集。
应用程序,尤其是互动和在线应用程序,把完整的结果集作为一个单元处理并不总是有效的。
这些应用程序需要一种机制来一次处理一行或连续的几行。而游标是对提供这一机制的结果集的扩展。 游标是通过游标库来实现的。游标库是常常作为数据库系统或数据访问 API 的一部分而得以实现的软件,
用来管理从数据源返回的数据的属性(结果集)。这些属性包括并发管理、在结果集中的位置、返回的行数,
以及是否能够在结果集中向前和/或向后移动(可滚动性)。

游标跟踪结果集中的位置,并允许对结果集逐行执行多个操作,在这个过程中可能返回至原始表,也可能不返回至原始表。
换句话说,游标从概念上讲基于数据库的表返回结果集。
由于它指示结果集中的当前位置 ,就像计算机屏幕上的光标指示当前位置一样,“游标”由此得名。
12345672,游标有什么作用?
①指定结果集中特定行的位置。
②基于当前的结果集位置检索一行或连续的几行。
③在结果集的当前位置修改行中的数据。
④对其他用户所做的数据更改定义不同的敏感性级别。
⑤可以以编程的方式访问数据库。3,为什么避免使用游标?
①在创建游标时,最需要考虑的事情是,“是否有办法避免使用游标?”
因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该改写;
如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作。4,Oracle游标的类型?
①静态游标:结果集已经确实(静态定义)的游标。分为隐式和显示游标。
⑴隐式游标:所有DML语句为隐式游标,通过隐式游标属性可以获取SQL语句信息。
⑵显示游标:用户显示声明的游标,即指定结果集。当查询返回结果超过一行时,就需要一个显式游标。
②REF游标:动态关联结果集的临时对象。第6章 使用JDBC操作数据库1.JDBC是什么
JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API,换句话说:JDBC是用于在Java语言编程中与数据库连接的API.使用Java代码发送sql语句的技术就是JDBC技术。即JDBC是一个接口,用于不同的数据库(oracle、mysql、sqlserver。。)的操作。java.sql和javax.sql是JDBC 4.0的主要jar包。JDBC允许Java程序包含与数据库无关的代码(同样的代码,只需要指定使用的数据库类型,不需要重修改数据库查询或操作代码)。2.JDBC调用存储过程
1.为什么要调用存储过程
存储过程是一个SQL语句和可选控制流语句的预编译集合。编译完成后存放在数据库中,这样就省去了执行SQL语句时对SQL语句进行编译所花费的时间。在执行存储过程时只需将参数传递到数据库中,而不需要将整条SQL语句都提交给数据库,从而减少了网络传输的流量,从另一方面提高了程序的运行速度。
2.存储过程的优势
存储过程值在创建时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所有使用存储过程可提高数据库执行速度。
当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的SQL语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。
存储过程可以重复使用,可减少数据库开发人员的工作量
安全性高,可设定只有某此用户才具有对指定存储过程的使用权

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值