本文共 2537 字,大约阅读时间需要 8 分钟。
超级管理员密码设置要求
超级管理员密码必须符合要求,尤其是不能以数字打头,否则可能会导致ora-00922和ora-28000等错误。 解决方法:确保密码符合Oracle的强度要求。Oracle 11g 与操作系统兼容性
Oracle 11g 下载地址
卸载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 文件路径名
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值处理
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优化原则:
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);
表设计:
查询优化:
事务管理:
ORA-00922 错误:
连接数据库失败:
NULL值处理:
通过以上内容,可以更好地理解和使用Oracle 11g数据库。
转载地址:http://lkcyz.baihongyu.com/