关于SQL

数据库简介:

数据库分类

关系型数据库模型:

优点:易于维护,可以实现复杂的查询

缺点:海量数据 读取写入性能差,高并发下数据库的io是瓶颈

是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。

非关系型数据库模型:

包含键值存储数据库、列存储数据库(行存储数据库就是关系型数据库)、面向文档数据库、图形数据库(Neo4j)等。

常用列存储数据库:Cassandra。

文档数据库:存储的是文档结构的数据,json、xml等,常用的文档数据库:MongoDB

oracle连接工具:

提高了sqlplus连接数据库,帮助文档:sqlplus-help

示例:sqlplus usernmae/password@127.0.0.1:1521/orcl

orcl是远程数据库服务名,不是数据库名

SID:标识数据库的一个实例,一般一个数据库对应一个实例(集群时一个数据库可以有多个实例)

SERVICE_NAME:服务名,对应的是一个数据库。

配置tnsname.ora时,可以用SERVICE_NAME(建议用),也可以用SID

PostgreSql连接工具:

自带连接工具-psql

psql时它的一个命令行交互式客户端工具,类似于Orcale的命令行工具sqlplus。

接入PostgreSQL数据库:psql -h IP地址 -p 端口 -U 数据库名

例:psql -h localhost -p 5432 -U postgres

postgresql自带图形化客户端工具-pgAdmin(通过浏览器访问、对浏览器有要求)Chrome 72+、Firefox 65+、Edge 44+、Safari 12+

第三方连接工具-Navicat for PostgreSQL

常用的SQL/函数

关于表连接:

左连接 left-join:

以左表的记录为基础的,左表的记录将会全部表示出来,而右边只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。

右连接 right-join:

以右表的记录为基础的,右表的记录将会全部表示出来,而左边只会显示符合搜索条件的记录。左表记录不足的地方均为NULL。

全连接 full-join:

左表和右表都不做限制,所有记录都显示,两表不足的地方用null填充。

内连接 inner-join:

两表都限制,两表都有的数据才显示。

等值连接:

group by、having用法:

group by对查询的结果进行分组,相同组合的分组条件在结果集中只显示一行记录。使用group by从句时候,通过添加聚合函数(COUNT()、SUM、MAX()、MIN()等)可以使数据聚合。

having是在分组的结果的基础上过滤,和where不一样,where是在分组之前的过滤

union 和 union all的用法:

union对两个结果集取并集不包含重复结果同时进行默认规则的排序。而union all对两个结果集去并集,包括重复行,不进行排序。

union需要进行重复值扫描,效率低,如果没有要删除重复行,应该使用union all。

with子句的用法:

使用SQL with子句的优点:

增加了SQL的易读性,如果构造了多个子查询,结果会更清晰。更重要的是:“一次分析,多次使用”。当在一个sql语句中需要多次使用到某个子查询的结果的时候,可以提升sql语句的性能。

分析函数:

是以一定的方法在一个与当前行相关的结果子集中进行计算,也成为窗口函数。

例如聚集函数有:avg、count、min、max、sum等等

字符函数有:concat(str1,str2)字符串拼接函数、length(str)返回表达式中的字符数、lower(str)将字符串转换为小写、upper(str)将字符串转换为大写、nvl(x,value)如果x为null则返回value否则返回x值本身、replace(x,search_string,replace_string)从字符串x中搜搜search_string字符串,用replace字符串替换

数值函数有:abs(value)返回绝对值、ceil(value)返回大于等于value的最小整数、floor(value)返回小于等于value的最大整数、round(value,n)对value四舍五入,保存小数点右侧的n位。

oracle、postgresql常用函数差异:

Oracle创建编写sql时,默认大写,没有使用双引号对表面和列明进行限定的时候,表名不论是大小写,最后都默认成大写。

postgresql创建表和字段时对大小写敏感,编写sql默认小写,如果表面、字段名要大写需要使用双引号。

常见语句差异:

-decode

oracle中:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

postgresql:CASE WHEN condition1 THEN result1

WHEN condistion2 THEN result2

...

WHEN condistionN THEN resultN

ELSE default_result

END

-merge into

(-用的很少)

分页:

rownum :

是对结果集加的一个伪列,即先查到结果集之后再加上去的一个列。

