A: 数据定义语言: 用于改变数据库结构,包括创建,修改,删除数据库对象

创建表:

Create Table 表名 ( 列名 列类型, 列名 列类型, …… )

例: Create Table vendor_master( vencode Varchar2(5), venname Varchar2(20) )

修改表:

Alter Table 表名 Modify | Add ( 列名 列定义 )

Modify: 修改列。    Add: 增加列。

例: Alter Table vendor_master Modify ( vencode Varchar2( 10 ) )

Alter Table vendor_master Add ( venAdd Varchar2(20) )

Alter Table 表名 Drop Column 列名

Drop 删除列。

例: Alter Table vendor_master Drop Column venAdd

删除表:

Drop Table 表名

例: Drop Table vendor_master

B:数据操纵语言: 用于检索,插入和修改数据库信息。

Select 选择查询:

查询符合条件的所有表字段:

Select * From 表名 Where 列名 = 条件

例:Select * From vendor_master Where vencode = 'V004'

查询符合条件的表的可选择字段:

Select 列名,列名,…… From 表名 Where 列名 = 条件

例:Select venname, venadd Where vencode = 'V004'

查询无重复的行:

在Select 后加Distinct就可以了

列:Select Distinct * From vendor_mastor

查询并排序显示查询结果:

Select * From 表名 Order By 排序列名,排序列名,……

例:Select * From vendor_master Order By vencode    -- 按一列来排序

Select * From vendor_master Order By vencode, venadd   -- 按多列来排序

Select 语句的总语法:

Select * | {[Distinct] 列名,列名,…… } From Table

[Where 条件]

[Order By 列名,列名,……]

其中用[ ]这个符号括起来的表示是可以选择写不写的。

Insert 插入:

插入一个表的所有列:

Insert Into 表名 Values ( 列值,列值,…… )

例:Insert Into vendor_master Values ( 'V001', 'Pro', '长沙' )

选择性插入表中的列:

Insert Into 表名 ( 列名,列名,…… ) Values( 列值,列值,…… )

例:Insert Into vendor_master ( vencode, venname ) Values( 'V002', 'Wind' )

注:未选择插入值的列将以NULL空值插入。

跳过列插值:

跳过一个或多个列的方式是为该列输入NULL空值

Select * From vendor_master Values( 'V003', NULL, '长沙' )

插入来自其他表的所有记录:

Insert Into 表名 Select *  From 表名

例:Insert Into order_master Select * From vendor_master

选择列插入来自其他表的记录:

Insert Into 表名 Select| 列名,列名,…… From 表名

例:Insert Into order_master Select vencode, venname From vendor_master

按条件插入来自其他表的所有记录:

Insert Into 表名 Select *  From 表名 Where 表名.列名

例:Insert Into order_master Select * From vendor_master Where   vendor_master.vencode = 'V002'

Update 更新:

按条件更新一列或多列:

Update 表名 Set 列名 = 更新值,列名 = 更新值,……

Where 列名 = 条件

Update vendor_master Set venname = 'kof' Where vencode = 'V001'

更新所有行:

Update 表名 Set 列名 = 更新值,列名 = 更新值,……

Update vendor_master Set venname = 'kof'

Delete 删除:

Delete From 表名 Where 列名=条件

例:Delete From vendor_master    -- 删除表所有记录

例:Delete From vendor_master Where vencode = 'V001'  -- 选择删除

C:事务控制语言:

当用户执行创建,删除,修改数据库对象或插入,删除,修改数据库表时,    用户所做的数据修改会被保存在数据缓冲区中,此时用户所做的数据库修改并没有真正的修改了数据库,只有在用执行Commit(提交)命令后才真正的修改了数据库, 如果想不修改数据库,则可以执行Rollback(回滚)命令则刚刚执行的修改不会修改数据库。

如: 当你用Insert 命令插入一条记录时,此时这条记录是保存在数据缓冲区中的,并没有真正保存到数据库中,数据库中不会有这条记录(不信你可以以另一个用户登陆然后查询插入的表,会发现无次记录), 如果你执行了Commit(提交)命令后, 才会将缓冲区的数据保存到数据库里, 既真正的修改了数据库(以另一个用户登陆可以查询到插入的记录), 如果执行Rollback(回滚)命令则会把存在缓冲区中的数据给删除掉,既用户的修改作废(如果执行Commit命令则不能回滚了)。  可以利用Savepoint(保存点)进行选择性的回滚。

例: Insert Into vendor_master Values( 'V007', 'Kof', '长沙' )

Savepoint insert_mark     -- 保存点

Update vendor_master Set venname = 'aaa' Where vencode = 'V007'

Savepoint update_mark     -- 保存点

Delete From vendor_master Where vencode = 'V007'

执行以上代码,以上所修改的数据会先保存在数据缓冲区中,当执行Commit则将所做的数据修改保存到数据库中。 当执行Rollback时则删除保存在数据缓冲区中的记录(既插入,更新,删除操作作废)。  如果只想删除作废,则可执行:Rollback To Savepoint update_mark           如果想删除,更新作废,则可执行:Rollback To Savepoint insert_mark       如果想插入,更新,删除作废,则可:Rollback

