oracle入门笔记二

*****一、事务与锁(TCL Transaction Controller Language)

1、什么是事务

事务是把一堆SQL语句绑定在一起执行,在执行过程中,如果有一条SQL语句执行失败,

那么所有的数据都会回滚到执行前的状态,要么一起成功,要么一起失败。

使用begin end语句块把SQL语句绑定在一起

2、事务有两种

commit 提交事务

rollback 回滚事务

只有DML才会用到事务

3、什么是锁

锁是事务的保证,事务开启后就会产生锁,直到事务被提交或回滚,锁被释放,如果事务一直

不提交,锁就一直存在着,其他线程就不能修改此数据,不能更改表结构。

不能修改此数据是行共享锁,锁数据

不能更改表结构是共享锁, 锁表

二、DQL(数据库查询语言)

1、普通查询语句

select * from 表名 全部行全部列

select 字段1, 字段2 from 表名 全部行部分列

select 字段1, 字段2 from 表名 where 条件字段 = 值 部分行部分列

2、where

条件:= != <> > >= < <=

多条件查询:条件与条件之间使用and或or进行连接

and:并且的关系,两个条件都必须满足

or:或者的关系,两个条件满足一个就可以

3、模糊查询

在where条件中使用like查询,称为模糊查询,只有字符类型的字段才能做模糊查询,

模糊查询类型如下:

a、字段 like '%a' 前模糊查询,以a字母结尾的都会被查询出来

b、字段 like 'a%' 后模糊查询,以a字母开头的都会被查询出来

c、字段 like '%a%' 完全模糊查询,包含a字母的都会被查询出来

d、字段 like '_a%' 第二个字母是a的都会被查询出来

e、字段 like 'a' 总长度是3,第二个字母是a的都会被查询出来

注:模糊查询查询效率很低,数据量过多时,查询不出来,目前使用搜索引擎技术代替

在数据库查询时,能不用模糊查询尽量避免

4、in与not in查询

in与not in是判断某个字段的值是否在指定范围内,格式如下:

in查询:

select * from 表名 where 字段 in (值1, ......, 值N);

not in查询

select * from 表名 where 字段 not in (值1, ......, 值N);

5、嵌套查询

一条SQL语句包含另一条SQL语句,这样的查询称为嵌套查询,一般用于in查询,嵌套查询是

有内向外执行,格式如下:

select * from 表名 where 字段 in (

select 字段 from 表名

);

注:内查询的结果是一个值,外查询条件请使用=,多个值用in

6、exists查询

exists查询与in查询是没有区别的,两种书写格式,格式如下:

select * from 表名 t2 where exists (

select 字段 from 表名 t1 where t1.字段 = t2.字段

);

*****7、in与exists区别

in与exists都是用于嵌套查询,查询结果没有任何区别

外表数据大于内表数据,使用in

内表数据大于外表数据,使用exists

8、去重查询

在Oracle中有三种方式可以去重,使用distinct关键字去重,distinct关键字必须写select后面

第一个,distinct后面有几个字段,就根据几个字段去重,格式如下:

select distinct 字段1, 字段2 from 表名;

9、排序查询

在SQL语句中使用order by进行排序,asc表示升序、desc表示降序,默认是升序,

可以省略不写,格式如下:

a、升序(默认)

select * from 表名 order by 排序字段 asc;

b、降序

select * from 表名 order by 排序字段 desc;

c、混合使用

select * from 表名 order by 排序字段1 asc, 排序字段2 desc;

注:排序字段靠前优先级高,排序字段靠后面优先低

10、聚合函数

max() 最大值

min() 最小值

avg() 平均值

sum() 总和

count() 统计个数

相关推荐
橙序研工坊2 分钟前
MySQL的进阶语法7(索引-B+Tree 、Hash、聚集索引 、二级索引(回表查询)、索引的使用及设计原则
数据库·sql·mysql
Bruce-li__3 分钟前
深入理解Python asyncio:从入门到实战,掌握异步编程精髓
网络·数据库·python
小脑斧爱吃鱼鱼8 分钟前
鸿蒙项目笔记(1)
笔记·学习·harmonyos
小光学长38 分钟前
基于vue框架的智能服务旅游管理系统54kd3(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
Bonnie_121539 分钟前
07-MySQL-事务的隔离级别以及底层原理
数据库·mysql
ETLCloud数据集成社区44 分钟前
ETLCloud是如何通过Oracle实现CDC的?
数据库·oracle·etl·实时数据同步
KATA~1 小时前
解决MyBatis-Plus枚举映射错误:No enum constant问题
java·数据库·mybatis
xyliiiiiL1 小时前
一文总结常见项目排查
java·服务器·数据库
shaoing1 小时前
MySQL 错误 报错:Table ‘performance_schema.session_variables’ Doesn’t Exist
java·开发语言·数据库
用户6279947182621 小时前
南大通用GBase 8s 获取表的约束与索引列信息
数据库