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