日期:2014-05-16  浏览次数:20463 次

Oracle 的使用整理
Oracle 的使用


1.1. SQLPLUS 的命令
初始化表的位置:
set NLS_LANG=american_america.us7ascii  (设置编码才可以使用下面脚本)
cd $ORACLE_HOME/rdbms   cd demo     summit2.sql
*********************************
我们目前使用的是oralce 9i   9201 版本
select * from v$version;

恢复练习表命令:
sqlplus  **/** @summit2.sql   //shell要在这个文件的位置。


登陆 oracle的命令:
sqlplus   用户名/密码

show   user         显示当前登陆的身份.
set    pause on
set    pause off   分页显示.

oracle 中默认日期和字符是左对齐,数字是右对齐
table or view does  not  exist ; 表或示图不存在

edit 命令用于自动打开vi 修改刚修执行过的sql 的命令。
修改方法二:
l  3 先定位到行    c   /旧串/新串

执行出错时,利用错误号来查错误:
!oerr ora 942  (装完系统后会装一个 oerr 工具,用于通过错误号来查看错误的具
体信息)

想在 sql 中执行 unix 命令时,把所有的命令前加一个!就可以,  或者 host( 用于
从 sql 从切换至unix环境中去)

/***  初次使用时注意  ****
运行角本时的命令:
先切换到 unix环境下,cd $oracle_home   cd sqlplus  cd demo 下面有两个角本
建表语句。

@demobld.sql
sqlplus nanjing/nanjing @demobid.sql 直接运行角本,后面跟当前目录或者是绝对
路径

保存刚才的 sql 语句:   save 命令      第二次保存时要替换之前的角本 save
文件名   replace
把刚才保的 sql 重新放入  buffer 中

spool on  开启记录
spool off  关闭记录
spool   文件名  此命令会把所有的操作存在某个文件中去

常见缩写:
nls national language support 国家语言支持


1.2. SQL 的结构
  |DDL        数据库定义
  |DML         数据库管理
SQL――Commit rollback  
  |DCL         数据库控制
  |grant+revoke  权限管理


表分为:系统表(数据字典),用户表
注:知道数据字典可以更便于使用数据库。
1.3. SQL 语句 
1.3.1. 纵向投影操作 select 
select * from student;
select name||’(‘||id||’)’ EMPLOYEE from employee;
select name,salary*13 from employee;

NVL function
如果原来的数值是null的话,由指定数值替代。
select last_name,title,salary*NVL(commission_pct,0)/100 COMM from s_emp;
1.3.2. column 使用
column(col)  columnName clear/format/heading/justify format
column salary format $9999999.00  设置数字显示形式
column name fromat a15;  设置字符串显示 15 个字符
column salary justify left/right/center  输出格式
column salary heading text  设置显示的字段名
column clear 清除格式
column last_name;显示该字段名所用的格式
column salary justify left format $99,999.00  ( 定义工资的显示形式 )
1.3.3. order by
ORDER BY  排序   升序和降序   ASC   升序(默认)    DESC 降序
select * from s_emp  order by dept_id , salary desc  
部门号升序,工资降序
关键字 distinct 也会触发排序操作。
select * from employee order by 1;  //按第一字段排序
NULL被认为无穷大。order by 可以跟别名。

1.3.4. where  选择操作(横向投影)
where 条件一定是根据某个字段来进行过滤操作.

select * from s_emp  where dept_id=42;  查看部门号为42 的所有员工
select * from s_emp  where salary>1000  查看工资高于 1000 的所有员工
select salary from  s_emp where first_name='Geroge'  找出名字为 Geroge 的员
工的工资数
select  table_name from  user_tables  where table_name='S_EMP';  查某个具
体表名时,表名的字符串必须要为大写 
或者采用  upper(table_name)
select * from user_talbes where table_name like ‘s\_%’ escape ‘\’;
使用转义字符对关键字进行转义。

逻辑运算:
BETWEEN  AND    在什么之间           
NOT     BETWEEN   AND   注意区间:[  ]是一个闭区间
IN( LIST)