博客
关于我
【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中出现Unit mysql.service could not be found 的解决方法
    查看>>
    mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
    查看>>
    Mysql中各类锁的机制图文详细解析(全)
    查看>>
    MySQL中地理位置数据扩展geometry的使用心得
    查看>>
    Mysql中存储引擎简介、修改、查询、选择
    查看>>
    Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
    查看>>
    mysql中实现rownum,对结果进行排序
    查看>>
    mysql中对于数据库的基本操作
    查看>>
    Mysql中常用函数的使用示例
    查看>>
    MySql中怎样使用case-when实现判断查询结果返回
    查看>>
    Mysql中怎样使用update更新某列的数据减去指定值
    查看>>
    Mysql中怎样设置指定ip远程访问连接
    查看>>
    mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
    查看>>
    Mysql中文乱码问题完美解决方案
    查看>>
    mysql中的 +号 和 CONCAT(str1,str2,...)
    查看>>
    Mysql中的 IFNULL 函数的详解
    查看>>
    mysql中的collate关键字是什么意思?
    查看>>
    MySql中的concat()相关函数
    查看>>
    mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
    查看>>
    MySQL中的count函数
    查看>>