Oracle学习笔记
1、清屏
在windows中:host cls
在linux中:host clear
2、查看当前用户
show user
3、tab数据字典
select * from tab可以查看当前用户所有表
4、查询表结构
DESC 表名
5、设置排版格式
设置行宽:set linesize 120 --每行显示120字符,空格也算一个字符。
设置列宽:col 列名 format(可以简写for) a8 --a表示该列为字符串,8表示长度为8个字符。如果该列为一个数,那么前面就不需要a这个字符了。
6、正斜杠/表示执行上一条SQL语句。
7、SQL优化一些问题
尽量使用列名代替 * ,因为星号需要时间去解析,而列名不需要,但是在9i之后,他们没有多大区别,9i做了优化。
8、如果SQL语句中出去错误,修改方法
(1)、c命令形式:当前光标默认指向上条SQL语句的第一行,键入数字定位到需要修改的行,键入命令:c /需要修改的/ 修改后的,例如:c /form/from,然后键入 / 表示执行上条完整的SQL语句。
(2)、直接敲 ed 进入系统默认的编辑器--window notepad linux vi
9、给列名去别名需注意,如果别名中有空格、关键字、特殊字符,则必须加“”双引号,否则报错。
10、SQL语句中的null问题
1.包含null的表达式都为null
2.在SQL中null永远不等于null, null!=null。
3.预空函数:nvl(),nvl2() nvl(a,b)表示当a为空时,默认值等于b。
4,.在SQL中判断一个值是否等于null,不能用= or != 只能用 is null 或者 is not null
11、去掉重复的值: DISTINCT 列名,如果有多列,那会作用有所有列,就是说只有所有的列都不同,才是两条不同的记录。
12、连接符
1.concat 连接字符串
select concat('hello','world') from dual dual表是Oracle提供的伪表,专供为了满足SQL语法要求或者跟表没有关系的操作。
2. select ‘hello’ || ‘ world’ from dual
13、SQL与SQL*Plus
SQL是一种语言,SQL*Plus是一个语言环境。select update insert delete是SQL语句,set col c是SQL*Plus语句 DESC也是SQL*Plus语句。
iSQL*Plus是一个SQL*Plus的web版。
14、保存命令行中的SQL语句:save 文件绝对路径
加载但不执行已存在的SQL语句文件 load 文件绝对路径
加载而且执行已存在的SQL语句文件 @文件绝对路径
15、spool命令
spool是一个oracle提供的录屏工具,会把当前窗口所有操作已经所有结果记录在一个文本文件中只用方式
开始:spool 要保存的文件的绝对路径
结束:spool off