它总是从1开始排起,所以选出的结果不可能跳过1,而有其他大于1的值。

rownum仅仅针对新的结果集动态标记,而排序并不会产生新的结果集。

limit:

select * from persons limit A offset B;

A就是需要多少行,B就是查询的起点位置。

备份还原(小数据量)

oracle备份还原:

postgresql备份

还原-pgadmin

postgresql备份还原:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/11775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习中的聚类

目录 认识聚类算法 聚类算法API的使用 聚类算法实现流程 聚类算法模型评估 认识聚类算法 聚类算法是一种无监督的机器学习算法。 它将一组数据分成若干个不同的群组,使得每个群组内部的数据点相似度高,而不同群组之间的数据点相似度低。常用的相似…

采用java+B/S开发的全套医院绩效考核系统源码springboot+mybaits 医院绩效考核系统优势

采用java开发的全套医院绩效考核系统源码springbootmybaits 医院绩效考核系统优势 医院绩效管理系统解决方案紧扣新医改形势下医院绩效管理的要求,以“工作量为基础的考核方案”为核心思想,结合患者满意度、服务质量、技术难度、工作效率、医德医风等管…

Adobe Media Encoder ME v24.3.0 解锁版 (视频和音频编码渲染工具)

Adobe系列软件安装目录 一、Adobe Photoshop PS 25.6.0 解锁版 (最流行的图像设计软件) 二、Adobe Media Encoder ME v24.3.0 解锁版 (视频和音频编码渲染工具) 三、Adobe Premiere Pro v24.3.0 解锁版 (领先的视频编辑软件) 四、Adobe After Effects AE v24.3.0 解锁版 (视…

【2024年5月备考新增】】 考前篇(4)《官方平台 - 考生模拟练习平台常用操作(三)》

9 如何绘制七格图 第一步:选择图形元件“网络计划”中的七格图元件,在绘图区点击 第二步:批量复制(先选中元件,按Ctrl+C, 再 Ctrl+V) 七格形状,有多少活动复制多少个 选中多个图形后,可点左上角的对齐工具进行对齐; 第三步:逐个标注每个活动的参数,使用箭线连接每个…

从XML配置角度理解Spring AOP

1. Spring AOP与动态代理 1.1 Spring AOP和动态代理的关系 Spring AOP使用动态代理作为其主要机制来实现面向切面的编程。这种机制允许Spring在运行时动态地创建代理对象,这些代理对象包装了目标对象(即业务组件),以便在调用目标对…

【cpp】并发多线程 Unique

1. unique_lock 何时锁定资源。 unique_lock lock1 时候&#xff0c;还没有锁住资源。 实际是后面&#xff0c;显式的出发&#xff1a; 比如&#xff0c; lock.lock, 或 std::lock(lk1,lk2), 或者条件变量CV.wait(mtx, []{!re})。 #include <iostream> #include <mu…

LVS + Keepalived 高可用群集

一、准备环境 主keepalived&#xff1a;172.168.1.11 lvs 备keepalived&#xff1a;172.168.1.12 lvs web1&#xff1a;172.168.1.13 web2&#xff1a;172.168.1.14 vip&#xff1a;172.168.1.100 客户机访问 关闭防火墙 二、配置 主keepalived 服务器 1. 安装…

[嵌入式系统-78]:RT-Thread:线程管理的基本原理与应用

目录 一、RTT线程的特点 二、RTT线程机制 2.1 线程的属性与线程控制块详解 2.2 线程的调度 2.3 线程的切换 2.5 系统线程 三、线程的调度机制 3.1 线程创建与删除 1、线程控制块 2、线程栈 3、入口函数 4、线程的创建方式 &#xff08;1&#xff09;静态线程初始化函…

【手势操作-复习前一天的内容-预习今天的内容 Objective-C语言】

一、昨天呢,我们学习的是这个,事件 1.事件这一块儿呢,iOS事件,分为三大类, 1)触摸事件 2)加速计事件 3)远程控制事件 2.这个里边呢,我们主要学习的是这个触摸事件,触摸事件里边,就是Touch,touchesBegan:方法里边,有一个touches参数,它是set类型的, 3.Set,…

Redis:分布式系统

