oracle基本的SQL语句和SQLSERVER基本一样,在这里只简单列出与SQLSERVER不一样的地方

1.select * from orderinfo where address = 'abcd'  与 address = 'ABCD'

得到的结果是不一样的,也就是说oracle字符区分大小写,这一点特别要注意。

2.查询语句中,如果表引用了别名,则字段也必须的用别名.字段名

select orderid, ordercode from orderinfo o是一条错误的查询语句,正确的如下:

select o.orderid, o.ordercode from orderinfo o或者select orderid , ordercode from orderinfo

3.A{operator}any B:表示A与B中的任何一个元素进行operator运算符的比较,只要有一个比较值为true,就返回数据行

A{operator}all B:表示A与B中的所有元素进行operator运算符的比较,只有所有元素的比较值都为true,就返回数据行

select * from orderinfo where orderid = any(1,2,3)    表示orderid等于1或2或3则返回数据行

select * from orderinfo where orderid <> all(1,2,3)    表示orderid不等于1并且不等于2并且不等于3则返回数据行

4.与null进行比较要用 is null这与sqlserver一样,在这里记一下

5.自然连接natural join

select o.orderid, u.userid from orderinfo o natural join userinfo u where o.orderid = 1

oracle把两个表中名称相同的列自动连接

6.子查询中的in, any ,all

select * from orderinfo where userid in (select userid from userinfo where username = 'abcd')与sqlserver一样

select * from orderinfo where userid > any (select userid from userinfo where username = 'abcd')

只要userid大于任何一个子查询中的userid则返回数据行

select * from orderinfo where userid > all(select userid from userinfo where username ='abcd')

userid必须大于子查询中所有的userid才能返回数据行

7.insert语句

insert into orderinfo(orderid) values(orderinfo_seq.nextval)

orderinfo_seq.nextval获取序列下一个值,前提必须创建了orderinfo_seq序列

批量插入数据:

insert into orderinfo_tmp select * from orderinfo where orderid = 1

8.update语句

update orderinfo set mobilephone = '13333333333' where orderid = 1

通过查询更新:

update orderinfo set (mobilephone, address, productnumeric, amount) = (select mobilephone,

address, productnumeric, amount from orderinfo where orderid = 1)

where orderid = 2

9.Delete,truncate语句

delete from orderinfo where orderid = 1

truncate table orderinfo --删除orderinfo表中所有的记录,并且不记录日志,所以可以很快的删除记录,但是无法恢复

10.事务

oracle11g中的事务是隐式自动开始的,它不需要用户显示地执行开始事务语句,但对于事务的结束处理,则需要用户进行指定的操作,

通常在以下情况oracle认为一个事务结束了:

1.执行commit语句提交事务

2.执行rollback语句撤消事务

3.执行一条数据定义语句,如create,drop,alter等语句,如果语句执行成功,oracle系统会自动执行commit命令,否则系统会自动执行

rollback命令

4.执行一个数据控制命令,比如grant,revoke,这种语句执行完毕,系统会自动执行commit命令

5.正常地断开数据库连接,正常退出sqlplus环境,系统会自动执行commit命令,否则系统自动执行rollback命令

综合上述五种情况,归根到底事务的结束要么执行commit命令,要么执行rollback命令

提交事务:

insert into orderinfo (orderid,...) values(orderinfo_seq.nextval,...);

commit;

回滚事务:

insert into orderinfo (orderid,...) values(orderinfo_seq.nextval,...);

rollback;

事务可以回滚到一个点,如:

truncate table orderinfo

insert into orderinfo (orderid,...) values(orderinfo_seq.nextval,...);

savepoint sp;

insert into orderinfo (orderid,...) values(orderinfo_seq.nextval,...);

rollback to savepoint sp;

commit;

上述语句执行后数据表中只有一条记录,也就是每一条插入语句所插入的数据

12.分页查询

select * from(
select o.*, rownum r from orderinfo o where rownum <=20 order by o.orderid asc)
where r > 10

查询第11-20条记录

