数据库基础知识-01-C-2020-08-10

日志编号说明
C-2020-08-10第一次创建

SQL

SQL 遵循声明式编程范式。声明式编程是以数据结构的形式来表达程序执行的逻辑。声明式编程与命令式编程最大的区别就在于,声明式编程只是告诉计算机需要做什么,但是不用体现出具体怎么做。

这篇文章的作用主要是列举,列举出日常会用的内容,起检索作用。

SQL中常用操作符,方法

any,some,all

部分匹配/全匹配。
其中any和some的效果一样。

select sal from emp where sal > any(1000,1500,3000);

between x and y

范围内的值,这个是闭区间。

and or

在SQL中这两个字使用品率很高,其中and的优先级高于or,体现出来的效果去下:

select * from tbl_name where a = 'a' or b = 'b' and c='c';
--等同于
select * from tbl_name where a = 'a' or (b = 'b' and c='c');

exists(子查询)

exists表示存在,后面括号中都会跟上一个子查询。exists做的事情,当子查询能够通过传入的参数查询到对应记录(这里的记录不要求是什么固定字段。也就是任何字段都可以,也有常见的查个1),就表示满足子查询的条件。
注意,由于exists会把传入的每个值都执行一次子查询来判断是否满足条件,因此同等条件下,使用in的执行效果比exists更有效率。

like

like表示模糊查询,在like的条件中可以用%和_当占位符。其中%表示任意字符出现任意次, _表示任意字符出现1次。

,在SQL有一些字符有特殊意义,此时在进行匹配的时候需要用到转义字符。SQL中的转义字符是escape。

escape

转义字符。SQL中由于一些字符有特殊意义,比如%这样的字符。当需要把这些类型的字符当做本身而非特殊意义使用时,就需要escape了。

select * from tbl_name where col_A like '%a%%' escape 'a';

上面的例子是想查询col_A中的值包含“a%”的内容。但是因为%本身在SQL里有特殊意义,因此使用了转义字符 escape。
escape的用法就是传入一个目标字符,之后在目标字符之后出现的第一个字符当做字符本身,而非特殊意义来使用。

+,-,*,/

在进行算数运算时,如果参与运算的参数中包括null,则整体运算结果就是null。

nvl(arg1,arg2)

去除null值。如果arg1是null,则返回arg2的值,否则返回arg1的值。

union

并集。将多个查询的结果集进行合并,合并过程里自动去除重复数据,重复的数据只保存一份。

union all

全集。将多个查询的结果集进行合并,合并过程里如果出现重复内容,都会进行保留。

intersect

交集。将多个查询的结果集进行交集操作,构造交集的过程里如果出现重复内容,会自动去重,重复内容只保留一份。

intersect all

交集。与上面的intersect不同的在于,这样算出来的交集不会自动去除重复数据,构造交集的过程里如果出现重复数据,都会进行保留。

minus

差集。将多个查询的结果集进行差集操作。
注意,作为minus的两个结果集,如果顺序不同,得到的结果可能不同。因为对于minus而言,是为了找出只存在第一个结果集,不存在第二个结果集中的数据。

--只存在于A,不存在于B
result_set_A minus result_set_B
--只存在于B,不存在于A
result_set_B minus result_set_A

group by having

在分组之后,可以用having 条件对分组结果进行筛选。

统一列举一些常见函数

函数意义
concat(str1,str2)拼接字符串
initcap(column)将结果集中对应字段查询结果的首字母大写
lower(str)小写
upper(str)大写
lpad(str,legth,[pad_str])在str左侧填充pad_str,使str的长度达到Length,默认pad_str是空格
rpad(str,legth,[pad_str])在str右侧填充pad_str,使str的长度达到Length,默认pad_str是空格
ltrim(str1,[str2])左去除str1中包含的str2,str2默认是空格
rtrim(str1,[str2])右去除str1中包含的str2,str2默认是空格
length(str)返回字符串长度
trim(str1 from str2)oracle里面没有这个方法好像。
round(number ,n)四舍五入number,n表示小数点后几位
trunc(number,n)截取数值number,n表示小数点后几位
mod(x,y)返回x对y取余的结果
ceil(number)向上取整
floor(number)向下取整
sum()求合
COUNT()计数器
MAX()/MIN()最大值/最小值
AVG()平均值

数据库隔离级别

数据库隔离级别有四个,分别是读未提交,读已提交,可重复读,序列化。
针对不同的隔离级别,会出现脏读,不可重复读,幻读这三种异常情况。

隔离级别异常
读未提交脏读,不可重复读,幻读
读已提交不可重复读,幻读
可重复读幻读
序列化
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值