您的位置:首页 > 数据库 > Oracle

ORACLE 10g 学习笔记

2011-11-29 16:22 393 查看
Oracle 10g学习笔记

掌握Java如何链接oracle数据库:

Connection url:jdbc:oracle:thin:@127.0.0.1:1521:orcl

Driver class:oracle.jdbc.driver.OracleDriver

oracle驱动包名:ojdbc14_g.jar

一、Oracle 10g的体系结构:

数据库是由一个或多个表空间组成的

l 表空间是由一个或多个数据文件组成,表空间中包含段

(表空间是SYSTEM用来存储数据字典和系统管理信息)

l 段(表、索引)由一个或多个盘区组成,段存在于表空间中

,但是在表空间中可以有许多数据文件中的数据;

l 盘区是在磁盘上连续的快的组,一个盘区在一个表空间中,且在表空间中单一的文件中

l 快是数据库中最小的分配单位,也是数据库使用的最小的I/O单元。

二、用户管理

1、在书上第2章:

管理员帐号:system/pengtian

例子帐号:scott/tiger

解锁;alter user scott account unlock //account:帐号

创建用户: create user oracle_admin identified by pengtian;

修改用户密码:alter user userName identified by newPasword

删除用户:drop user userName cascade;

授予用户权限:

基本语法:grant 权限1,权限2 to user

2、oracle 10g格式化查询结果:

2.1、column命令:

column[column_name|column_alias][option] //alias:别名

Column column_name heading 'new_column_name'--->改变列标题

Column column_name clear--->清除一列的所有格式

column column_name null ''-->指定为空值显示的内容

Column column justify[center/left/right]-->指定列的对齐方式

2.2、linesize命令:是用于设置一行数据可以容纳的字符数量,linesize的默认值为80

Set linesize 100-->设置一行数据可以容纳100个字符

Show linesize 可以查看当前linesize值

3、查询系统具有哪些权限:

ROLE_SYS_PRIVS 角色拥有的系统权限

ROLE_TAB_PRIVS 角色拥有的对象权限

USER_TAB_PRIVS_MADE 查询授出去的对象权限(通常是属主自己查)

USER_TAB_PRIVS_RECD 用户拥有的对象权限

USER_COL_PRIVS_MADE 用户分配出去的列的对象权限

USER_COL_PRIVS_RECD 用户拥有的关于列的对象权限

USER_SYS_PRIVS 用户拥有的系统权限

USER_TAB_PRIVS 用户拥有的对象权限

USER_ROLE_PRIVS 用户拥有的角色

4、管理表:

4.1、在创建表之前得通过超级管理用户授一系列的权限给新创建的用户----》然后需要修改表空间如下:

Alter user userName

Default tablespace users

Temporary tablespace temp;

----》修改表空间配额01

Alter user userName

Default tablespace users

Quota 10m on users

4.2、如何实现主键ID的自动增长:

首先得创建一个序列如:

create sequence book_id

minvalue 1

start with 1

increment by 1

然后插入数据库表中:

insert into tableName values(book_id.nextval,'');

查询序列名称

select sequence_name from user_sequences;

5、修改表:

5.1增加一列

Alter table tableName

Add

(

newColumn columnTyp

)

5.2、删除一列

alter table book drop column bookname;

5.3、修改列的类型

alter table book

modify

(

author varchar2(10)

);

5.4、修改表名

alter table oldTableName rename to newTableName

5.5、修改列名

alter table books rename column oldColumnname to newColumnName;

6、约束:

6.1、主键约束:

Alter table tableName add constraint constraint_name primary key(columnName1||columnName.......)

6.2、唯一约束:

Alter table tableName add constraint constraint_name unique(columnName)

6.3、check约束:

Alter table tableName add constraint constraint_name check(constraint condition)//如sex in('男','女')

6.4、外键约束:

Table 1:person(id,name,depno)

Table 2:department(depcode,depname)

Alter table person add constraint depno_fk foreign key(depno) references(depcode)

6.5、设置默认值:

Alter table tableName modify

