`

ORACLE DB操作

阅读更多
在oracle10g数据库中修改表的结构



以下以已经创建的表(hencent)为例叙述:



create table hencent(id number(10),name varchar(10),addr varchar(20));



A:



1.编辑表的字段



修改一个列的数据类型(一般限于修改长度,修改为一个不同类型时有诸多限制,且只能将长度改大)



语法:



Note:在修改列的数据类型的时候,所修改的列必须为空



ALTER TABLE表名MODIFY(列名数据类型);



Eg:



Alter table hencent modify(id number(10,20));



Eg;



Alter table hencent modify(addr varchar(30));



2.增加一个列



语法:



ALTER TABLE表名ADD(列名数据类型);



Eg:



Alter table hencent add(sex char(10));



3.修改列名:



语法:



ALTER TABLE表名RENAME COLUMN当前列名TO新列名;



Eg:



Alter table hencent rename column id to no;



4.删除一个列



语法:



ALTER TABLE表名DROP COLUMN列名;



Eg:



Alter table hencent drop column id;



5.将一个表改名



语法:



ALTER TABLE当前表名RENAME TO新表名;



Eg:



Alter table hencent rename to test;



5.给表加注释



comment column on表名.列名is '注释内容';  //修改表的列的注释



COMMENT ON TABLE MOVO_NEW.TEST_SAKTE IS '注释内容'; //修改表的注释



 
1.创建表空间

SQL> create tablespace testspace
datafile 'd:/OracleTest/test001.dbf' size 10m autoextend on next 5m maxsize unlimited
extent management local ;

2.给表空间添加文件

SQL> alter tablespace testspace add datafile 'd:/OracleTest/test002.dbf' size 5m
autoextend on next 3m maxsize 50m;

3.删除表空间中的文件

SQL> alter tablespace testspace drop datafile 'd:/OracleTest/test002.dbf';

4.修改表空间文件的大小

SQL> alter database datafile 'd:/OracleTest/test001.dbf' resize 10m;

5.修改表空间文件的自动增长属性
SQL> alter database datafile 'd:/OracleTest/test001.dbf' autoextend off;

6.修改表空间的读写属性

SQL> alter tablespace testspace read only;(只读)

SQL> alter tablespace testspace read write;(读写)

7.设置表空间脱/联机

SQL> alter tablespace testspace offline;

SQL> alter tablespace testspace online;

8.转移物理文件路径的操作

(1)设置表空间脱机alter tablespac testspace offline;

(2)物理转移表空间文件;即把你的表空间物理文件转移到你想移动的路径

(3)逻辑转移:alter tablespace testspace rename  datafile  'd:/OracleTest/test001.dbf' to 'e:/test001.dbf';

(4)设置表空间联机alter tablespace testspace online;

9.删除表空间

(1)不删文件drop tablespace testspace;

(2)删除文件drop tablespace testspace including contents and datafiles;

10.物理文件被非法删除时,怎样启动数据库

(1)关闭数据库服务   shutdown

(2)alter database datafile 'd:/test001.dbf' offline drop;

(3)alter database open;

(4)开启数据库服务startup;


以下是具体的一些操作代码:



SQL> conn / as sysdba;
已连接。


//获取数据库有多少重做日志组等等信息


SQL> select group#,sequence#,members,bytes,status,archived from v$log;

    GROUP#  SEQUENCE#    MEMBERS      BYTES STATUS           ARC
---------- ---------- ---------- ---------- ---------------- ---
         1         74          1   52428800 INACTIVE         NO
         2         75          1   52428800 CURRENT          NO
         3         73          1   52428800 INACTIVE         NO



//添加重做日志文件组



SQL> alter database add logfile
  2  ('F:\disk1\redo04a.log','F:\disk2\redo04b.log')
  3  size 15M;

数据库已更改。


//验证新的重做日志组



SQL> select group#,sequence#,members,bytes,status,archived from v$log;

    GROUP#  SEQUENCE#    MEMBERS      BYTES STATUS           ARC
---------- ---------- ---------- ---------- ---------------- ---
         1         74          1   52428800 INACTIVE         NO
         2         75          1   52428800 INACTIVE         NO
         3         76          1   52428800 CURRENT       NO
         4          0          2   15728640 UNUSED           YES


//设置格式,以便于现示清晰


SQL> col member for a50;
SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER
---------- ------- ------- --------------------------------------------------
IS_
---
         3         ONLINE  D:\ORACLE1\PRODUCT\10.2.0\ORADATA\ORDB\REDO03.LOG
NO

         2         ONLINE  D:\ORACLE1\PRODUCT\10.2.0\ORADATA\ORDB\REDO02.LOG
NO

         1 STALE   ONLINE  D:\ORACLE1\PRODUCT\10.2.0\ORADATA\ORDB\REDO01.LOG
NO


    GROUP# STATUS  TYPE    MEMBER
---------- ------- ------- --------------------------------------------------
IS_
---
         4         ONLINE  F:\DISK1\REDO04A.LOG
NO

         4         ONLINE  F:\DISK2\REDO04B.LOG
NO


SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER
---------- ------- ------- --------------------------------------------------
IS_
---
         3         ONLINE  D:\ORACLE1\PRODUCT\10.2.0\ORADATA\ORDB\REDO03.LOG
NO

         2         ONLINE  D:\ORACLE1\PRODUCT\10.2.0\ORADATA\ORDB\REDO02.LOG
NO

         1 STALE   ONLINE  D:\ORACLE1\PRODUCT\10.2.0\ORADATA\ORDB\REDO01.LOG
NO


    GROUP# STATUS  TYPE    MEMBER
---------- ------- ------- --------------------------------------------------
IS_
---
         4         ONLINE  F:\DISK1\REDO04A.LOG
NO

         4         ONLINE  F:\DISK2\REDO04B.LOG
NO


//删除不需要的重组日志文件,并且验证是否删除成功



alter database drop logfile group 4;
select * from v$logfile;



//在每个重做日志组中添加一个成员



SQL> alter database add logfile member
2 'F:\disk1\redo01b.log' to group 1,
3 'F:\disk1\redo02b.log' to group 2,
4 'F:\disk1\redo03b.log' to group 3;
数据库已更改



//验证是否添加成功



select group#,sequence#,members,bytes,status,archived from v$log;


//获得每个新创建的重做日志文件名,利用数据字典V$logfile



col member for a50;
set line 100;
select * from v$logfile;


//如何删除不需要的重做日志成员



alter database drop Logfile member
2 'F:\disk1\redo01b.log';


//清楚联机重做日志文件


alter database clear logfile group x;




oracle数据库之----最基础的命令
上一篇 / 下一篇  2011-04-16 13:58:34

查看( 22 ) / 评论( 4 )
--查询本地所有的用户

select username from dba_users;

--解锁某个本地的用户

alter user XX identified by yyy(code) account unlock;

--创建用户

create user pm(username) identified by pm;

--创建表的权限的赋予,先要赋予该用户connect的权限(之前可能要先创建角色),然

后赋予其resource的权限后,该用户就可以创建表并且拥有常用的权限,譬如ASIC(增删

插改)

grant connect to XX;
grant resource to XX;
revoke (权限名)insert from XX;(通过revoke回收权限)

--查看归档、非归档模式

archive log list;

--查看某个用户内的所有表

select * from all_tab_columns;
select table_name from user_tables;

--查看主机名

select host_name from v$instance;

--查看实例状态

select instance_name,status from v$instance;

--用户用user_catalog查看它所拥有的所有表的名字和类型

desc user_catalog(cat)

--显示并且改变内存缓冲区顾问(v$db_cache_advice)各参数的值

select id,name,block_size,advice_status from v$db_cache_advice;

alter system set db_cache_size = 4096;(此为其中一例)

--获得参数sga_max_size的值

select name,type,value from v$parameter where name = 'sga_max_size';

startup pfile = G:\oracle\product\10.2.0\db_1\database\initORDB.ora

--将一运行的数据库状态置为限制模式

alter system enable restricted session;

如下,表a是数据库中已经存在的表,b是准备根据表a进行复制创建的表:

1、只复制表结构的sql

  create table b as select * from a where 1<>1

2、即复制表结构又复制表中数据的sql

   create table b as select * from a

3、复制表的制定字段的sql

  create table b as select row_id,name,age from a where 1<>1

前提是row_id,name,age都是a表的列

4、Oracle复制表的指定字段及这些指定字段的数据的sql

  create table b as select row_id,name,age from a

以上语句虽然能够很容易的根据a表结构复制创建b表,但是a表的索引等却复制不了,需

要在b中手动建立。

5、insert into 会将查询结果保存到已经存在的表中
   insert into t2(column1, column2, ....)
   select column1, column2, .... from t1






分享到:
评论

相关推荐

    Node_OracleDB.zip

    Node.js环境下利用node-oracledb操作oracle数据库,实现增删改查等操作。文件包括node项目、npm包依赖、node-oracledb示例。具体内容可参照博客https://blog.csdn.net/wml00000/article/details/106374969

    oracledb_exporter.0.2.2.linux-amd64.tar.gz

    《OracleDB Exporter详解及其在Linux运维中的应用》 OracleDB Exporter,作为一个专门为Oracle数据库设计的监控工具,它的出现极大地便利了系统管理员对Oracle数据库性能的监控与管理。其0.2.2版本的Linux-amd64...

    windows node oracledb 64位

    标题“windows node oracledb 64位”提示我们关注的是在64位Windows操作系统上使用Node.js与Oracle数据库交互的场景。`oracledb`是Node.js的一个第三方库,它提供了一个全面的API,使开发者能够方便地执行SQL查询、...

    oracledb.zip

    总结,`oracledb.zip`提供的封装`oracledb`模块旨在简化Oracle数据库在Node.js环境下的操作,提高开发效率。通过阅读`README`文档和使用示例,可以快速掌握其用法,实现高效稳定的数据库交互。在实际项目中,结合...

    Oracle DB优化总结

    【Oracle DB优化总结】 在数据库管理系统中,Oracle Database(Oracle DB)因其稳定性和高性能而备受赞誉,但随着数据量的增长,优化数据库性能显得至关重要。本文将深入探讨Oracle DB的优化策略,包括优化器的选择...

    OracleDB体系结构

    ### OracleDB体系结构详解 #### 一、Oracle数据库体系结构概览 Oracle数据库以其高度可靠的性能、丰富的功能和广泛的应用场景而闻名于世。本文旨在深入解析Oracle数据库的体系结构,帮助读者理解其核心组件及运作...

    Oracle 数据库结构导出word工具OracleDB2Doc

    OracleDB2Doc V2.0(Oracle数据库表结构导出器)是一套用来完成将Oracle数据库中的表结构导出成Word文档,并输出标准的打印报表格式的软件。 软件采用Word中VBA开发完成,软件使用Word中的菜单操作,与Word完全集成...

    VS2019+EF+Oracle+DBfirst

    在开发过程中,有时我们需要在Visual Studio 2019 (VS2019) 中使用Entity Framework (EF) 配合Oracle数据库进行DBFirst(数据库优先)开发模式。这个过程可能会遇到一些挑战,如程序闪退或其他问题。本文将详细阐述...

    Oracle XML DB Developer's Guide

    Oracle XML DB Developer's Guide 是一份由Oracle公司官方发布的指南,它为开发者提供了在Oracle数据库中加载、存储、生成、操作、管理、访问和查询XML数据的指导和示例。这份文档是Oracle XML DB 10g Release 2版本...

    SQL SERVER 安装ORACLE provider for OLE DB 的连接服务驱动

    在IT领域,数据库之间的互操作性是至关重要的,特别是在企业级应用中,SQL Server和Oracle数据库的集成常常被需要。本文将详细介绍如何在SQL Server上安装Oracle Provider for OLE DB驱动,以便创建与Oracle数据库的...

    Oracle Provider for OLE DB Developer's Guide.pdf

    它作为OLE DB和Oracle数据库之间的桥梁,使开发者能够通过OLE DB API直接操作Oracle数据库,从而实现了跨平台的数据访问能力。 #### 三、安装与配置 **1. 安装Oracle Provider for OLE DB** - **下载安装包**:...

    Oracle Provider for OLE DB Developer’s Guide 11g (11.2)

    《Oracle Provider for OLE DB Developer’s Guide 11g Release 2 (11.2) for Microsoft Windows》是Oracle公司为开发人员提供的一份详细指南,用于在Windows 64位环境中利用Oracle Provider for OLE DB接口进行...

    SQL SERVER 安装ORACLE provider for OLE DB 的连接服务驱动.zip

    如果配置脚本中包含自定义选项,如指定Oracle数据库的连接参数,确保按照提示操作。 3. **检查安装**: - 打开SQL Server Management Studio (SSMS),尝试创建一个新的连接,选择“其他”-&gt;“ODBC”数据源,确保...

    Oracle 12c Release 2 (12.2) XML DB Developers Guide.pdf

    10. 性能优化:提供性能优化的技巧和策略,例如索引优化、查询重写和存储参数调整,帮助开发者提升XML DB操作的效率。 11. 故障排查与维护:分享在使用XML DB过程中可能遇到的常见问题,以及它们的解决方案。同时也...

    ORACLE DB数据库常见问题解决及诊断技巧集锦-ORACLE DBA故障修复必备手册.zip

    Oracle DB是全球广泛使用的大型关系型数据库管理系统,其稳定性和高效性在业界有着极高的声誉。然而,随着数据库系统的复杂度增加,DBA(数据库管理员)可能会遇到各种问题,需要具备一定的解决和诊断技巧。本手册...

    Laravel开发-oracledb

    本篇文章将深入探讨如何在Laravel项目中集成Oracle数据库,主要基于`Laravel-OracleDB`这个扩展。 标题"**Laravel开发-oracledb**"指出我们将关注的主题是关于在Laravel中使用Oracle数据库进行开发。OracleDB是一个...

    mongdb和oracledb已经access数据的batchInsert操作

    2. OracleDB批量Insert操作: Oracle是一个关系型数据库,它支持通过`BULK COLLECT INTO`和`FORALL`语句实现批量插入。在Java中,可以使用JDBC的`PreparedStatement`对象的`setBatch()`方法来设置一组SQL插入语句,...

    数据迁移工具DB2DB和mysql to oracle

    本文将深入探讨两种数据迁移工具——DB2DB和mysql to oracle,以及它们在不同数据库间迁移数据的关键知识点。 首先,DB2DB工具,正如其名,专门用于在IBM的DB2数据库之间进行数据迁移。DB2是一款强大的关系型数据库...

    Oracle 10g 10.2.0.1 的ole db 驱动

    Oracle 10g 10.2.0.1 的 OLE DB 驱动...总的来说,Oracle 10g 10.2.0.1的OLE DB驱动为开发者提供了一种便捷、高效的方式,连接并操作Oracle数据库,特别是在需要简化客户端部署或跨平台开发的场景下,其优势尤为突出。

Global site tag (gtag.js) - Google Analytics