注: 此事务处理机制只有在Oracle中才必须需要用户手动控制, 在SQL2000中默认情况它会隐性控制(既用户不需要自己执行Commit命令来提交,他自动执行), 当然在SQL2000中也支持自己控制。

D:数据控制语言:用于为用户提供权限控制。

在前面将过,所以不重复了。

oracle SQL以结尾函数,Oracle学习笔记--SQL查询和SQL函数(转) -- 迷失de天空 -- 编程爱好者......相关推荐

  1. SQL Server 2008中SQL应用系列及BI学习笔记系列--目录索引 @邀月

    邀月 的数据库学习 http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html SQL Server 2008中SQL应用系列及BI ...

  2. oracle数据库修改写入状态,【学习笔记】Oracle oradebug 使用oradebug修改数据库SCN方法案例...

    天萃荷净 使用oradebug修改数据库scn,使用oradebug修改数据库scn的案例. 这里也做了两个测试,发现该功能确实很巧妙,通过修改内存中的scn值,然后写入控制文件和数据文件,实现修改s ...

  3. oracle rac添加监听,【学习笔记】Oracle 10G RAC增加节点时手动注册监听服务的案例步骤...

    [学习笔记]Oracle 10G RAC增加节点时手动注册监听服务的案例步骤 时间:2016-10-22 22:53   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 Ora ...

  4. Oracle中用system存数据,【学习笔记】Oracle表空间 数据存放system表空间影响数据库性能...

    天萃荷净 分享一篇,关于Oracle数据库system表空间研究,不能将用户数据存放在system表空间的原因 为什么不建议客户把业务数据存放到SYSTEM表空间中,一直想通过试验的数据来说明问题,今 ...

  5. oracle 下bdump占用大,【学习笔记】Oracle oradebug 利用oradebug释放被删除文件空间的案例...

    天萃荷净 利用oradebug释放被删除文件空间,运维DBA反映系统空间不足,由于trace跟踪文件占用,删除后不能释放空间,分析原因为oracle进程句柄占用 在很多时候,检查系统时候发现,由于某个 ...

  6. oracle dg 增加redo组,【学习笔记】Oracle Data Guard 修改dataguard主库redo组数和大小

    天萃荷净 运维DBA反映检查到Oracle DataGuard环境redo日志较小,总结一下修改dataguard主库redo组数和大小方法 在一个dg环境中,配置的是实时同步,需要增加主库的redo ...

  7. oracle中如何格式化输出,【学习笔记】数据库日期时间格式化输出案例

    天萃荷净 分享一篇关于开发DBA在工作中常用到的日期时间格式化输出方法案例,含:mysql.sql server.oracle 3种数据库日期时间格式化输出 1.mysql数据库时间格式化输出 DAT ...

  8. oracle停止job任务视图,【学习笔记】Oracle dba_datapump_jobs中not running作业的清除方法...

    天萃荷净 Oracle研究中心学习笔记:分享一篇关于Oracle数据库JOBS作业控制的文章.关于dba_datapump_jobs中的not running的作业的清除的方法. not runnin ...

  9. oracle复制另一个字段,【学习笔记】Oracle存储过程 表中列不同时动态复制表中数据到另一个表中...

    天萃荷净 分享一篇关于Oracle存储过程实现表之间数据复制功能.两表中列不同,动态的将一表中的数据复制到另一个表中案例 因为要用到回收站功能,删除一条记录,要先放到一个delete表中,以便以后恢复 ...

最新文章

  1. IP地址和MAC地址
  2. php libev pthreads,libuv 与 libev 的对比
  3. #模拟触手机屏幕_从操作系统的改变谈手机设计进化,单手并不是最终的便捷...
  4. 1.2.3 OSI参考模型(2)
  5. 《操作系统》实验报告——进程管理
  6. sql编写将时间转换年月日 时分格式
  7. mysql8中怎么增删一列_MYSQL 第八课 数据的增删改
  8. SQL 在表中建立索引的作用
  9. Java统计做题正确率_ResNet:训练期间的准确率为100%,但使用相同数据的预测准确率为33%...
  10. 初学react实现路由跳转_如何使用React构建模因制作者:初学者指南
  11. 基于JAVA+SpringBoot+Mybatis+MYSQL的文档管理系统
  12. 用Python爬了下知乎上的高颜值小姐姐后,我兴奋的睡不着觉!
  13. QTP9 2自带的视频教程
  14. Qt三方库开发技术:Qt应用内部打开PDF文件
  15. 蝉妈妈对话曹颖:5月带货1.1亿,踩过的坑都变成了卖货的筹码
  16. 研华工控台式计算机选型,工控机选型手册.pdf
  17. Meson构建系统(一)
  18. WebStorm SVN提交performing vcs refresh
  19. 沈向洋从微软离职,挺好的
  20. srs系列七——Vhost模式

热门文章

  1. ibatis动态查询条件(转载待完善)
  2. 如何用C#语言构造蜘蛛程序
  3. 享乐不尽 聚 VR一体机艳冠群雄
  4. 与内存对齐,字符数组求sizeof相关的一些问题
  5. iOS开发-UITextField手机号和邮箱验证
  6. 初探swift语言的学习笔记四(类对象,函数)
  7. 一笔画问题 (DFS或并查集)
  8. Spring MVC与JAX-RS比较与分析
  9. JAVA线程池的简单实现及优先级设置
  10. 1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)...