Oracle体系结构

oracle体系结构

alter system set "_allow_level_without_connect_by" = true; 回车
输入命令:commit; 回车(这个一定不能忘记)”
 

Oracle数据库

oracle数据库的每个表空间包括一个或多个数据文件,oracle数据库中的所有数据信息都存储在数据文件中,一个数据文件中可以存放多个数据库对象,一个数据库对象也可以分布在一个表空间中的多个数据文件中,但一个数据文件只能从属于一个表空间。
数据文件:.dbf
控制文件:.ctl
参数文件:.ora
归档文件:.arc
创建表空间:
create tablespace soa datafile 'D:/oracle/oradata/soadata01.dbf' size 100M AUTOEXTEND ON NEXT 5M MAXSIZE 200M;
oracle安装成功后,自动建立多个表空间
1)SYSTEM表空间 用于存放oracle系统内部表和数据字典的数据,如表名、列名、用户名,不建议用户自己建立的表放在这里,system表空间对应的数据文件为:system01.dbf system02.dbf
2)SYSAUX表空间,存放oracle系统内部常用样例用户的对象,一般也不存储用户的数据,有系统自动维护,sysaux01.dbf
3)UNDO表空间 用于存储撤销信息的表空间,undotbs.dbf
4)USERS表空间是oracle建议用户使用的表空间,users01.dbf
5)TEMPORARY表空间 临时表空间主要用于供用户临时使用,用它处理复杂的sql
 
查询表空间: select * from dba_data_files
查询表空间的空闲信息: select * from dba_free_space
表空间有在线(online)和离线(offline)两种状态,将表空间设置成离线状态,则所有对该表空间内对象的修改将无法同步到数据文件中。 sql>alter tablespace *** offlin
以下sql语句分别查询表空间、段、区的分配信息
select * from dba_tablespaces;
select * table_name,tablespace_name,min_extents,max_extends from user_tables where table_space="sysaux"
select * from from user_extends;
oracle数据库在逻辑上是由多个表空间组成的
表空间中存储的对象叫段,比如数据段,索引段和回退段(segment)
段由区组成,区是磁盘分配的最小单位,段的增大是通过区的个数来实现的(extends)
每个区的大小是数据块大小的证书倍,区的大小可以不相同(block)
块是数据库中最小的I/O单位,块的大小由参数db_block_size设置,其值应设置为操作系统块大小的整数倍!
 

使用oracle数据库,主要使用一下四个用户

超级管理员:sys 密码:manager/change_on_install/Password1
普通管理员:system 密码:manager/Password1
普通用户: scott 密码:tiger/Password1
大数据用户: sh 密码:sh
 
用超级管理员登陆:Enter user-name:sys as SYSDBA
Enter password:******
sqlplus里面重定向到不同的数据库:SQL> conn scott
Enter password: *****
登陆不同的数据库: conn sys/Password1@EKP as sysdba; 用管理员登陆
 
conn scott/Password1@EKP;用普通用户登陆
设置默认登陆的数据库:在环境变量里面设置:oracle_sid = 默认数据库名称
查看当前登陆的数据库名称:select * from global_name;
查看当前数据库的连接用户:show user
查看当前所有的数据库:select name from v$database;
查看当前用户拥有的所有表:select * from tab;
查看某张表结构:desc dept;
oracle语句中用||来连接连个字符串
select '部门编号:'||deptno 部门编号 from dept;
查询所有的用户名:
sql>select username from dba_users;
 
cmd dos环境中登陆sqlplus:
>sqlplus / as sysdba
 
或者
>sqlplus /@192.168.0.30/orcl as sysdba
 
查看当前数据库的实例名:
 方法一:select instance_name from v$instance;
方法二:show parameter instance
 
 
 

oracle函数

