什么是事务

       事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。

事务和锁

       当执行一个事务dml的时候,oracle会被作用的表上加锁,防止其他用户改表的结构。

保存点是一个回退机制,个数没有限制
savepoint a1;
delete from emp where empno=9996;
select *from emp;
savepoint a2;
delete from emp where empno=9990;
rollback to a2;
rollback to a1;

如果commit提交事务,会确认事务的变化,结束事务,删除保存点,释放锁,其他会话将可以查看事务变化的新数据。如果不提交,关闭后,会自动提交;全部取消 rollback。

只读事务:可以确认用户只能取得某时间点的数据。尽管其他会话可能提交新的事务,但是只读事务将不会取得最新数据的变化,从而保证取得特定时间点的数据信息。set transaction read only

常见字符函数:

    lower(char):将字符串转化为小写的格式

    upper(char):将字符串转化为大写的格式

    length(char):返回字符串的长度

    substr(char ,m,n):取字符串的子串

    replace(char1,search_string,replace_string):替换

显示正好有5个字符的员工的要求

显示所有员工姓名的前三个字符

以首字符大写的方式显示所有员工的姓名

以首字母小写方式显示所有员工的姓名

显示所有员工的姓名,用“我是A” 替换所有"A"

常见数字函数

round(char,m)  四舍五入

      trunc(char,m)小数点后面通通舍去

      floor(char)   往下取整

      ceil(char)     向上取整

       mod(m,n)取模

 
日期函数用于处理date类型的数据,oracle默认是dd-mon月-yy
 
(1)sysdate:该函数返回系统时间
(2)add_months(d,n) 加月份的函数
(3)last_day:返回指定日期所在月份的最后一天
 
查找已经入职400月多的员工
select *from emp where sysdate>add_months(hiredate,400);

显示满10年的员工姓名和受雇时间
select *from emp where sysdate>=add_months(hiredate,12*10); 
对于每个员工,显示加入公司的天数
select trunc(sysdate-hiredate) "入职天数",ename from emp;

找出各个月份倒数第三天受雇的所有员工
select hiredate,ename from emp where last_day(hirddate)-2=hiredate

 
转换函数:用于将数据类型从一种类型转换成另外一种;如将“10” 转换成10;将10转换成10。
函数
to_date('1992-12-12','yyyy-mm-dd') 将字符串转化成date类型的数据 ,在插入日期的时候可以用到。
to_char   
     1)显示更加细致灵活   
     2)显示指定的货币符号(用到在查)
时分秒都显示出来
select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss')  from emp;

显示12月份入职的员工
select *from emp where to_char(hirdedate,'mm') =12;

 
 

5.windows-oracle实战第五课 --事务、函数的更多相关文章

  1. Oracle笔记(五) 单行函数

    虽然各个数据库都是支持SQL语句的,但是每一个数据库也有每一个数据库自己所支持的操作函数,这些就是单行函数,而如果要想进行数据库开发的话,除了要会使用SQL之外 ,就是要多学习函数. 单行函数主要分为 ...

  2. TensorFlow实战第五课(MNIST手写数据集识别)

    Tensorflow实现softmax regression识别手写数字 MNIST手写数字识别可以形象的描述为机器学习领域中的hello world. MNIST是一个非常简单的机器视觉数据集.它由 ...

  3. [妙味JS基础]第五课:函数传参、重用、价格计算

    知识点总结 函数传参,传的参数=数据类型(即:数值.字符串.布尔.函数.对象.未定义) 通过传参来重用代码 1.尽量保证 HTML 代码结构一致,可以通过父级选取子元素 2.把核心主程序实现,用函数包 ...

  4. oracle学习篇五:组函数,分组统计

    常用组函数: 1.ccount() 求出全部记录数. 2.max() 求出一组最大值 3.min() 求出一组最小值 4.avg() 求出平均值 5.sum() 求和 --1.统计员工数量: sele ...

  5. 【Cocos游戏实战】功夫小子第五课之帮助场景和选关功能的实现

    功夫小子之帮助场景和选关功能的实现 转载请注明出处:http://blog.csdn.net/suool/article/details/46661231 本节课的视频教程地址是: hmsr=teac ...

  6. 【C语言探索之旅】 第二部分第五课:预处理

    内容简介 1.课程大纲 2.第二部分第五课: 预处理 3.第二部分第六课预告:   创建你自己的变量类型 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语 ...

  7. Adafruit的树莓派教程第五课:使用控制电缆

    Adafruit的树莓派教程第五课:使用控制电缆 时间 2014-05-09 01:11:20 极客范 原文 http://www.geekfan.net/9095/ 主题 Raspberry PiM ...

  8. NeHe OpenGL教程 第三十五课:播放AVI

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  9. NeHe OpenGL教程 第十五课:纹理图形字

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

随机推荐

  1. EUI库 - EXML

        EXML是可以运行时加载解析的   <e:Skin class="skins.ButtonSkin" states="up,down,disabled&qu ...

  2. 微服务中一个项目install打包总是失败

    在微服务的一个项目中install打包时总是报错如下: [INFO] Scanning for projects... [INFO] [INFO] -------------------------- ...

  3. prometheus配置简介

    参考网页:https://my.oschina.net/wangyunlong/blog/3060776 global: scrape_interval:             15s evalua ...

  4. PHP实现简单的双色球机选号码

    <?php header('Content-Type: text/html; charset=utf-8'); //PHP实现双色球机选号码 $red = range(1, 33);//初次设定 ...

  5. 深入X64架构(翻译)

    | 本人只是原创翻译,而且翻译也不一定好,纯当锻炼.内容如果英文好的同学,建议直接去看英文原版,比较爽. NBAOL系列2代产品是 windows平台64位的应用程序,在技术测试过程中,遇到一些cra ...

  6. springboot~不用模板执行html文件

    放到在resources/static目录下,创建目录或html文件,均可.如:

  7. JSON整理

    1.什么是JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 2.JSON基于两种结构: (1 )“名称/值“对的集合(A co ...

  8. google docker镜像下载

    https://anjia0532.github.io/2017/11/15/gcr-io-image-mirror/

  9. 解决: java.io.IOException: 打开的文件过多 的问题

    问题 前一阵子公司项目做了一次压力测试, 中间出现了一个问题: 在50多个并发的时候会出现 java.io.IOException: 打开的文件过多 这个异常. 但是在没有并发的时候是不会出现这个问题 ...

  10. nodejs(11)Express 中进行数据库操作

    配置 MySql 数据库环境 mysql 第三方模块的介绍和基本配置 要安装操作数据库的第三方包npm i mysql -S 导入 包 const mysql = require('mysql') 创 ...