博客
关于我
【Java EE 学习 27】【oracle学习第一天】
阅读量:437 次
发布时间:2019-03-06

本文共 2537 字,大约阅读时间需要 8 分钟。

Oracle 11g 安装与使用指南

一、Oracle 11g 安装注意事项

  • 超级管理员密码设置要求

    超级管理员密码必须符合要求,尤其是不能以数字打头,否则可能会导致ora-00922和ora-28000等错误。
    解决方法:确保密码符合Oracle的强度要求。

  • Oracle 11g 与操作系统兼容性

    • Oracle 11g可以兼容Windows 7,但不兼容Windows XP。
    • Oracle 10g不兼容Windows 7,但兼容Windows XP。
    • Windows XP既支持Oracle 11g,也支持Oracle 10g。
  • Oracle 11g 下载地址

    • 需要有Oracle账号下载软件。
  • 卸载Oracle 11g

    • 使用以下命令彻底卸载:
    $ oracle_uninstall.bat
  • 命令行登录SQL*Plus

    • 普通用户登录
      sqlplus

      或者

      sqlplus 用户名/密码
    • 管理员用户登录
      sqlplus / as sysdba

      或者

      sqlplus 用户名/密码 as sysdba
  • 解锁用户和修改密码

    • 解锁用户:
      alter user scott account unlock;
    • 修改密码:
      alter user scott identified by 新密码;
  • Oracle 10g 和 Oracle 11g 官方文档


  • 二、常用命令行命令

  • SQL*Plus设置

    • 设置行宽:
      set linesize 80;
    • 设置页面行数:
      set pagesize 24;
    • 设置屏幕输出路径:
      spool 文件路径名;
    • 停止屏幕输出:
      spool off;
    • 编辑命令:
      edit
    • 返回命令行:
      host
    • 清屏:
      host cls
    • 保存命令:
      save 文件路径名
    • 执行SQL脚本:
      start 或者 @文件路径名
  • 列宽和格式化输出

    • 设置列宽:
      column 列名 format a20
    • 设置字符串列宽:
      column 列名 format a9999
    • 设置列显示名称:
      column 列名 heading 显示名称
  • 常用函数示例

    • 字符函数:
      select upper('apple'), lower('APPLE'), initcap('apple') from dual;
    • 日期函数:
      select to_char(sysdate, 'MM-DD-YYYY HH24:MI:SS') from dual;
    • 数值函数:
      select round(11.1), trunc(11.5) from dual;
    • 日期操作:
      select sysdate, last_day(sysdate), add_months(sysdate, 12) from dual;
  • 去除重复行和字符串连接

    • 去除重复行:
      select distinct 姓名 from emp;
    • 字符串连接:
      select '姓名' || 用户名 || ' - ' || 密码 from dual;
  • NULL值处理

    • 使用NVL函数:
      select ename, sal*12 + nvl(comm, 0) 年收入 from emp;
    • 判断字段是否为空:
      select ename, comm is null from emp where ename = 'Scott';
  • 组函数示例

    • 计算总人数:
      select count(*) 总人数 from emp;
    • 计算平均奖金:
      select avg(comm) 平均奖金 from emp;
  • 分组查询与排序

    • 分组查询:
      select deptno, job, avg(sal) 平均工资 from emp group by deptno, job;
    • 排序:
      select * from emp order by sal desc nulls last;
  • 多表查询与外连接

    • 等值连接:
      select ename, dname from emp, dept where emp.deptno = dept.deptno;
    • 外连接:
      select e.ename, d.dname from emp e, dept d where e.deptno = d.deptno(+);
  • 层次查询

    • 查询员工与其直接上级关系:
      select empno, ename, mgr from emp connect by prior empno = mgr start with mgr is null;

  • 三、过滤与排序技巧

  • 空值排序

    • 将空值放在最后:
      select * from emp order by comm desc nulls last;
  • SQL优化原则

    • 尽量使用WHERE过滤,避免使用HAVING。
    • 条件中包含分组函数时,必须使用HAVING。

  • 四、SQL*Plus 报表功能

  • Rollup分组

    select deptno, job, sum(sal) from emp group by rollup(deptno, job);
  • 格式化输出

    • 设置断行:
      break on deptno skip 2;
    • 停止格式化:
      break on null;
  • 多层分组与合并

    select deptno, to_char(null), sum(sal) from emp group by deptno, to_char(null);

  • 五、数据库设计与优化建议

  • 表设计

    • 避免过大表和过小表。
    • 适当使用分区表和外键约束。
  • 查询优化

    • 避免使用SELECT *,明确列名。
    • 尽量使用索引列在WHERE和HAVING中。
  • 事务管理

    • 使用事务来保证数据一致性,避免脏读、不可重复读和幻读。

  • 六、常见问题与解决方案

  • ORA-00922 错误

    • 超级管理员密码不符合要求,修改密码后重新安装。
  • 连接数据库失败

    • 检查SQL*Plus路径和数据库服务是否正常。
  • NULL值处理

    • 使用NVL函数替代空值。

  • 通过以上内容,可以更好地理解和使用Oracle 11g数据库。

    转载地址:http://lkcyz.baihongyu.com/

    你可能感兴趣的文章
    MySQL - 解读MySQL事务与锁机制
    查看>>
    MTTR、MTBF、MTTF的大白话理解
    查看>>
    mt_rand
    查看>>
    mysql /*! 50100 ... */ 条件编译
    查看>>
    mudbox卸载/完美解决安装失败/如何彻底卸载清除干净mudbox各种残留注册表和文件的方法...
    查看>>
    mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
    查看>>
    mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
    查看>>
    mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
    查看>>
    MySQL 8.0 恢复孤立文件每表ibd文件
    查看>>
    MySQL 8.0开始Group by不再排序
    查看>>
    mysql ansi nulls_SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思
    查看>>
    multi swiper bug solution
    查看>>
    MySQL Binlog 日志监听与 Spring 集成实战
    查看>>
    MySQL binlog三种模式
    查看>>
    multi-angle cosine and sines
    查看>>
    Mysql Can't connect to MySQL server
    查看>>
    mysql case when 乱码_Mysql CASE WHEN 用法
    查看>>
    Multicast1
    查看>>
    MySQL Cluster 7.0.36 发布
    查看>>
    Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
    查看>>