oracle SQL以结尾函数,Oracle学习笔记--SQL查询和SQL函数(转) -- 迷失de天空 -- 编程爱好者......
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天空 -- 编程爱好者......相关推荐
- SQL Server 2008中SQL应用系列及BI学习笔记系列--目录索引 @邀月
邀月 的数据库学习 http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html SQL Server 2008中SQL应用系列及BI ...
- oracle数据库修改写入状态,【学习笔记】Oracle oradebug 使用oradebug修改数据库SCN方法案例...
天萃荷净 使用oradebug修改数据库scn,使用oradebug修改数据库scn的案例. 这里也做了两个测试,发现该功能确实很巧妙,通过修改内存中的scn值,然后写入控制文件和数据文件,实现修改s ...
- oracle rac添加监听,【学习笔记】Oracle 10G RAC增加节点时手动注册监听服务的案例步骤...
[学习笔记]Oracle 10G RAC增加节点时手动注册监听服务的案例步骤 时间:2016-10-22 22:53 来源:Oracle研究中心 作者:HTZ 点击: 次 天萃荷净 Ora ...
- Oracle中用system存数据,【学习笔记】Oracle表空间 数据存放system表空间影响数据库性能...
天萃荷净 分享一篇,关于Oracle数据库system表空间研究,不能将用户数据存放在system表空间的原因 为什么不建议客户把业务数据存放到SYSTEM表空间中,一直想通过试验的数据来说明问题,今 ...
- oracle 下bdump占用大,【学习笔记】Oracle oradebug 利用oradebug释放被删除文件空间的案例...
天萃荷净 利用oradebug释放被删除文件空间,运维DBA反映系统空间不足,由于trace跟踪文件占用,删除后不能释放空间,分析原因为oracle进程句柄占用 在很多时候,检查系统时候发现,由于某个 ...
- oracle dg 增加redo组,【学习笔记】Oracle Data Guard 修改dataguard主库redo组数和大小
天萃荷净 运维DBA反映检查到Oracle DataGuard环境redo日志较小,总结一下修改dataguard主库redo组数和大小方法 在一个dg环境中,配置的是实时同步,需要增加主库的redo ...
- oracle中如何格式化输出,【学习笔记】数据库日期时间格式化输出案例
天萃荷净 分享一篇关于开发DBA在工作中常用到的日期时间格式化输出方法案例,含:mysql.sql server.oracle 3种数据库日期时间格式化输出 1.mysql数据库时间格式化输出 DAT ...
- oracle停止job任务视图,【学习笔记】Oracle dba_datapump_jobs中not running作业的清除方法...
天萃荷净 Oracle研究中心学习笔记:分享一篇关于Oracle数据库JOBS作业控制的文章.关于dba_datapump_jobs中的not running的作业的清除的方法. not runnin ...
- oracle复制另一个字段,【学习笔记】Oracle存储过程 表中列不同时动态复制表中数据到另一个表中...
天萃荷净 分享一篇关于Oracle存储过程实现表之间数据复制功能.两表中列不同,动态的将一表中的数据复制到另一个表中案例 因为要用到回收站功能,删除一条记录,要先放到一个delete表中,以便以后恢复 ...
最新文章
- IP地址和MAC地址
- php libev pthreads,libuv 与 libev 的对比
- #模拟触手机屏幕_从操作系统的改变谈手机设计进化,单手并不是最终的便捷...
- 1.2.3 OSI参考模型(2)
- 《操作系统》实验报告——进程管理
- sql编写将时间转换年月日 时分格式
- mysql8中怎么增删一列_MYSQL 第八课 数据的增删改
- SQL 在表中建立索引的作用
- Java统计做题正确率_ResNet:训练期间的准确率为100%,但使用相同数据的预测准确率为33%...
- 初学react实现路由跳转_如何使用React构建模因制作者:初学者指南
- 基于JAVA+SpringBoot+Mybatis+MYSQL的文档管理系统
- 用Python爬了下知乎上的高颜值小姐姐后,我兴奋的睡不着觉!
- QTP9 2自带的视频教程
- Qt三方库开发技术:Qt应用内部打开PDF文件
- 蝉妈妈对话曹颖:5月带货1.1亿,踩过的坑都变成了卖货的筹码
- 研华工控台式计算机选型,工控机选型手册.pdf
- Meson构建系统(一)
- WebStorm SVN提交performing vcs refresh
- 沈向洋从微软离职,挺好的
- srs系列七——Vhost模式
热门文章
- ibatis动态查询条件(转载待完善)
- 如何用C#语言构造蜘蛛程序
- 享乐不尽 聚 VR一体机艳冠群雄
- 与内存对齐,字符数组求sizeof相关的一些问题
- iOS开发-UITextField手机号和邮箱验证
- 初探swift语言的学习笔记四(类对象,函数)
- 一笔画问题 (DFS或并查集)
- Spring MVC与JAX-RS比较与分析
- JAVA线程池的简单实现及优先级设置
- 1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)...