文章目录 认识RedisRedis和MySQLRedis的场景Redis的设计 分布式单机架构应用数据分离架构应用服务集群架构 认识Redis 在开始Redis学习前&#xff0c;要先认识一下Redis Redis的设计&#xff0c;是想要把它当做是一个数据库&#xff0c;一个缓存&#xff0c;或者说是一个消息…

C语言 | Leetcode C语言题解之第87题扰乱字符串

题目&#xff1a; 题解&#xff1a; struct HashTable {int key;int val;UT_hash_handle hh; };void modifyHashTable(struct HashTable** hashTable, int x, int inc) {struct HashTable* tmp;HASH_FIND_INT(*hashTable, &x, tmp);if (tmp NULL) {tmp malloc(sizeof(st…

Nginx - location中的匹配规则和动态Proxy

文章目录 官网location 规则详解动态Proxy使用多个 if 指令指定不同的 proxy_pass根据参数选择不同的 proxy_pass 官网 https://nginx.org/en/docs/http/ngx_http_core_module.html#location location 规则详解 Nginx的location指令工作原理如下&#xff1a; 位置匹配&#…

vs2019 c++ 对左值引用取地址得到的是谁的地址?

&#xff08;1&#xff09; 测试一下&#xff1a; 对左值引用取地址&#xff0c;返回的地址是其引用的变量的地址&#xff0c;而非自身的地址。 &#xff08;2&#xff09; 用反汇编看一下&#xff0c;为了代码容易看懂&#xff0c;改一下源代码&#xff0c;不使用 cout 这个复…

【格式控制】(中北大学-程序设计基础(2))

目录 题目 源码 结果示例 题目 从键盘输入一批数值&#xff0c;要求保留3位小数&#xff0c;在输出时上下行小数点对齐。 源码 #include <iostream>using namespace std;int main(void) {double a, b, c;cout << "请输入三个实数&#xff0c;中间用空格…

阿里云OSS配置跨域及域名访问

1、配置跨域 进入对象存储OSS–>OSS存储桶–>数据安全–>跨域设置–>创建规则 2、配置跨域 Etag x-oss-request-id3、配置结果如下 4、数据源配置 切换到数据管理–>静态页面 配置根页面 保存结果如下 5、配置域名访问 绑定域名 添加txt记录 验证绑定 …

git仓库使用

git仓库是会限制空间大小限制的 git网络库的容量限制_github仓库大小限制-CSDN博客 git是用于管理github的工具 电脑左下角搜索git打开GitBash.exe 进入到要下载到本地的目录 下载到本地的文件不要更改&#xff01; 如果要使用请务必把文件复制到别的空间去再在这个别的空间…

论文阅读记录--关于水文系统的传递函数

文章目录 J-schuite的文章,地下水系统的响应的功率谱分析--传递函数1. 什么是冲激响应函数与传递函数?2. 地下水流系统中传递函数的求解3. J-schuite文章中传递函数的复现J-schuite的文章,地下水系统的响应的功率谱分析–传递函数 1. 什么是冲激响应函数与传递函数? 在信号…

社交媒体数据恢复:华为畅连

尊敬的用户您好&#xff0c;以下是关于社交软件华为畅连的聊天记录数据恢复教程。在华为手机中&#xff0c;我们可以通过华为云服务和第三方软件来恢复删除的聊天记录。以下是详细的步骤&#xff1a; 第一步&#xff1a;登录华为云服务 请在您的华为手机上找到并打开“云服务”…

网络编程:服务器模型-并发服务器-多进程

并发服务器概念&#xff1a; 并发服务器同一时刻可以处理多个客户机的请求 设计思路&#xff1a; 并发服务器是在循环服务器基础上优化过来的 &#xff08;1&#xff09;每连接一个客户机&#xff0c;服务器立马创建子进程或者子线程来跟新的客户机通信 &#xff08;accept之后…

SpringBoot报空指针错:java.lang.NullPointerException

虽然报空指针错误的原因可能有很多种&#xff0c;但是我还是写上我的报错原因&#xff0c;以此与各位共勉~ 在这里提前说一句&#xff0c;AI虽然强大&#xff0c;但是还是要谨慎使用啊(血的教训)~ 这里先截图我错误的地方&#xff1a; 前端能成功传进来值&#xff0c;后台控制…