oracle语句注意点有哪些,oracle sql 注意点

1.select 中的字符串不需注意大小写但where后面的字符串需注意

列名无需注意,值需要注意。

2.select pname AS pn 别名不加引号默认显示列为大写,加引号为引号内的字体,并且pn为双引号不是单引号。

3.where lower(pname)='she'最好使用这种格式,若中文无需考虑。

4.select pname,sal*12+500,location列名可以加表达式

5.where pname like 'pkdata_%'escape ''使用转义字符将_表示为字符串的一部分,而不是占位符。

6.order by默认asc从小到大。

7.order 可以使用列号。select pname,pno,location .......order by 1 ASC

8.order 后可以不跟已选择列名,也可以为表中其他列 但是没有可读性。

9.between可以在数值型,字符型,日期型中使用。

10.由于oracle数据库的字符集是英语,而我们使用的是中文操作系统在日期显示上可能会有问题SQL>alter session set NLS_DATE_LANGUAGE='AMERICAN';

11.日期也能加减乘除而且可以使用数值型函数例如round()。select pname,job,(sysdate-hiredate)/365 AS'工龄'

12.null值最好的解释就是:有值但是现在不知道是什么值,例如要填写学生性别,学生没来不知道来了就知道,但是你不能说这个学生没性别。

13.null值在排序时默认是最大的。如果是升序有值的排在前面。

14.nvl(表达式1,表达式2) 如果1为null返回2,否则返回1。表达式1和2的类型必须一致,可以为数字型、字符型、日期型。例如:nvl(to_char(conn),'no conn') 可以有效避免因nul值引发的错误,典型的order by错误

15.当遇到条件语句时可以使用nvl,遇到分支判断时可以使用decode.

16.算术运算符>连接运算符>比较运算符>is null like in >between >and>or

17.nvl2(表达式1,表达式2,表达式3)1不为null,返回2的值,1为null,返回3的值。并且表达式2、3为任何类型无需相同。功能涵盖nvl。

18.当需要判断两值是否相等,可以用nullif函数,nullif(表达式1,表达式2)如果相等就返回null,不相等就返回表达式1。

19.coalesce(表达式1,表达式2,表达式3,。。。N)该函数返回表达式中第一个不为空的表达式的值。

20.除了count()函数以外其他分组函数都不处理包含null的记录。

21.外连接的用法:需要显示表关联中没有匹配的关联记录

from emp,dept where emp.deptno(+)=dept.deptno (+)表示显示emp中的所以记录包括没有与dept匹配的记录。左外右外只是加号的位置不同。

22.group by 语句在查询时可以不要单位字段,select min(sal) from emp group by job;select job,min(sal)from emp group by job。

23.更改表的结构用alter table tablename add (hiredate date);增加列。修改已存在列用modify删除drop。

24.truncate 删除表数据但不删表结构,drop不仅删除数据结构也同样删除掉。

25.子句插入操作时 insert into sales(code,name,salary) select empno.ename,sal from emp 。直接插入不需要values,就像create table AA select * from emp.

26.update语句中修改多列数据只能是子查询。update emp set ename, sal=(select enm,salary) from emp1

27.在执行DDL(改变表结构的语句create table view...)事务自动提交。在执行DML(数据操作语言insert,update,delete)需要自己commit。当用户费正常退出sqlplus以及非正常关闭软件硬件,事务自动回滚。

28.索引的好处在于更加快捷的查询数据减少I/O的数据读取。因为oracle数据的读取都是先将要读取的数据放入到缓冲区中在一行一行读取大大影响效率,引入索引,索引只存放索引关键字及指向数据的指针

,所以查询速度很快,即使删除索引对数据没有任何影响,而且在日常查询中也不要显示调用只是在背后提高查询速度。在建立主键及unique约束时系统自动建立索引。

29.在用户下执行user_indexes可以知道该用户的索引总体情况,详细情况为user_ind_columns。

30.一般在返回数据量较少、一列或多列经常出现在where字句中、较少进行dml(insert、update、delete)操作、包含大量空值。这些情况下最好用索引。

31.经常用truncate来清除表的记录,很好用很强大。

32.如果要像一个数据库中导入很多数据应先删除非唯一索引,倒完数据之后再添加索引。

33.约束(constraint)包含非空约束(not null)、唯一约束(unique)、主键(primary key)、外键(foreign key)、条件(check)。约束总体情况在user_constraints中,约束详细情况在user_cons_columns。

34.查看视图(view)同样时在user_views表中。

35.序列(sequence)是自增加的,他是一个可以由多用户共享的数据库对象,它有一个序列号产生器,专为表中的数据进行自动产生序列号,它是由oracle内部维护和产生例程的,它独立于表,通常用来产生主键。[@more@]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值