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

oracle笔记(2)

设置环境变量:
   ORACLE_SID=oral10g\    --变局部变量
   export ORACLE_SID      --变全局变量
   unset ORACLE_SID       --卸载环境变量
   ORACLE_HOME=...        --安装路径;直接用一句语句也可以,如下
   export ORACLE_HOME=/oracledata/.../bin:

一、注意事项:
    大小写不敏感,即不区分大小写。提倡关键字大写,便于阅读和调式。
    “!”在SQL环境下执行Unix命令。
    SQL语句是由简单的英语单词构成;这些英语单词称为关键字/保留字,不做它用。
    SQL由多个关键字构成。
    SQL语句由子句构成,有些子句是必须的,有些是可选的。
    在处理SQL语句时,其中所有的空格都被忽略(空格只用来分开单词,连续多个空格当一个用)。
    SQL语句可以在一行上写出,建议多行写出,便于阅读和调试。
    多条SQL语句必须以分号分隔。
    多数DBMS不需要在单条SQL语句后加分号,但特定的DBMS可能必须在单条SQL语句后加分号。
    SQL语句的最后一句要以 “;”号结束

二、写子句顺序
    Select column,group_function
    From  table
    [Where  condition]
    [Group by  group_by_expression]
    [Having    group_condition]
    ……
    [Order by  column];    --最后

三、常用简单语句:
    clear screen:清屏
    edit:编辑刚才的一句。
    desc/describe:(列出所有列名称)
        用法: DESCRIBE [schema.]object[@db_link]
    dual:亚表,临时用。如:desc dual;/from dual;
    rollback:回溯,回溯到上次操作前的状态,把这次事务操作作废,只有一次(DDL和DCL语句会自动提交,不能回溯)。
        可以用commit语句提交,这样就回溯不回了。
set pause on\off :设置分屏(设置不分屏)
set pause "please put an enter key" 且 set pause on:设置带有提示的分屏
oerr ora 904 :查看错误
set head off :去掉表头
set feed off :去掉表尾
保存在oracle数据库中的所有操作细节:
    spool oracleday01.txt :开始记录
    spool off :开始保存细节

四、SELECT语句:选择操作、投影操作。
select:从一个或多个表中检索一个或多个数据列。包含信息:想选择什么表,从什么地方选择。必须要有From子句。(最常用)
        当从多张表里查询的时候,会产生笛卡尔积;可用条件过滤它。
        当两个表有相同字段时必须加前缀,列名前需加表名和“.”,如“s_emp.id”。
    1、用法:SELECT  columns,prod2,prod3<列>  FROM Table1,table2<表名>  分号结束
       如: select id from s_emp;
           select last_name,name from s_emp,s_dept where s_emp.dept_id=s_dept.id;--列表每人所在部门
           SELECT *  FROM Products;    --检索所有列。
           数据太多时,最好别使用上句,会使DBMS降低检索和应用程序的性能。(*通配符)
    2、对数据类型的列可进行运算(如加减乘除)。
    3、对列起别名:有直接起别名,加AS起别名,用双引号起别名等三种方法
       (单引号,引起字符串;双引号,引起别名。起别名有符号,或者区分大小写时,必须用双引号)
        多表查询时,可给表起别名。(给列起别名,列<空格>列别名;给表起别名,表<空格>表别名;)。
        如:Select first_name EMPLOYEES, 12*(salary+100) AS MONEY, manager_id "ID1" From s_emp E;
    4、字段的拼接,可用双竖线(双竖线只能用于select语句里)。不同的DBMS可能使用不同的操作符;拼接的字段同样可以起别名。
        如:Select  first_name ||' '|| last_name || ', '|| title "Employees" From s_emp;

排他锁:Select id,salary  From s_emp where id=1  For Update;
   可以阻止他人并发的修改,直到你解锁。
   如果已有锁则自动退出:Select id,salary From s_emp where id=1 For Update NoWait;
   FOR UPDATE :可以再加 OF 精确到某格。如:   ... For Update  OF salary ... 
   注意要解锁。

五、ORDER BY 子句,排序
Order by:按某排序列表(默认升序 asc,由低到高;可加 desc,改成降序由高到低)
&nb