zoukankan      html  css  js  c++  java
  • 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:oracleproduct10.1.0oradata目录下已经存在news目录(注意:我的Oracle10g安装在F:oracle下,若你的Oracle安装在别的目录,那么你新建的数据库目录就在*product10.1.0oradata目录下)。
    2.在创建用户之前,先要创建表空间:
    其格式为:格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小;
    如:
    SQL> create tablespace news_tablespace datafile 'F:oracleproduct10.1.0oradata ews ews_data.dbf' size 500M autoextend on next 100M;
    我本地数据库建表空间
    SQL> create tablespace jtdetail datafile'D:appmichaeloradataORCLjtdetail.db
    f' size 500M autoextend on next 50M;
     
    其中'news_tablespace'是你自定义的表空间名称,可以任意取名;'F:oracleproduct10.1.0oradata ews ews_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
  • 相关阅读:
    sqlchemy self made
    scrapy 自定义图片路径保存,并存到数据库中
    关于scrapy下载文件重命名的办法以及对应url没有文件后缀的办法
    下载转码
    scrapy 下载图片 from cuiqingcai
    Scrapy框架学习
    字符串处理
    scrapy 日志处理
    sqlalchemy多对多查询
    sqlalchemy 多对多关系
  • 原文地址:https://www.cnblogs.com/guodong-wang/p/8126826.html
Copyright © 2011-2022 走看看