zoukankan      html  css  js  c++  java
  • Orcale 学习 持续更新......

    关键字:DISTINCT 
    格式:SELECT DISTINCT 列名称 FROM 表名称
    官方用语:关键词 DISTINCT 用于返回唯一不同的值。
    大白话:用distinct可以去重。
    关键字:trim()
    格式:
    trim(列名) ltrim() 去掉左空格 rtrim() 去掉右空格
    官方用语:除去两端空格
    大白话:用trim()函数去空格
    关键字:order by
    格式:SELECT 列名1,列名2 FROM Orders ORDER BY 列名官方用语:排序大白话:排序,默认按照升序,降序(DE关键字:for update
    格式:sql语句  for update
    官方用语:一种行级锁,又叫排它锁一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,
    其它用户只能查询但不能更新被加锁的数据行.如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即
    使多个用户对一个表均使用了共享更新,但也不允许两个事务同时对一个表进行更新,真正对表进行更新时,是以独占
    方式锁表,一直到提交或复原该事务为止。行锁永远是独占方式锁。
    重点:
    明确指定主键且数据存在  row lock
    格式:select* from table where id=3 for update
    明确主键且数据不存在  无lock
    格式:select * from table where id=xx for update
    主键不明确  table lock
    格式:select * from where id = '1%'for update
    无主键    table lock
    格式; select 8 from where name = 'Tom' for update




    注意的点:

    Oracle
    1.当且仅当要修改数据时,Orcale才会锁定数据(行级锁),不会提升到块级,页级,表级。
    2.Orcale不会为读取数据而锁定数据,简单读取不会在行上产生锁。(除了使用for update)
    3.平时常用的行级锁(Row leavel Lock) 常用的事务锁,没有开销
      a. read 不 阻塞 read
      b. read 不 阻塞 write
      c. write 不 阻塞 read
      d. write 不 阻塞 write(不同行)
    4.Rollback Segments是在你数据库中的一些存储空间,它用来临时的保存当数据库数据发生改变时的先前值,Rollback Segment主要有两个目的:
      a.如果因为某种原因或者其他用用户想要通过ROLLBACK声明来取消一个人的数据操作,数据就会复原到之前为改变时的值。这种情况只在transaction的过程中有效,
       如果用户执行了COMMIT命令,那么ROLLBACK SEGMENT里面的值就会标识为失效的,数据改变就将永久化。
      b.另一个目的是当有并发的session访问了一个数据值改变但事务还没有提交的表。如果一个SELECT语句开始读取一个表同时一个事务也在修改这个表的值,那么修改
       前的值就会保存到rollback segment里面,SELECT语句也是从ROLLBACK SEGMENT里面读取表的值。

      5.特别注意 group by的用法

      在plsql中 计算函数 和 普通列名,同查会出现,不是单组分组函数 的报错。

      错误格式:select  a(普通列名),sum(b)(计算函数) from table(表名);
    
      正确格式:select  a,sum(b) as b from table group by a;
    

      

     



    符号:<>表示不等于与!=表示相同,但避免使用<>

    MYSQL
    1.由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的
    资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住)。

  • 相关阅读:
    图床_背景
    图床_摘要
    图床_二维码
    在ubuntu上搭建交叉编译环境---arm-none-eabi-gcc
    在ubuntu上搭建交叉编译环境---arm-none-eabi-gcc
    python的sqlalchemy框架
    python的sqlalchemy框架
    python的sqlalchemy框架
    python的sqlalchemy框架
    烂泥:centos6 yum方式升级内核
  • 原文地址:https://www.cnblogs.com/money131/p/12970820.html
Copyright © 2011-2022 走看看