ORACLE 10g 学习笔记

Oracle 10g学习笔记

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

Connection urljdbc: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;--需要有分号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值