当前位置: 首页 > news >正文

Oracle04-基本使用

零、文章目录

Oracle04-基本使用

1、创建表空间

(1)创建语句
create tablespace testdata
datafile 'c:\datafile\testdata.dbf' size 100m
autoextend on
next 10m
(2)参数说明
  • testdata:表空间名称
  • datafile:用于设置物理文件名称,注意这里datafile 文件夹需要先创建,否则报错
  • size:用于设置表空间的初始大小
  • autoextend on:用于设置自动增长,如果存储量超过初始大小,则开始自动扩容
  • next:用于设置扩容的空间大小

2、创建用户授权

(1)创建用户
create user testuser
identified by 123456
default tablespace testdata
  • create user:创建用户
  • identified by:用于设置用户的密码
  • default tablesapce:用于指定默认表空间名称

(2)用户授权
grant dba to testuser
  • 给用户 testuser 赋予 DBA 权限后即可登陆
(3)默认用户密码
  • Oracle数据库安装时会预置多个系统账户,以下是常见的默认用户及密码清单(注意:不同版本可能存在差异)
    • SYS
      • 默认密码:change_on_install
      • 权限:最高权限(SYSDBA),拥有数据字典和控制文件的管理权限。
      • 注意:Oracle 10.2版本后可能要求安装时自定义密码。
    • SYSTEM
      • 默认密码:manager
      • 权限:普通管理员权限,用于创建其他用户和管理表空间。
    • SCOTT
      • 默认密码:tiger
      • 用途:预置示例用户,包含测试表(EMP/DEPT),适合学习SQL操作。
    • SH
      • 默认密码:sh
      • 用途:大数据样本用户,用于演示分析功能。
    • DBSNMP
      • 默认密码:dbsnmp
      • 用途:用于Oracle Enterprise Manager监控。
    • SYSMAN
      • 默认密码:oem_temp
      • 用途:Oracle管理服务(OMS)的管理账户。
    • OUTLN
      • 默认密码:outln
      • 用途:存储SQL执行计划大纲。
  • 注意事项
    • 安全建议:
      • 安装后必须修改默认密码,避免未授权访问。
      • 部分账户(如SCOTT)可能默认锁定,需通过SQL解锁:
ALTER USER scott ACCOUNT UNLOCK;
- 版本差异:Oracle 11g及以上版本可能要求安装时自定义核心账户密码,而非使用默认值。
- 完整清单:更多账户(如CTXSYS、MDSYS等)可参考官方文档或通过SQL查询:  
SELECT username, account_status FROM dba_users;
(4)默认角色权限
  • 常用角色权限
    • CONNECT
      • 权限:允许用户连接到数据库并执行基础操作,例如:
        • CREATE SESSION(创建会话)
        • CREATE TABLE/VIEW/SYNONYM(创建表、视图、同义词)
        • ALTER SESSION(修改会话参数)。
      • 用途:适用于临时用户或仅需基础访问权限的场景。
    • RESOURCE
      • 权限:允许用户创建和管理数据库对象,例如:
        • CREATE TABLE/SEQUENCE/PROCEDURE(创建表、序列、存储过程)
        • CREATE TRIGGER/INDEX/CLUSTER(创建触发器、索引、聚簇)。
      • 用途:面向开发者或需要创建复杂对象的用户。
    • DBA
      • 权限:拥有所有系统权限,包括:
        • 无限制的表空间管理
        • 用户权限分配(如授予/回收其他用户的权限)
        • 数据库结构修改(如创建/删除用户、表空间)。
    • EXP_FULL_DATABASE / IMP_FULL_DATABASE
      • 权限:允许通过数据泵工具(Data Pump)执行全库导出/导入操作。
    • DELETE_CATALOG_ROLE / EXECUTE_CATALOG_ROLE / SELECT_CATALOG_ROLE
      • 权限:分别控制对数据字典的删除、执行(如包、过程)和查询权限。
    • AQ_ADMINISTRATOR_ROLE / AQ_USER_ROLE
      • 权限:管理高级队列(Advanced Queuing)功能,支持消息队列的创建和订阅。
    • RECOVERY_CATALOG_OWNER
      • 权限:管理恢复目录(Recovery Catalog),用于备份和恢复操作。
  • 自定义角色管理
    • 创建角色:
CREATE ROLE custom_role;
GRANT CREATE TABLE, CREATE VIEW TO custom_role;
- **授权与回收:**
GRANT custom_role TO user1;
REVOKE custom_role FROM user1;
  • 注意事项
    • 版本差异:
      • Oracle 11g及以上版本建议自定义角色,而非依赖预定义的CONNECT/RESOURCE/DBA角色。
      • 部分角色(如SCOTT用户)可能默认被锁定,需手动解锁。
    • **权限查询:**通过以下SQL查看角色权限:
SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE = '角色名';
- **安全建议:*** 避免直接授予DBA角色给普通用户。* 通过角色分层管理权限,例如将业务权限封装到自定义角色中。

3、表的增删改

(1)表的创建
  • 基础语法
CREATE TABLE 表名称(字段名 类型(长度) primary key,字段名 类型(长度), .......
);
  • 例子如下
create table t_owners
(
id number primary key,
name varchar2(30),
addressid number,
housenumber varchar2(30),
watermeter varchar2(30),
adddate date,
ownertypeid number
);
(2)约束类型
  • 主键(**PRIMARY KEY**
  • 非空(**NOT NULL**
  • 唯一(**UNIQUE**
(3)数据类型
  • 字符型
    • CHAR : 固定长度的字符类型,最多存储 2000 个字节
    • VARCHAR2 :可变长度的字符类型,最多存储 4000 个字节
    • LONG : 大文本类型。最大可以存储 2 个 G
  • 数值型:NUMBER : 数值类型
    • NUMBER(5) 最大可以存的数为 99999
    • NUMBER(5,2) 最大可以存的数为 999.99
  • 日期型
    • DATE:日期时间型,精确到秒
    • TIMESTAMP:精确到秒的小数点后 9 位
  • 二进制型(大数据类型)
    • CLOB : 存储字符,最大可以存 4 个 G
    • BLOB:存储图像、声音、视频等二进制数据,最多可以存 4 个 G
(4)表的修改
  • 增加字段语法
ALTER TABLE 表名称 ADD(列名 1 类型 [DEFAULT 默认值],列名 1 类型
[DEFAULT 默认值]...)
  • 例子如下
ALTER TABLE T_OWNERS ADD
(REMARK VARCHAR2(20), OUTDATE DATE
);
  • 修改字段语法
ALTER TABLE 表名称 MODIFY(列名 1 类型 [DEFAULT 默认值],列名 1 类型
[DEFAULT 默认值]...)
  • 例子如下
ALTER TABLE T_OWNERS MODIFY
(
REMARK CHAR(20),
OUTDATE TIMESTAMP
);
  • 修改字段名语法
ALTER TABLE 表名称 RENAME COLUMN 原列名 TO 新列名
  • 例子如下
ALTER TABLE T_OWNERS RENAME COLUMN OUTDATE TO EXITDATE;
  • 删除字段名语法
--删除一个字段
ALTER TABLE 表名称 DROP COLUMN;
--删除多个字段
ALTER TABLE 表名称 DROP (列名 1,列名 2...);
  • 例子如下
ALTER TABLE T_OWNERS DROP COLUMN REMARK;
(5)表的删除
  • 删除语法
DROP TABLE 表名称;

4、数据的增删改

(1)插入数据
  • 插入数据语法,执行 INSERT 后一定要再执行 commit 提交事务
INSERT INTO 表名[(列名 1,列名 2...)]VALUES(1,值 2...);
commit;
  • 例子如下,语句中的 sysdate 是系统变量用于获取当前日期
insert into T_OWNERS VALUES (1,' 张三丰',1,'2-2','5678',sysdate,1);
commit;
(2)修改数据
  • 修改数据语法,执行 UPDATE 后一定要再执行 commit 提交事务
UPDATE 表名 SET 列名 1=1,列名 2=2....WHERE 修改条件;
commit;
  • 例子如下
update T_OWNERS set adddate=adddate-3 where id=1;
commit;
(3)删除数据
  • 删除数据语法,执行 DELETE 后一定要再执行 commit 提交事务
DELETE FROM 表名 WHERE 删除条件;
commit;
  • 例子如下
delete from T_OWNERS where id=2;
commit;
  • TRUNCATE删除数据
TRUNCATE TABLE 表名称;
  • 比较 truncat 与 delete 实现数据删除?
    • delete 删除的数据可以 rollback
    • delete 删除可能产生碎片,并且不释放空间
    • truncate 是先摧毁表结构,再重构表结构,数据无法回滚

5、数据导入导出

  • 当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重构这个完整的数据库该处理称为数据库恢复,而要进行数据库的恢复必须要有数据库的备份工作。
(1)整库导出
  • 整库导出命令,添加参数 full=y 就是整库导出。
exp system/123456 full=y
  • 执行命令后会在当前目录下生成一个叫 EXPDAT.DMP,此文件为备份文件。如果想指定备份文件的名称,则添加 file 参数即可,命令如下
exp system/123456 file=文件名 full=y
(2)整库导入
  • 此命令如果不指定 file 参数,则默认用备份文件 EXPDAT.DMP 进行导入
imp system/123456 full=y
  • 如果指定 file 参数,则按照 file 指定的备份文件进行恢复
imp system/123456 full=y file=文件名
(3)按用户导出
exp system/123456 owner=testuser file=testuser.dmp
(4)按用户导入
imp system/123456 file=testuser.dmp fromuser=testuser
(5)按表导出
  • 用 tables 参数指定需要导出的表,如果有多个表用逗号分割即可
exp testuser/123456 file=a.dmp tables=t_account,a_area
(6)按表导入
imp testuser/123456 file=a.dmp tables=t_account,a_area

相关文章:

  • 26届秋招收割offer指南
  • JavaScript性能优化实战:深入探讨性能瓶颈与优化技巧
  • 嵌入式面试八股文(十四)·内存管理机制、优先级继承机制以及优先级翻转
  • 多行文本省略
  • 精益数据分析(43/126):媒体网站商业模式的盈利与指标解析
  • Gitee的介绍
  • QtGUI模块功能详细说明,图像处理(三)
  • MUX-vlan
  • 多模态大语言模型arxiv论文略读(六十)
  • 山东大学软件学院项目实训-基于大模型的模拟面试系统-个人主页头像上传
  • 面试常问系列(一)-神经网络参数初始化-之自注意力机制为什么除以根号d而不是2*根号d或者3*根号d
  • 双ISP(双互联网服务提供商)
  • 为什么Transformer推理需要做KV缓存
  • Kotlin-访问权限控制
  • Python推导式进阶指南:优雅初始化序列的科学与艺术
  • 高光谱相机赋能烟叶分选:精准、高效与智能化的新突破
  • 信息时代的政治重构:网络空间与主权的未来
  • wrod生成pdf。[特殊字符]改背景
  • 【25软考网工】第五章(6)TCP和UDP协议、流量控制和拥塞控制、重点协议与端口
  • 嵌入式开发学习日志Day14
  • 上海:下调个人住房公积金贷款利率
  • 夹缝中的责编看行业:长视频之殇,漫长周期
  • 四人自驾游宣恩因酒店爆满无处住宿,求助文旅局后住进局长家
  • 马克思主义理论研究教学名师系列访谈|薛念文:回应时代课题,才能彰显强大生命力
  • AI世界的年轻人,如何作答未来
  • 李铁案二审今日宣判,押送警车已进入法院