MySQL的基本语句(SELECT型)
基本MySQL语句
- SELECT
- SELECT ······ FROM ······
- 列的别名
- 去除重复行
- 空值
- 着重号
- 算术运算符
- 加法( + )
- 减法( - )
- 乘法( * )
- 除法( / 或DIV)
- 求模( % 或MOD)
- 比较运算符
- 等于( = )
- 安全等于( <=> )
- 不等于( != 或 <> )
- 小于( < )
- 小于等于( <= )
- 大于( > )
- 大于等于( >= )
- 属于( IN (value1,value2,...) )
- 不属于( NOT IN (value1,value2,...) )
- 为空( IS NULL )
- 不为空( IS NOT NULL )
- 最小值( LEAST(value1,value2,...) )
- 最大值( GREATEST(value1,value2,...) )
- 两值之间( value BETWEEN ······ AND ······ )
- 模糊匹配( LIKE )
- 正则表达式( REGEXP )
- 逻辑运算符
- 逻辑非( ! 或 NOT )
- 逻辑与( && 或 AND )
- 逻辑或( || 或 OR )
- 逻辑异或( XOR )
SELECT
SELECT ······ FROM ······
从表中查找某数据或者符合相关要求的数据。
SELECT 所查找的数据
FROM 数据表;
SELECT emp_id,emp_name
FROM emp;
# * 代表所有数据,即查找符合要求的所有数据列
SELECT *
FROM emp;
列的别名
用别名替换所要输出的数据列名。
SELECT 原要查询的数据列名 别名
FROM 数据表;
或
SELECT 原要查询的数据列名 AS 别名
FROM 数据表;
SELECT emp_name name,emp_id
FROM emp;
SELECT emp_name AS name,emp_id
FROM emp;
去除重复行
查找去除存在的重复行数据后的数据。
SELECT DISTINCT 所要查找的数据列
FROM 数据表;
SELECT DISTINCT salary
FROM emp;
空值
NULL 表示空值,空值代表里边没有数据,不代表它等于 0 ,同时空值也不代表空字符串,空字符串的长度是 0 ,而空值的长度为空,并且空值与任何数计算,计算结果都为空,空值在MySQL中也占有存储空间。
SELECT password*10
FROM t_user;
着重号
如果数据库表名或者其他名与数据库关键字冲突时,我们可以用着重号(``)将数据库表名或者其他名标注出来,让数据库得以知道该值不是数据库关键字。
SELECT password AS `order`
FROM t_user;
算术运算符
加法( + )
整数 + 整数 = 整数
整数 + 浮点数 = 浮点数
整数 + 非数值类型 = 整数/浮点数(‘0’ 、‘1’等可以转换为相应数值的转换后进行运算,‘a’、’%'等不可以转换为相应数值的当作 0 进行运算)
SELECT 所需查找的数据列 + 整数/浮点数
FROM 数据表;
SELECT salary+1000
FROM emp;
减法( - )
整数 - 整数 = 整数
整数 - 浮点数 = 浮点数
整数 - 非数值类型 = 整数/浮点数(‘0’ 、‘1’等可以转换为相应数值的转换后进行运算,‘a’、’%'等不可以转换为相应数值的当作 0 进行运算)
SELECT 所需查找的数据列 - 整数/浮点数
FROM 数据表;
SELECT salary-1000
FROM emp;
乘法( * )
整数 * 整数 = 整数
整数 * 浮点数 = 浮点数
浮点数 * 浮点数 = 浮点数
SELECT 所需查找的数据列 * 整数/浮点数
FROM 数据表;
SELECT emp_id,salary*4.78 AS salary
FROM emp;
除法( / 或DIV)
数 / 整数 = 浮点数(最多保留4位小数)
数 / 整数1 = 它本身
数 / 浮点数1 = 浮点数(数值为它本身,最多保留4位小数)
0不能作为除数,否则计算结果为NULL
SELECT 所需查找的数据列 / 整数/浮点数
FROM 数据表;
SELECT emp_id,salary/4.78 AS salary
FROM emp;
求模( % 或MOD)
SELECT 所需查找的数据列
FROM 数据表
WHERE 某数据列 % 某值 = 某条件;
#筛选出id为偶数的员工的工资
SELECT emp_id,salary
FROM emp
WHERE emp_id % 2=0;
比较运算符
等于( = )
- 如果等号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的是每个字符串中字符的ANSI编码是否相等。
- 如果等号两边的值都是整数,则MySQL会按照整数来比较两个值的大小。
- 如果等号两边的值一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较。
- 如果等号两边的值、字符串或表达式中有一个为NULL,则比较结果为NULL。
- 不能直接进行比较 “NULL=NULL”,比较结果为 0 。
SELECT 1=1,1=3,2='b',2='2','a'='a','abd'='abcd',1+3=2+2,1+3=2+3,6=NULL,NULL=NULL
FROM DUAL;
安全等于( <=> )
- 如果等号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的是每个字符串中字符的ANSI编码是否相等。
- 如果等号两边的值都是整数,则MySQL会按照整数来比较两个值的大小。
- 如果等号两边的值一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较。
- 可以直接进行比较 “NULL=NULL”,比较结果为 1 。
SELECT 1=1,1=3,2='b',2='2','a'='a','abd'='abcd',1+3=2+2,1+3=2+3,6<=>NULL,NULL<=>NULL
FROM DUAL;
不等于( != 或 <> )
-
用于判断两边的数字、字符串或者表达式的值是否不相等,如果不相等则返回1,相等则返回0。
-
不等于运算符不能判断NULL值。如果两边的值有任意一个为NULL,或两边都为NULL,则结果为NULL。
-
如果等号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的是每个字符串中字符的ANSI编码是否不相等。
-
如果等号两边的值都是整数,则MySQL会按照整数来比较两个值的大小。
-
如果等号两边的值一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较。
SELECT 1!=1,1<>3,2!='b',2<>'2','a'!='a','abd'<>'abcd',1+3!=2+2,1+3<>2+3,6!=NULL,NULL<>NULL
FROM DUAL;
小于( < )
- 如果小于号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的是每个字符串中字符的ANSI编码是否相等。
- 如果小于号两边的值都是整数,则MySQL会按照整数来比较两个值的大小。
- 如果小于号两边的值一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较。
- 如果小于号两边的值、字符串或表达式中有一个为NULL,则比较结果为NULL。
- 判断结果若小于则为1,若不小于则为0,但不能与 NULL 进行比较。
#筛选出工资小于3000的员工id,姓名和工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE salary < 3000;
小于等于( <= )
- 如果小于等于号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的是每个字符串中字符的ANSI编码是否相等。
- 如果小于等于号两边的值都是整数,则MySQL会按照整数来比较两个值的大小。
- 如果小于等于号两边的值一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较。
- 如果小于等于号两边的值、字符串或表达式中有一个为NULL,则比较结果为NULL。
- 判断结果若小于等于则为1,若不小于等于则为0,但不能与 NULL 进行比较。
#筛选出工资小于等于3000的员工id,姓名和工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE salary <= 3000;
大于( > )
- 如果大于号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的是每个字符串中字符的ANSI编码是否相等。
- 如果大于号两边的值都是整数,则MySQL会按照整数来比较两个值的大小。
- 如果大于号两边的值一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较。
- 如果大于号两边的值、字符串或表达式中有一个为NULL,则比较结果为NULL。
- 判断结果若大于则为1,若不大于则为0,但不能与 NULL 进行比较。
#筛选出工资大于3000的员工id,姓名和工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE salary > 3000;
大于等于( >= )
- 如果大于等于号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的是每个字符串中字符的ANSI编码是否相等。
- 如果大于等于号两边的值都是整数,则MySQL会按照整数来比较两个值的大小。
- 如果大于等于号两边的值一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较。
- 如果大于等于号两边的值、字符串或表达式中有一个为NULL,则比较结果为NULL。
- 判断结果若大于等于则为1,若不大于等于则为0,但不能与 NULL 进行比较。
#筛选出工资大于等于3000的员工id,姓名和工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE salary >= 3000;
属于( IN (value1,value2,…) )
筛选出数据值= value1 或 =value2 或 =value3 ······的值,value1,value2,value3······没有先后顺序之分。
#筛选出工资为3000或4000或5000的员工id,姓名和工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE salary IN (3000,4000,5000);
不属于( NOT IN (value1,value2,…) )
筛选出数据值!= value1 和 !=value2 和 !=value3 ······的值,value1,value2,value3······没有先后顺序之分。
#筛选出工资不为3000、4000、5000的员工id,姓名和工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE salary NOT IN (3000,4000,5000);
为空( IS NULL )
判断值、字符串或表达式是否为NULL,为NULL则为1,不为NULL则为0。
#筛选出电话为NULL的员工的id和姓名
SELECT emp_id,emp_name
FROM emp
WHERE telephone-2000 IS NULL;
不为空( IS NOT NULL )
判断值、字符串或表达式是否为NULL,为NULL则为0,不为NULL则为1。
#筛选出电话不为NULL的员工的id和姓名
SELECT emp_id,emp_name
FROM emp
WHERE telephone-2000 IS NOT NULL;
最小值( LEAST(value1,value2,…) )
- 多个整数值进行比较,则输出值最小的整数。
- 多个整数和浮点数值进行比较,则将值最小的以浮点型输出。
- 多个表达式值进行比较,则将表达式计算后的最小结果值输出。
- 多个字符串进行比较,则对每个字符同时进行比较,如果该字符最小,则认定该字符串最小,直接输出。
- 如果进行比较的值存在空值,则直接将NULL值输出。
#筛选出多个值中的最小值
SELECT LEAST(1,2,3),LEAST(1.5,2,1),LEAST(1+4,NULL,1-9),LEAST('adsdftas','1375896','fesa')
FROM DUAL;
最大值( GREATEST(value1,value2,…) )
- 多个整数值进行比较,则输出值最大的整数。
- 多个整数和浮点数值进行比较,则将值最大的以浮点型输出。
- 多个表达式值进行比较,则将表达式计算后的最大结果值输出。
- 多个字符串进行比较,则对每个字符同时进行比较,如果该字符最大,则认定该字符串最大,直接输出。
- 如果进行比较的值存在空值,则直接将NULL值输出。
#筛选出多个值中的最大值
SELECT GREATEST(1,2,3),GREATEST(1.5,2,1),GREATEST(1+4,NULL,1-9),GREATEST('adsdftas','1375896','fesa')
FROM DUAL;
两值之间( value BETWEEN ······ AND ······ )
判断某值范围是否属于 [a,b] ,若属于则为1,若不属于则为0,同时a 和 b 必须满足 a<=b。
#筛选出工资属于[3000,4000]的员工id,姓名和工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE salary BETWEEN 3000 AND 4000;
模糊匹配( LIKE )
LIKE运算符主要用来匹配字符串,通常用于模糊匹配,如果满足条件则返回1,否则返回0。如果给定的值或者匹配条件为NULL,则返回结果为NULL。
‘a%’:以 a 或 A 开头的字符串
‘%a%’:存在 a 或 A 的字符串
‘a%’:以 a 或 A 结尾的字符串
‘a%':第 2 个字符是 a 或 A 的字符串
‘__a%’:第 3 个字符是 a 或 A 的字符串
'_%’:第 2 个字符是 _ 的字符串
#名字是以 a 或 A 开头的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name LIKE 'a%';
#名字存在 a 或 A 的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name LIKE '%a%';
#名字是以 a 或 A 结尾的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name LIKE '%a';
#名字中第二个字母是 a 或 A 的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name LIKE '_a%';
#名字中第三个字母是 a 或 A 的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name LIKE '__a%';
#名字中第二个符号是 _ 的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name LIKE '_\_%';
#名字中第二个符号是 _ 的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name LIKE '_$_%' ESCAPE '$';
正则表达式( REGEXP )
- ‘^value’匹配以 value 后面的字符开头的字符串。
- ‘value$’匹配以 value 前面的字符结尾的字符串。
- ‘value1.value2’匹配 value1 和 value2之间存在一个字符的字符串。注:几个 ‘.’ 代表之间存在几个字符。
- “[value1value2···]”匹配包含有 value1 或 value2 或 value3 的字符串。例如,“[abc]”匹配“a”或“b”或“c”,“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。
- ‘value1value2’匹配在 value2 之前存在零个或多个 value1 的字符串。例如,“x”匹配任何数量的‘x’字符,“[0-9]”匹配任何数量的数字,而“”匹配任何数量的任何字符。
- ‘value+’匹配至少存在一个或多个value的字符串。
- '[^…]匹配不包含[]内的任何一字符的字符串。
- 'value{n}'匹配至少包含 n 次连续出现的 value 字符的字符串。
- 'value{n,m}'匹配至少包含 n 次连续出现的 value 字符,并且至多包含 m 次连续出现的 value 字符的字符串。
#名字是以 a 开头的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name REGEXP '^a';
#名字是以 a 结尾的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name REGEXP 'a$';
#名字中存在 a、b、c 字母的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name REGEXP '[a-c]';
#名字中存在 a 和 c 且 两字符之间间隔一个字符的员工的id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name REGEXP 'a.c';
#名字中包含 a 和 x 且在 x 之前存在零个或多个 a 的员工的id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name REGEXP 'a*x';
#名字中包含一个或多个 if 的员工的id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name REGEXP 'if+';
#名字中不包含 if 的员工的id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name REGEXP '[^if]';
#名字中至少有 2 次连续出现a的员工的id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name REGEXP 'a{2}';
#名字中至少有 1 次,至多有 2 次连续出现a的员工的id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name REGEXP 'a{1,2}';
逻辑运算符
逻辑非( ! 或 NOT )
当给定的值为0时返回1;当给定的值为非0值时返回0;当给定的值为NULL时,返回NULL。
#联系方式不为NULL的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE !(telephone <=> NULL);
#联系方式不为NULL的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE telephone IS NOT NULL;
逻辑与( && 或 AND )
当给定的所有值均为非0值,并且都不为NULL时,返回1;当给定的一个值或者多个值为0时则返回0;否则返回NULL。
#姓名以 a 开头同时也以 a 结尾的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name LIKE 'a%' && emp_name LIKE '%a';
#姓名以 a 开头同时也以 a 结尾的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE emp_name LIKE 'a%' AND emp_name LIKE '%a';
逻辑或( || 或 OR )
当给定的值都不为NULL,并且任何一个值为非0值时,则返回1,否则返回0;当一个值为NULL,并且另一个值为非0值时,返回1,否则返回NULL;当两个值都为NULL时,返回NULL。
#工资为3000或5000的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE salary=3000 || salary=5000;
#工资为3000或5000的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE salary=3000 OR salary=5000;
逻辑异或( XOR )
当给定的值中任意一个值为NULL时,则返回NULL;如果两个非NULL的值都是0或者都不等于0时,则返回0;如果一个值为0,另一个值不为0时,则返回1。
#联系方式为NULL的员工id、姓名、工资
SELECT emp_id,emp_name,salary
FROM emp
WHERE (telephone XOR 1) IS NULL;
相关文章:

MySQL的基本语句(SELECT型)
基本MySQL语句SELECTSELECT FROM 列的别名去除重复行空值着重号算术运算符加法( )减法( - )乘法( * )除法( / 或DIV)求模( % 或MOD)比较运算符等于( )安全等于( <> )不等于( ! 或 <…...

日志服务搭建-ES-FileBeat-Kibana
1次订单量突增问题,导致了有几个数据没有录库,但是确有支付的记录,啥玩意,还能有这个操作,组内安排问题定位,解决,一看打出来的日志,只有支付有,生成订单这边没有&#x…...

大数据架构设计与数据计算流程
大数据架构设计Hadoop有3个核心组件:分布式文件系统HDFS;分布式运算编程框架MapReduce;分布式资源调度平台YARN。HBase,Hadoop dataBase,基于HDFS的NoSQL数据库,面向列式的内存存储,定期将内存数…...

207. 课程表
207. 课程表https://leetcode.cn/problems/course-schedule/ 难度中等1526 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [a…...

2023-03-08 mysql列存储数据库-查询执行过程分析
摘要: 在mysql的sql层和存储引擎的交互模式中, 存储引擎实现handler接口, 由SQL层负责调用接口, 所以执行的过程可以看作是在sql层中, innodb仅提供接口。 但是在mysql列存储引擎中, TMD直接替换掉了sql层的执行接口,并且将sql层的查询树转换成了自己的一套查询树, 然后根据…...

各种激活函数的计算公式、图像以及实现代码
激活函数已经成为神经网络中非常重要的一部分,随着各种类型的神经网络模型被人们开发出来,各种激活函数也应运而生,在不同的场景中,取得良好的效果。本文跟据著名的YOLO系列目标检测模型的源码 AlexeyAB Darknet,整理出…...

ArangoDB
介绍 ArangoDB 是一个原生的多模型开源数据库,具有灵活的文档、图形和键值数据模型。使用方便的类似 SQL 的查询语言或 JavaScript 扩展构建高性能应用程序。主要特点 在集群上安装 ArangoDB —— 安装简单灵活的数据建模:数据建模为键值对、文档或图表的…...

MySQL8.0Linux安装及主从的搭建
MySQL8.0Linux安装教程 下载并安装 需要说明的一点是我使用的是SSH secure shell Client连接linux系统的,它的用法和命令窗口差不多。界面如图:一样的使用Linux命令操作。 话不多说 第一步: 1)、切换到 /usr/local下 cd /usr/…...

苹果新专利实现无线技术传输睡眠数据,蓝牙在智能家居中的应用
苹果于 2017 年 5 月收购了芬兰科技公司 Beddit,只是在过去 6 年时间里并没有太大的动作。根据美国商标和专利局本周公示的清单,苹果获得了一项 Beddit 相关的技术专利。 根据专利描述,苹果使用一根或者多根天线,利用电磁辐射的…...

银行数字化转型导师坚鹏:数字化转型为什么需要致良知与知行合一
在银行数字化转型过程中,特别需要致良知与知行合一哲学思想的指导。 知中有行,行中有知;行极而知,知极而行;知行无端,知行无始。知与行是一件事,做事与培养本体(修心)也是…...

Web前端学习:章三 -- JavaScript预热(二)
六五:作用域与function function:函数,不是数学上的函数,与写代码有关 JS中的函数:运用它,起个名字,然后对函数进行调用,即可将函数中的内容执行一遍 1、function 最基本的作用域…...

Excel绘制数据对比表格-表格可视化
Word中生成的表格一般比较单调,若一组数据存在对比的情况时,读者/审稿人难以直接通过详细对比数据来分析,此时若可以将该组数据可视化来对比则为好,Excel则可实现该功能。 关于有些期刊需要提供表格中的数据便于复制等情况时&…...

究竟是谁负了谁,来自底层测试的2022年终总结
前言 说实话坐在椅子前,都想好了,该怎么去写,甚至感觉有好多要写的,但是当我坐在椅子上时,却不知道该怎么开头了,不知道是不是紧张?还是不舍?难道还没有跟过去挥手告别的勇气吗&…...

C++——IO流
目录 C语言的输入与输出 流是什么 CIO流 C标准IO流 C文件IO流 二进制读写 文本读写 stringstream的简单介绍 C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键 盘)读取数据,并将值存放在变量中。…...

网络 | UDP与TCP协议讲解 | TCP可靠性是怎样实现的?
文章目录前置知识查看网络状态的工具查看进程idUDP协议协议格式UDP只有接收缓冲区基于UDP的应用层协议TCP协议流的理解协议格式确认应答机制缓冲区序号的作用流量控制超时重传机制6位标志位紧急数据的处理三次握手listen的第二个参数全连接和半连接队列都维护了什么信息&#x…...

JavaEE——简单介绍Thread类以及线程的基本操作
文章目录一、Thread 类中的常见构造方法二、Thread 的一些常见属性三、线程的启动——start()isAlive() 方法的解释四、线程中断五、线程等待-join()了解六、简单解释线程休眠一、Thread 类中的常见构造方法 我们已知,Thread 类是Java中多线程中的一个关键类&#…...

Java的数据库编程:JDBC
Content 🎉1什么是API 🎉2.什么是JDBC 🎉3.数据库驱动包的安装 🎉4.数据库安装包在idea的使用 🎉5.JDBC的增删改查的简单实现 今天为大家带来JAVA的数据库编程,也就是用Java实现数据库 数据库的最基本的操作就是…...

蓝桥冲刺31天之第六天
今天是摆子的一天,明天我要肝一整天的第四题!!! PS:一个普通的排序罢了 import java.io.*; import java.util.Arrays; import java.util.Scanner;/*** ClassName 考勤刷卡* Description TODO* Author 小怂很怂* Date 2…...

Streamlit 工具记录
Streamlit 是基于 Python 的 Web 应用程序框架,可视化数据,分析结果。 Streamlit 是一个开源库,可在短时间内开发机器学习可视化仪表板。只需几行代码就可以构部署强大的数据应用程序。Streamlit 可将仪表板的开发时间从几天缩短至几小时。 …...

GreenPlum小结
什么是GreenPlum?GreenPlum是业界最快最高性价比的关系型分布式数据库,它在开源的PostgreSQL的基础上采用MPP架构(Massive Parallel Processing,海量并行处理),具有强大的大规模数据分析任务处理能力。GreenPlum作为大数据融合存储…...

C语言中数组和指针
文章目录前言一、指针的概念二、指针的大小三、指针的用法1.指针指向变量2.指针指向数组3.指针指向函数总结前言 本文将给大家带来C语言中非常重要的两个知识点,指针和数组。 一、指针的概念 指针,是C语言中的一个重要概念及其特点,也是掌…...

Leetcode.剑指 Offer II 022 链表中环的入口节点
题目链接 Leetcode.剑指 Offer II 022 链表中环的入口节点 mid 题目描述 给定一个链表,返回链表开始入环的第一个节点。 从链表的头节点开始沿着 next指针进入环的第一个节点为环的入口节点。如果链表无环,则返回 null。 为了表示给定链表中的环&#…...

4种不同编程语言的打印方式
意义 打印方式是编程中不可或缺的一部分,它可以帮助开发人员有效地调试和测试代码,并提供有用的信息来监视程序的运行状态和性能。 编程语言中的打印方式是指将程序输出到终端或控制台上进行显示。这个功能在编程中非常重要,因为它可以帮助开…...

websocket介绍
我们聊聊轮询技术,什么是轮询?轮询就是在特定的时间间隔,由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。 轮询分为两种: 短轮询:通过不断的向服务端发送数据,客户端发送Request,服务端直接返回Response(不管服务端数据有没有改变)。长轮…...

Educational Codeforces Round 144 (Rated for Div. 2),C,D
C. Maximum Set 思路: 我们求最大数组,显然是L一直乘2,直到再乘2就越过区间位置。我们说过,再乘一个2就不行,那么我们除一个2,换句话说,就是再乘一个4就不行了。发现,我们可能有机会乘一个3&a…...

【redis学习篇】Redis三种持久化方式详解
官方文档 一、Redis持久性 Redis如何将数据写入磁盘 持久性是指将数据写入持久存储,如固态磁盘(SSD)。Redis提供了一系列持久性选项。其中包括: RDB(快照):RDB持久性以指定的时间间隔执行数据…...

垃圾回收中的分代年龄
为什么CMS里的分代年龄是6而不是15 CMS (Concurrent Mark Sweep) 是一种基于分代的垃圾收集器,其中分代年龄指的是一个对象在年轻代中经历了多少次垃圾收集。在 CMS 中,当一个对象的分代年龄达到阈值时,就会被晋升到老年代中。 在 CMS 中&a…...

蓝桥杯-左移右移(2022国赛)
蓝桥杯-左移右移1、问题描述2、解题思路与代码实现2.1 方法一:使用LinkedList双向链表实现(50%)2.2 方法二:使用HashMap左右临界值实现(100%)1、问题描述 小蓝有一个长度为 N 的数组, 初始时从左到右依次是 1,2,3,…N 。 之后小蓝对这个数组进行了 M 次操…...

你还在手撸SQL?ChatGPT笑晕在厕所
文章目录你还在手撸SQL?ChatGPT笑晕在厕所一、背景二、面向Chat编程1. 数据库设计2. 建表语句3. 加中文注释4. 数据模拟5. 查询成绩6. 修改课程任课老师7. 删除课程8. 删除一个有关联数据的课程总结你还在手撸SQL?ChatGPT笑晕在厕所 一、背景 经典3表设…...

【Redis】Redis慢查询
文章目录慢查询记录慢查询两个配置参数修改配置参数慢查询日志慢查询记录 我们都知道像mysql等持久化数据库会有慢查询日志,其实Redis中也有慢查询日志的功能。慢查询就是系统在执行命令的前后计算每条命令的执行时间,如果超过我们预设的时间,…...