锁定老帖子 主题:oracle辅导(1--2)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-03
sql脚本,也就是在文件中写有sql语句的文件,可以在sqlplus中运行。 引入sql脚本 sqlplus 用户名/密码 @sql脚本.sql (注意:在用户名密码输入结束后一定要加空格然后再写@sql脚本) Oracle中的空值会当作无穷大处理,其实空值根本就不会存储,只是看作是无穷大。 Oracle中控制处理函数 NVL(字段名,值),这个字段中的空值替换为指定值,如果不为空,则会返回其原值。 例:select (salary*12)*(NVL(commission_pct,0)/100+1) salary,first_name from s_emp;
distinct关键字,去掉重复行(这个关键字会处发排序操作) 例: select distinct dept_id,title from s_emp;
注意:distinct,关键字之后会对from之前的字段进行排重操作。
column命令(这是个sqlplus命令)
column命令 列格式的定义 column 目标列名 查看这个类是否定义了格式
column 目标列名 format a.. 设置列宽
column last_name heading 'Employee|Name'(设置题头) FORMAT A15 这其中的'|'是换行符
column salary justify left format $99,990.00(定义数字显示格式) 注意:如果不满足显示的格式,就会把数据显示为"#"
column 列名 clear (清除列格式定义)
注意:只有sqlplus命令才有简写,并且在使用sqlplus命令时结尾也不能加分号。
选择操作
order by 排序子句 ASC(默认,升序) DESC(降序)
order by 目标列名(别名) 排序顺序(不写排序顺序,会默认为升序排序)
例:select first_name from s_emp order by first_name; select first_name from s_emp order by first_name desc;
注意:升序空值在结果的末尾,降序空值在结果的最前面。
where子句
where子句使用在 select ... from ... 后面,用来选择所需(符合条件的)的记录
where后面跟的是表达式 也就是 XXX=XXX, XXX between X and X ,XXX in(X,X,X) like '...' 通配查询
between ... and ... ,表示结果在这之间,between and是一个闭区间, 也就相当于... <= ... and ... >= ... 。 !=,<>,^=,这三个都标识不等于,<=,>=,=,这些运算符都可以使用。 ... in (va1,val2,...) 判断结果是否在这个枚举中存在 like '...' 字符串通配查询,'%'表示多个字符,'_',表示一个字符。 ... and ... 表示只有两个条件同时满足 ... or ... 表示条件只要满足其中只一就可以 all(数据或子查询)。 例 select first_name from s_emp where salary<>all(2500,1500); all中的数据和纪录中的值全部一致,一般使用!=all(),来过滤在某个范围纪录
not .....,则是可以与以上的条件产生反效果。 空值会对not in造成影响,也就是不等于任何值,但是空值例外。 ... is null 使用来判断值是不是空。 转义,使用escape定义转义符 'S\_%' escape '\',使用转义,可以避免和运算符相同的字符的查询 例: select table_name from user_tables where table_name like 'S\_%' escape '\'
注意:Oracle中的字符串是严格区分大小写的。
1.注意数据类型,数字类型直接写,字符用'......' ,缺省格式的Date可以用'......',只有别名才用" "包含。 2.选择合适的运算符
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-31
恩。不错学习了;
|
|
返回顶楼 | |
发表时间:2009-01-09
写的很不错!对那些初学者有很大的帮助 |
|
返回顶楼 | |
发表时间:2009-02-05
最后修改:2009-02-05
恩!~~~太好了,我就是一个初学者,感觉总结的 精简扼要,还真有些是不会的。 not in 举个例子,就用scott 了 :-)
源表:
SQL> select empno,ename,sal,comm from emp;
EMPNO ENAME SAL COMM
使用not in 查询的结果: SQL> select empno,ename,sal,comm from emp where comm not in (300,1000);
EMPNO ENAME SAL COMM
使用 in 查询的结果: SQL> select empno,ename,sal,comm from emp where comm in (300,1000);
EMPNO ENAME SAL COMM
看来,凡是 [COMM] 列中为null的值都没有查到,因此 :无论是not in 还是 in 对空值都不起作用
|
|
返回顶楼 | |
发表时间:2009-05-13
oracle版没撒人气。
|
|
返回顶楼 | |
浏览 5288 次