1.日期函数:
select sysdate from dept 查询当前日期 2013/9/20 10:50:25
select sysdate+2 from dept 当前日期后两天 2013/9/22 10:50:43 两个日期相减,为相隔的天数
2.转换函数:
TO_CHAR(字符串|列,格式字符串) 将日期或者数字转换为字符串显示
select TO_CHAR(32234324,'L999,999,999,999') from dept 货币的格式化显示
TO_DATA(字符串,格式字符串) 将字符串变为DATA显示
TO_NUMBER(字符串) 字符串变为数字
3.通用函数:
NVL(列,0) 将null转换为0显示
DECODE:多数值判断函数,相当于if……else……
例如有一个 字段fd_period 如果值为Mon01 显示1 值为Mon02 显示2……
decode(fd_period,'Mon01','1','Mon02','2')
4. 向左填充函数
LPAD(String a,int length,String addString)把addString添加到a的左边,length 是返回值的长度。
例如: select lpad('test',8,0) from dual; LPAD('TEST',8,0) 0000test
可以解决月份不足两位,补0的情况 select lpad("5",2,0) from dual
5. replace('本身的字符串','将要被替换的字符串','替换成的字符串')
6. concat('abc','def') 连接字符串 abcdef
7. 截取字符窜函数
substr()
4. oracle语法
--创建表
create table member(
name varchar2(50) default '皇兄',--字符串类型
age number(3), --number(n) 整数 number(n,m)有m位小数的数字n
birthday date default sysdate, --date类型
content clob --大数据类型(4G)
)
--插入数据
insert into member(name,age,birthday,content) values('卫熙',26,TO_DATE('1986-11-21','yyyy-mm-dd'),'一个好人');
insert into member(name,age,birthday,content) values('皇甫建业',26,TO_DATE('1986-11-21','yyyy-mm-dd'),'皇兄');
insert into member(name,age,birthday,content) values('张晶',26,TO_DATE('1989-04-15','yyyy-mm-dd'),'女性');
commit--最后要用commit进行提交,才回真正同步到数据库,也可以用rollback进行回滚操作
--oracle复制表的语法
create table myemp as select * from emp
--修改表字段长度
alter table customer_infor modify PK_CUSTDOC varchar(200)
--当用sql/plus操作时,
可以用 SQL>rollback (进行回滚),SQL>commit (进行提交操作)
oracle的闪回技术(相当于回收站的功能):oracle10g之后才会有
--查看回收站内容
SQL> SHOW RECYCLEBIN
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
MEMBER BIN$//NGtj5mQ5+1Y89C8f9dLg==$0 TABLE 2013-09-21:10:53:20
MYEMP BIN$uzzTlHnEQHOE4l3PPl/OAA==$0 TABLE 2013-09-21:10:43:35
--恢复回收站中的表
SQL> FLASHBACK TABLE MYEMP TO BEFORE DROP;
Flashback complete.
--删除回收站中的表
SQL> PURGE TABLE MYEMP;
Table purged.
--清空回收站
SQL> PURGE RECYCLEBIN;
Recyclebin purged.
--删除表但是不进入回收站
SQL> DROP TABLE MYEMP PURGE
 
--创建用户并授权 create user root identified by password;
--修改密码 alter user dog identified by password1;
--使密码失效 alter user dog password expire; 这样就会在登陆时让重新键入密码
--锁定用户和解锁 alter user dog account lock/unlock;
--授权 grant connect,dba,resource to root;
 

oracle新建表空间

Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库。
对于初学者来说,为了避免麻烦,可以用'Database Configuration Assistant'向导来创建数据库。
创建完数据库后,并不能立即在数据库中建表,必须先创建该数据库的用户,并且为该用户指定表空间。
 
下面是创建数据库用户的具体过程:
1.假如现在已经建好名为'news'的数据库,此时在F:\oracle\product\10.1.0\oradata\目录下已经存在news目录(注意:我的Oracle10g安装在F:\oracle下,若你的Oracle安装在别的目录,那么你新建的数据库目录就在*\product\10.1.0\oradata\目录下)。
2.在创建用户之前,先要创建表空间:
其格式为:格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小;
如:
SQL> create tablespace news_tablespace datafile 'F:\oracle\product\10.1.0\oradata\news\news_data.dbf' size 500M autoextend on next 100M;
我本地数据库建表空间
SQL> create tablespace jtdetail datafile'D:\app\michael\oradata\ORCL\jtdetail.db
f' size 500M autoextend on next 50M;
 
其中'news_tablespace'是你自定义的表空间名称,可以任意取名;'F:\oracle\product\10.1.0\oradata\news\news_data.dbf'是数据文件的存放位置,'news_data.dbf'文件名也是任意取;'size 500M'是指定该数据文件的大小,也就是表空间的大小。
3.现在建好了名为'news_tablespace'的表空间,下面就可以创建用户了:
其格式为:格式: create user 用户名 identified by 密码 default tablespace 表空间表;
如:
 
SQL> create user news identified by news default tablespace news_tablespace;
默认表空间'default tablespace'使用上面创建的表空间。
4.接着授权给新建的用户:
SQL> grant connect,resource,dba to news; --表示把 connect,resource权限授予news用户
SQL> grant dba to news; --表示把 dba权限授予给news用户
授权成功。
回收用户权限:
SQL> revoke connect,resource from root;
Revoke succeeded.
SQL> revoke dba from root;
Revoke succeeded.
删除用户
SQL> conn sys/manager as sysdba;
Connected.
SQL> drop user root cascade;
User dropped.
级联删除表
drop table scott.table_name cascade constraints

转载于:https://www.cnblogs.com/guodong-wang/p/8126826.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值