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)