oracle学习笔记3:基本的SQL语句的更多相关文章

  1. Oracle学习笔记十 使用PL/SQL

    PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言,是对 SQL 的扩展,它支持多种数据类型,如大对象和集合类型,可使用 ...

  2. oracle学习笔记4:PL/SQL

    PL/SQL是没命名的存储过程,函数,触发器,PL/SQL块的语法格式如下: [declare] --声明部分,可选 begin --执行部分,必须 [exception] --异常处理部分,可选 e ...

  3. entityframework学习笔记--009-使用原生sql语句操作数据

    1 使用原生SQL语句更新--Database.ExecuteSqlCommand 假设你有一张如图9-1所示的Payment数据库表. 图9-1 1.1 实体类型: public class Pay ...

  4. power desinger 学习笔记三<批量执行sql语句>

    使用sql脚本导入表结构,直接 附带表的 约束.列的注释.真的可以哦 sql语句如下: create table test01 (   ID                   VARCHAR2(10 ...

  5. Oracle 学习笔记 17 -- 异常处理(PL/SQL)

    程序异常是在操作期间正常,出现在节目的准备过程是不可避免的例外.但是,必须有一个相应的异常处理机 制,以保证程序的正常运行.PL/SQL程序运行过程中出现的错误.称为异常. 一个优秀的程序都应该可以正 ...

  6. oracle学习笔记(九) SQL常用函数说明以及使用

    SQL常用函数说明以及使用 以下补充以下常用的函数,更多的请看oracle函数API文档 to_char to_char(8.58,'9.99') to_char(8.50,'9.00') to_ch ...

  7. oracle学习笔记(五) SQL操作符

    SQL操作符 算术操作符:+加,-减,*乘,/除 比较操作符: <,>,=,!=,<>,<=,>= 常用的判断,<>和!=相同 between $low ...

  8. Oracle学习中,重点是sql语句的学习,而所有的sql语句都要在scott用户下完成。

    熟悉这个用户下的四张表,是必要的. 查看所有表名: SELECT * FROM tab; 查看每张表的结构: DESC 表名称: 1.部门表:dept no  名称 类型 描述 1 DEPTNO NU ...

  9. Oracle学习总结(5)—— SQL语句经典案例

    --0.所有员工信息 SELECT * FROM emp --1.选择部门30的所有员工 SELECT * FROM emp WHERE deptno=20 --2.列出所有办事员(CLERK)的姓名 ...

  10. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

随机推荐

  1. 【转】Xcode7.1环境下上架iOS App到AppStore 流程 (Part 一)

    原文网址:http://www.cnblogs.com/ChinaKingKong/p/4957682.html 前言部分 之前App要上架遇到些问题到网上搜上架教程发现都是一些老的版本的教程 ,目前 ...

  2. Windows Server AppFabric 安装文档

    安装指南 入门标题页 3 Windows Server AppFabric 安装和配置指南 3 版权 3 版权所有 3 简介 3 清单:规划安装 4 硬件要求 4 使计算机作好安装准备 5 本节内容 ...

  3. Bzoj 3236: [Ahoi2013]作业 莫队,分块

    3236: [Ahoi2013]作业 Time Limit: 100 Sec  Memory Limit: 512 MBSubmit: 1113  Solved: 428[Submit][Status ...

  4. (转)PQ分区魔术师中文版分区教程

    PQ分区魔术师中文版分区的图解,图文并茂很多朋友提到硬盘分区,觉得不敢轻易去尝试,怕得不偿失,深度xp系统下载在此分享下pq分区的图解详见下图: 1)这是用的雨林木风系统的光盘,其他系统盘一样 2)首 ...

  5. MySQL开启远程链接(2014.12.12)

    MySQL默认是关闭远程链接的,只能通过localhost访问本地数据库 如果不是本地访问就需要打开MySQL的远程连接: 基本步骤其实很简单: 1.进入mysql 2.依次运行下面的命令(黄色的为命 ...

  6. tomcat详细日志配置

    在server.xml里的<host>标签下加上<Valve className="org.apache.catalina.valves.AccessLogValve&qu ...

  7. 转:栈和队列小知识【STL用法】

    原文出处:http://blog.csdn.net/chenzhenyu123456/article/details/44519943 栈: (一)头文件  #include<stack> ...

  8. 极客技术专题【007期】:jQuery初学者入门 - jQuery Event

    日期:2013-8-19  来源:GBin1.com 技术专题介绍 专题:jQuery初学者入门[第三讲:jQuery Event] 分享人:极客标签技术编辑 -Lana (请站内关注分享人) 授课时 ...

  9. hdu 4758 Walk Through Squares

    AC自动机+DP.想了很久都没想出来...据说是一道很模板的自动机dp...原来自动机还可以这么跑啊...我们先用两个字符串建自动机,然后就是建一个满足能够从左上角到右下角的新串,这样我们直接从自动机 ...

  10. 使用GitHub管理源代码

    作为一个开发员,源码的管理是一个头等大事来的,想象一下,修改完成却发现文件丢失了,该怎么办?有了源代码管理工具,能够帮助我们查看某个代码文件的修改内存及历史修改记录. 作为.Net开发员,我使用过VS ...