(

columnName columnType default <expression>

)

6.6查看一个表中的约束语句:

select * from user_constraints where TABLE_NAME='table_Name'

6.7、删除一个约束:

alter table person drop constraint PERSON_KEY

//约束名不需要引号

7、SQL*Plus缓冲区:

7.1、定义:

就是SQL*Plus会在缓冲区或者内存区域中存储用户最近运行的命令,通过在缓冲区中存储这些命令,使用户就能够重新调用、编辑哪些最近输入的sql语句

7.2、SQL*Plus常用的编辑命令:

l C[hange]/old/new -->把旧文本old替换为新文本new

l A[ppend] text -->把指定的文本text附加到当前行的末尾

l L[ist] -->列出SQL缓冲区中的所有行

l L[list] n -->列出指定的行

l R以及/命令 -->显示并且运行缓冲区中的当前命令

7.3执行脚本文件命令:@filePath

7.4、spool命令:可以把sql*Plus中显示的内容保存到硬盘上去

如:

Spool filePath append

....

Sql*Plus屏幕上显示的内容

Spool off; -->关闭

8、select语句:select语句可以完成选择、投影、连接等运算

8.1、基本语法格式:

Select [distinct][*,column_name[alias],....]

From table_name

Where

Group by -->执行分组检索操作

Having -->指定分组检索的条件

Order by -->指定排序的条件 desc(降序排列) asc(升序排列 默认)

//distinct:删除副本,只允许在结果集中出现不同的值

//alias:副本

8.2、算术运算符:特别要主意空值的运算,空值既不是字符串中的空格,也不是数字中的零。任何包含了空值运算的表达式的结果依然是空值 【+,-,*,/,()】

8.3、比较运算符:

8.3.1、普通比较运算符:

=、>、>=、<、<=、<>或!=

8.3.2、特殊比较运算符:

Between....and 检索在两个值之间的内容(包含两端的值)

In 检索匹配列表中任意一个值的数据

Like '_%' 检索匹配字符样式的数据,_表示单个字符,%表示任意字符

Is null 检索空数据

8.4、逻辑运算符:

And-->or-->not(优先级从高到底)

8.5、合计计算:

select sum(sal) as 所发工资数,avg(sal) as 平均工资,max(sal) as 最高工资,min(sal) as 最低工资,empno from emp group by empno

8.6常用函数:

Nvl(columnName,value) 判断字段列名是否为空,如果columnName返回的值为空则则返回 value

value(value需是数字型),否则返回columnName

Lower(x)将x中的字符转换为小写

Upper(x)将x中的字符转换为大写

To_char(x,format)

To_date(x,foramt) to_date('2011-09-01','yyyy-mm-dd')

8.7日期与时间:

改变sql*plus界面日期显示的格式,默认是dd-mm-yyyy

日期数据格式是由nls_date_format系统参数来设置,系统参数存储在init.ora文件和spfile.ora文件中,可以通过alter session或者 alter system来改变nls_date_format数据格式

8.8、复制一个表中到另一个表中:

Create table newTableName as select * from copyTableName;

8.8、关于Oracle 10g的新特性 recyclebin(回收站)

Oracle10g提供了类似操作系统中的回收站功能。当drop table的时候,实际上只是将其重命名,并将table以及相关联的对象如index,constraint等放到回收站(RecycleBin)中,后续如果发现drop错了table,可以使用flashback table命名将回收站中的table还原,这就是Oracle10g的Flashback Drop功能。

查看回收站中的内容:select object_name,original_name from recyclebin

还原删除的内容:flashback table tableName to before drop rename to person

彻底删除一个表:purge table tableName

9、Oracle分页查询:

SELECT * FROM

(

SELECT A.*, ROWNUM RN

FROM (SELECT * FROM TABLE_NAME) A

)

WHERE RN BETWEEN 21 AND 40

10、存储过程:


create or replace procedure getName(name out varcahr2)--输出参数不需要定义长度

as

begin

statement

end;--需要有分号



复制搜索

复制搜索
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: