oracle学习笔记(二)

一、多行函数又称组合函数(Group Functions)、聚合函数

1、 Types of Group Functions
avg、count、max、min、stddev、sum、variance
avg 求平均数
select avg(nvl(列1,0)) from 表1
count求行数
在where条件中不允许使用聚合函数,但可以使用having avg(列1)>1000
having所起的作用和where一样

二、子查询Subqueries

查询前10行数据
oracle: select * from 表名 where rownum<=10;
sql: select top 10 * from 表名
单行子查询
select * from 表1 where 工资列1>(select avg(工资列1) from 表1)
多行子查询
select * from 表1 where 工资列1 in(select min(工资列1) from 表1 group by 部门列)

三、自定义变量

set verify on/off
show all
help show/set

column lie justify left

四、数据操作语句

1、insert插入语句
向表2里插入数据
oracle:insert into (select 列1,列2 from 表2)values('XXX','XXX');
oracle/sql:insert into(列1,列2)values('XXX','XXX');
从另一个表里复制数据
oracle/sql:insert into 表(列1,列2)select 列1,列2 from 表2

2、update语句
都为: update table set column1='...'[ ,column2='...'] where ...
嵌入子查询的修改
update table set column1=(select column2 form table where columnid=1) where column1='...'

delete删除语句
delete [from] table [where condition]

merge 合并语句
oracle:
merge into 表1 a using 表2 b on (a.id=b.id)
when matched then
update set
a.name=b.name,
a.other=b.other
when not matched then
insert values(b.id,b.name,b.other);
sql:合并insert,update
方法1:
declare @ROWCOUNT int
set @ROWCOUNT=(select count(*) from tb_name where name1='5')
if @ROWCOUNT!=0
update tb_name set name2='55555555' where name1='5'
else
insert into tb_name(name1,name2) values('5','插入')
方法2:
update tb_name set name2='55555555' where name1='6'
if @@ROWCOUNT=0
insert into tb_name(name1,name2) values('6','插入')

五,事务: 隐式、显式的事务

commit提交事务
rollback 回滚事务
locking锁
对并发性系统自动加锁,事务提交后、或回滚后自动解锁。

(0)

相关推荐

  • Oracle学习笔记(一)

    一.基本的查询语句,特殊符号||.制定列的别名AS,唯一标示distinct 1.字符连接符"||"与"+"符 oracle:select  列名||'111111111111111' from 表名sql:select  列名+'111111111111111' from 表名T 2"AS"符号oracle:select  列名 as 新列名 from 表名 (空格,不能有as)新表名sql:select  列名 as 新列名 from 表名T

  • Oracle学习笔记(五)

    组合集总计: group by with rollup/cube grouping sets 子查询按执行方式分:标准子查询.关联子查询 标准子查询:嵌套子查询 标量值查询 case with then 使用exits查询 select user_id,user_name from tb_001 tb where [not] exists (select 'x' from tb_001 where manager_id=tb.user_id ) 关联更新 update table1 alias1

  • Oracle学习笔记(四)

    一.控制用户存取 1.创建修改用户Creating Users Create/alter user new_user identified by password; 例:create user user_1 indentified by pwd_1 alter user user_1 identified by pwd_2 2.给用户授予权限 grant privilege[,privilege] to user [,user|role,public...] 一些系统权限: create ses

  • Oracle学习笔记(六)

    一.oracle oracle服务器有Oracle instace 和Oracle database instance有memory structure 和 background process 组成. memory structure包括shared pool. SGA(System Global Area). SGA包括:Database buffer cache 和 Redo log buffer cache. show sga; show parameter shared; show p

  • oracle学习笔记(三)

    一.创建和管理表 1.创建表语法 create table 表名(column datatype [default expr][,column ...]) default 约束 说明略 2.利用子查询创建表 create table 表名 as select * from u表 二.修改表 1.添加一个新列 oracle:alter table table_name add(column datatype [default expr][,column datatype]...); 2.修改现有的

  • oracle学习笔记(二)

    一.多行函数又称组合函数(Group Functions).聚合函数 1. Types of Group Functions avg.count.max.min.stddev.sum.variance avg 求平均数 select avg(nvl(列1,0)) from 表1 count求行数 在where条件中不允许使用聚合函数,但可以使用having avg(列1)>1000 having所起的作用和where一样 二.子查询Subqueries 查询前10行数据 oracle: sele

  • DB2 UDB V8.1管理学习笔记(二)

    正在看的db2教程是:DB2 UDB V8.1管理学习笔记(二).表空间类型分为SMS和DMS,分别是system management space, database management space. SMS使用方便,简单,无需手工创建和维护数据存储文件.DMS需要手动指定container和存储数据的文件名,并保证有足够磁盘空间可用.  对于一个数据库,至少存在一个page size为4K的系统临时表空间,可以额外建立具有更大page size的用户临时表空间,系统会自动进行使用. 无法用

  • Oracle学习笔记之视图及索引的使用

    目录 一.视图的使用 1.概念 2.视图分类 3.视图语法 4.视图实例 二.索引 1.索引概念 2.索引分类 2.1.按物理存储方式分类 2.2.按逻辑功能分类 3.索引原则 4.索引语法 一.视图的使用 1.概念 视图概念: 视图是基于一个表或多个表或视图的逻辑表(虚表),本身不包含数据,通过它可以对表里面的数据进行查询. 基表:视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中.那些用于产生视图的表叫做该视图的基表. 视图优点: 简化性 安全性 2.视图分类 视图分为简单视图和复

  • Bootstrap3学习笔记(二)之排版

    在上篇文章给大家介绍了BootStrap3学习笔记(一)之网格系统 对于标题,Bootstrap已经修改了h1--h6的样式,如果需要副标题,还可以在其中使用small标记 <h1>h1. Bootstrap heading <small>Secondary text</small></h1> <h2>h2. Bootstrap heading <small>Secondary text</small></h2>

  • Flutter学习笔记(二)创建一个flutter项目

    目录 开发环境 实践 运行 网络环境配置 (1)进入packages\flutter_tools\gradle 文件夹,然后打开flutter.gradle文件.目录如下图所示: (2)进入 flutter\packages\flutter_tools\gradle 文件夹,然后打开resolve_dependencies.gradle文件,目录如下: 本文就是利用androidstudio创建一个flutter项目并且成功运行起来.其中运行的过程,可能涉及到网络环境配置的问题.觉得过于简单的朋

  • python网络编程学习笔记(二):socket建立网络客户端

    1.建立socket 建立socket对象需要搞清通信类型和协议家族.通信类型指明了用什么协议来传输数据.协议的例子包括IPv4.IPv6.IPX\SPX.AFP.对于internet通信,通信类型基本上都是AF_INET(和IPv4对应).协议家族一般表示TCP通信的SOCK_STREAM或者表示UDP通信的SOCK_DGRAM.因此对于TCP通信,建立一个socket连接的语句为:s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)对于UDP通

  • MyBatis学习笔记(二)之关联关系

    今天主要学习的关联关系是一对一关系与一对多关系. 一.一对一关系 还是通过例子来解释说明.(一个妻子对应一个丈夫). 1)数据库信息 create table t_wife( id int primary key auto_increment, wife_name varchar(), fk_husband_id int ); create table t_husband( id int primary key auto_increment, husband_name varchar() );

随机推荐