mysql之基本select语句 运算符 排序分页
1.SQL的分类
DDL:数据定义语言.
CREATE
ALTER
DROP
RENAME
TRUNCATE
DML: 数据操作语言.
INSERT
DELETE
UPDATE
SELECT 重中之重
DCL: 数据控制语言.
COMMIT
ROLLBACK
SAVEPOINT
GRANT
REVOKE
2.SQL语言的规则与规范
1.基本规则
-
SQL可以在一行或多行,为了提高可读性,通常写在多行
SELECT * FROM emp;
-
每条命令以;或\g或\G结束
-
关键字不能被缩写也不能分行
-
关于标点符号
-
必须保证所有的(),单引号,双引号是成对结束的
-
必须使用英文状态下的半角输入方式
-
字符串型和日期时间类型的数据可以使用单引号(' ')表示
-
列的别名,尽量使用双引用(" "),而且不建议省略as
-
2.SQL大小写规范(建议遵守)
-
MySQL在Windows环境下大小写是不敏感的
-
MySQL在Linux环境下大小写是敏感的
-
数据库名,表名,表的别名,变量名是严格区分大小写的
-
关键字,函数名,列名(或字段名),列的别名(字段的别名)是忽略大小写的
-
-
推荐采用统一的书写规范:
-
数据库名,表名,表的别名,字段名,字段别名等都小写
-
SQL关键字,函数名,绑定变量等都大写
-
3.注释
可以使用如下格式的注释结构
单行注释: #注释文字(MySQL特有的注释方式)
单行注释: -- 注释文字(--后面必须包含一个空格.)
4.导入现有的数据表,表的数据
source 文件的全路径名
4.最基本SCLECT语句
SELECT 1+1,3*2; SELECT 1+1,3+2 FROM DUAL; #dual: 伪表 SELECT * FROM xxx # *就是表中所有的字段
5.列的别名
在列名后加空格再写名字就是别名
#as : (alias)
#类的别名可以使用一对双引号连起来
6.去除重复行
查询员工表中一共有哪些部门id呢?
在select 后面加上DISTINCT(去重)
7.空值参与运算
-
空值: null
-
null不等同于0,' ',' null '
-
空值参与运算,结果一定也为空
8.着重号 ``
若命名与关键词重名的表,调用时可使用着重号区分
9.查询常数
10.显示表结构
DESCRIBE employees;显示了表中字段的详细信息
DESC 也可以
11.过滤数据
#查询90号员工信息 SELECT * FROM employees #过滤条件 WHERE id = 90; SELECT * FROM employees WHERE name = '邱宛彦'; SELECT * FROM employees WHERE salary > 5000;
第四章: 运算符
1.算数运算符
-
+
:加法 -
-
:减法 -
*
:乘法 -
/
:除法 -
%
:取余(模)
SELECT 10 + 5; -- 结果是 15 SELECT 10 * 3; -- 结果是 30 SELECT 10 % 3; -- 结果是 1
2. 比较运算符 (Comparison Operators)
这些运算符用于比较两个值的关系。
-
=
:等于 -
<=>: 安全等于
-
作用于
=
相似,唯一的区别就是安全等于可以进行NULL运算
-
-
!=
或<>
:不等于 -
<
:小于 -
>
:大于 -
<=
:小于等于 -
>=
:大于等于 -
IS NULL
:检查是否为 NULL -
IS NOT NULL
:检查是否不为 NULL
SELECT 1=2,1!=2,1='1',1='a',0='a' FROM DUAL;
字符串存在隐式转换.如果转换数值不成功,则看作0;
字符串和字符串之间比较,直接比较ASCII值,不会看作0;
只要有null参与比较,结果为null;
3. 逻辑运算符 (Logical Operators)
这些运算符用于结合多个条件。
and优先级高于or
-
AND
:并且,两个条件都为真时结果为真 -
OR
:或者,任意一个条件为真时结果为真 -
NOT
:非,取反操作 -
XOR
: 异或
4. 范围运算符 (Range Operators)
-
BETWEEN
:指定一个范围(包括边界),用来筛选字段在某个范围内的记录 -
IN
:用于检查某个字段是否在给定的一组值中
SELECT * FROM employees where salary between 100 and 200;
5. 字符串匹配运算符 (String Matching Operators)
这些运算符用于对字符串执行模式匹配操作。
-
LIKE
:用于在字符串中进行简单的模式匹配-
%(通配符)通常与LIKE搭配
SELECT * FROM table WHERE name like 'A%' #以A开头的姓名 WHERE name like '%com' #以com结尾的结果 WHERE name like 'A%com' #以A开头以com结尾的结果
一个下划线
_
代表一个字符WHERE name like '_A%' #以A为第二个字符的姓名
转义字符 \
-
-
NOT LIKE
:与LIKE
相反 -
REGEXP
:用于进行正则表达式匹配 难-
点(
.
):匹配任意单个字符(除了换行符)。SELECT * FROM table WHERE column REGEXP 'a.b'; -- 匹配 "aab", "acb" 等
脱字符(
^
):匹配字符串的开头。 SELECT * FROM table WHERE column REGEXP '^abc'; -- 匹配以 "abc" 开头的字符串
美元符号(
$
):匹配字符串的结尾。SELECT * FROM table WHERE column REGEXP 'abc$'; -- 匹配以 "abc" 结尾的字符串
方括号(
[]
):匹配方括号内的任意单个字符。SELECT * FROM table WHERE column REGEXP '[aeiou]'; -- 匹配包含元音字母的字符串
方括号内的脱字符(
[^]
):匹配不在方括号中的字符。 SELECT * FROM table WHERE column REGEXP '^[^aeiou]'; -- 匹配以辅音字母开头的字符串
星号(
*
):匹配前面的字符或组零次或多次。 SELECT * FROM table WHERE column REGEXP 'ab*c'; -- 匹配 "ac", "abc", "abbc", "abbbc" 等
加号(
+
):匹配前面的字符或组一次或多次。 SELECT * FROM table WHERE column REGEXP 'ab+c'; -- 匹配 "abc", "abbc", "abbbc" 等,但不匹配 "ac"
问号(
?
):匹配前面的字符或组零次或一次。 SELECT * FROM table WHERE column REGEXP 'ab?c'; -- 匹配 "ac" 或 "abc"
竖线(
|
):逻辑“或”,匹配左边或右边的模式。 SELECT * FROM table WHERE column REGEXP 'abc|def'; -- 匹配 "abc" 或 "def"
圆括号(
()
):分组模式。 SELECT * FROM table WHERE column REGEXP '(ab|cd)e'; -- 匹配 "abe" 或 "cde"
大括号(
{n,m}
):匹配前面的字符或组,出现至少n
次,最多m
次。 SELECT * FROM table WHERE column REGEXP 'ab{2,4}c'; -- 匹配 "abbc", "abbbc", "abbbbc"
-
-
NOT REGEXP
:与REGEXP
相反
6. NULL 检查运算符 (NULL Check Operators)
-
IS NULL
:检查某个值是否为 NULL -
IS NOT NULL
:检查某个值是否不为 NULL
7. 集合运算符 (Set Operators)
这些运算符用于操作两个或多个查询结果集。
-
UNION
:合并两个查询的结果集,去除重复项(求并集去重) -
UNION ALL
:合并两个查询的结果集,包括重复项 -
INTERSECT
:返回两个查询结果的交集 -
EXCEPT
:返回第一个查询结果中存在而第二个查询结果中没有的记录(去交集)
第五章: 排序和分页
1.排序数据
1.1排序规则
如果没有使用排序操作,默认情况下查询的返回值写入数据的顺序显示的;
使用ORDER BY对查询到的数据进行排序操作
-
升序: ASC(默认升序)
-
降序: DESC
SELECT lastname
FROM employees
ORDER BY salary DESC;
1.可以使用列的别名,进行排序
2.列的别名只可以ORDER BY中使用,不能在WHERE中使用
3.ORDER BY语句和WHERE语句同时存在时.WHERE和FROM是紧密挨着的,在ORDER BY之前
SELECT lastname
FROM employees
WHERE salary>1000
ORDER BY salary;
4.二级排序
当排序之后别的数据相同时.
SELECT lastname
FROM employees
WHERE salary>1000
ORDER BY salary ASC,id ASC;
2.分页
#每页显示20条记录
select id,lastname
from employees
limit 0,20;#0是偏移量
公式: 显示第n页,每页显示pagesize条
limit (n-1)*pagesize
WHERE ORDER BY LIMIT 声明顺序如下
where
order by
limit
相关文章:
mysql之基本select语句 运算符 排序分页
1.SQL的分类 DDL:数据定义语言. CREATE ALTER DROP RENAME TRUNCATE DML: 数据操作语言. INSERT DELETE UPDATE SELECT 重中之重 DCL: 数据控制语言. COMMIT ROLLBACK SAVEPOINT GRANT REVOKE 2.SQL语言的规则与规范 1.基本规则 SQL可以在一行或多行,为了提高可…...
springboot整合admin
1. 添加依赖 首先,在你的admin服务端pom.xml文件中添加Spring Boot Admin的依赖: <dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-server</artifactId><version>2.5.4<…...
springboot整合gateway
1. 添加依赖 首先,在你的pom.xml文件中添加Spring Cloud Gateway的依赖: <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId> </dependency> 如果…...
iOS实际开发中使用Alamofire实现多文件上传(以个人相册为例)
引言 在移动应用中,图片上传是一个常见的功能,尤其是在个人中心或社交平台场景中,用户经常需要上传图片到服务器,用以展示个人风采或记录美好瞬间。然而,实现多图片上传的过程中,如何设计高效的上传逻辑并…...
PyCharm 的安装与使用(Window)
1 PyCharm 简介 PyCharm 是一款由 JetBrains 公司开发的专门用于 Python 语言开发的集成开发环境(IDE)。以下是其相关介绍: 1.1 特点与功能 智能代码编辑:提供高度智能化的代码编辑器,支持语法高亮、自动补全、代码重…...
媒体资源生产转码过程
音视频基础 1. 音频基础原理 1.1 声音的基本概念 声波: 声音是通过空气或其他介质传播的机械波。声波的特性包括频率(Hz)、振幅(dB)和波形。采样率 (Sampling Rate): 每秒对声音信号进行采样的次数,单位为赫兹&…...
WPF控件Grid的布局和C1FlexGrid的多选应用
使用 Grid.Column和Grid.Row布局,将多个C1FlexGrid布局其中,使用各种事件来达到所需效果,点击复选框可以加载数据到列表,移除列表的数据,自动取消复选框等 移除复选框的要注意!!!&am…...
Postman配置环境变量
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 Postman是一套比较方便的接口测试工具,但我们在使用过程中,可能会出现创建了API请求,但API的URL会随着服务器IP地址的变化而改…...
import语句详解
在 Java 中,import 语句用于引入其他包中的类、接口或静态成员,以便在当前源文件中直接使用它们,而不需要写完整的类名(包括包名)。以下是 import 语句的详细解释和使用方法: 一、import语句的基本概念 定…...
数据结构与算法之二叉树: LeetCode 199. 二叉树的右视图 (Ts版)
二叉树的右视图 https://leetcode.cn/problems/binary-tree-right-side-view/ 描述 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1 输入:root [1,2,3,nu…...
CentOS7修改Docker默认存储路径
当你使用Docker时,Docker的默认配置是将镜像、容器和卷存储在系统/var/lib/docker/目录下,如果docker镜像安装的太多会导致磁盘不够,你可以尝试以下方法来释放空间: 清理无用的镜像和容器:使用docker命令删除不再使用…...
宝塔面板使用 GoAccess Web 日志分析教程
宝塔面板是一个简单方便的服务器运维面板,但其网站统计功能是收费的。而 GoAccess 是一个用 C 编写的免费开源 Web日志分析器,本文将介绍如何在宝塔面板中开启 GoAccess Web 日志分析功能。 内容索引 下载安装 GoAccess在宝塔面板中添加日志切割的计划任务将 Web 日志输出到…...
【FPGA】时序约束与分析
设计约束 设计约束所处环节: 约束输入 分析实现结果 设计优化 设计约束分类: 物理约束:I/O接口约束(例如引脚分配、电平标准设定等物理属性的约束)、布局约束、布线约束以及配置约束 时序约束:设计FP…...
c++入门之 命名空间与输入输出
1、命名空间 1.1使用命名空间的原因 先看一个例子: #include <iostream>int round 0;int main() {printf("%d", round);return 0; }请问,这个程序能跑起来吗? 答案是否定的 原因是,当我们想创建一个全局变量 …...
【zotero】解决无法参考文献交叉跳转、相关参考文献插件推荐
无法跳转 参考大佬文章的方法: https://blog.csdn.net/air__Heaven/article/details/137470687 但是有可能有时候又跳不了了,可以多多执行一下 zotero-citation插件 github地址 : https://github.com/MuiseDestiny/zotero-citation cl ht…...
《深度学习模型在鸿蒙分布式框架下的跨设备高效之旅》
在人工智能领域,深度学习模型的训练与推理通常需要强大的计算资源和大量的数据支持。而鸿蒙系统的分布式框架为解决这一问题提供了新的思路和方法,使得深度学习模型能够在多个设备之间实现高效的训练与推理。 鸿蒙分布式框架概述 鸿蒙系统是一款面向万…...
不同方式获取音频时长 - python 实现
DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” -------------------------------------------------------------…...
用python实现烟花代码,完整代码拿走不谢
有时候用python实现一些有趣的代码,既有趣,又能提升知识 使用Python实现动态烟花代码 效果如下: 不废话,直接上代码: import pygame from random import randint, uniform, choice import mathvector pygame.math…...
[OPEN SQL] 限定选择行数
本次操作使用的数据库表为SCUSTOM,其字段内容如下所示 航班用户(SCUSTOM) 该数据库表中的部分值如下所示 指定查询多少行数据,我们可以使用语法UP TO n ROWS来实现对数据前n项的查询 语法格式 SELECT * FROM <dbtab> UP TO n ROWS 参数说明 db…...
【入门级】计算机网络学习
网络安全:前端开发者必知:Web安全威胁——XSS与CSRF攻击及其防范-CSDN博客 三次握手四次挥手:前端网络—三次握手四次挥手_前端三次握手-CSDN博客 http协议和https协议的区别:前端网络—http协议和https协议的区别-CSDN博客 网…...
Redis 安装与 Spring Boot 集成指南
安装 Redis 和将其与 Spring Boot 应用集成是构建高效缓存解决方案的常见步骤。以下是详细的指南,帮助你在本地环境中安装 Redis,并在 Spring Boot 项目中配置和使用它。 1. 安装 Redis Windows 环境 Redis 官方并不直接支持 Windows,但你…...
基于 Python 和 OpenCV 的人脸识别上课考勤管理系统
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
【c/c++】 windows下调用putty
windows和linux系统存在差异,同样的数据在两边的终端行为都不一样,就很头疼。 例如:换行符,win下是\r\n 而linux下是\n 又或者win下使用vi 好在找到了解决方案 1、通过第三方程序GoTTY(支持windows和Linux&#x…...
JVM常见面试题
1.内存泄漏与内存溢出的区别 内存泄漏是指不再使用的对象无法得到及时的回收,持续占用内存空间,从而导致系统内存逐渐减少,系统性能下降,最终可能引发内存溢出内存溢出是指程序在运行时需要分配内存,但 JVM 没有足够的内存可以分配(超出可用内存大小),最终导致内存分配…...
手机租赁系统开发解决方案与市场趋势分析
内容概要 手机租赁系统开发正如一场技术与商业的双重舞会,双方时而相互辉映,时而却也是一场较量。在这片快速变幻的市场中,了解当前的技术实现与挑战尤为重要。例如,系统架构的选择、数据安全性以及用户体验设计都可能成为企业发…...
基于Qt的OFD阅读器开发原理与实践
摘要 本文详细探讨了基于Qt开发OFD阅读器的原理与实践。通过解析OFD文件格式、构建文档结构、实现页面渲染、处理用户交互以及进行性能优化,本文展示了如何使用Qt框架开发一个功能强大、性能优异的OFD阅读器。文章还提供了示例代码和未来发展方向,为开发…...
Redis实现高效的负载均衡算法
1. Redis存储设计 我们需要在 Redis 中存储以下信息: 配置列表(List<Config>):存储所有配置项。总权重:存储所有配置的总权重。当前轮询状态:存储当前的轮询状态(如当前随机值或索引&am…...
spring依赖注入
一、 注入方式 1. 构造器注入 构造器注入通过构造方法来注入依赖的对象。当Spring容器创建Bean时,会通过构造器来传递依赖对象。这种方式是最推荐的方式,因为它可以确保依赖对象在创建时已经完全注入。 示例: Component public class Car…...
流浪猫流浪狗领养PHP网站源码
源码介绍 流浪猫流浪狗领养PHP网站源码,适合做猫狗宠物类的发信息发布。当然其他信息发布也是可以的。 导入数据库,修改数据库配置/application/database.php 设置TP伪静态,设置运行目录, 后台:/abcd.php/dashboard?…...
ffmpeg 编译遇到的坑
makeinfo: error parsing ./doc/t2h.pm: Undefined subroutine &Texinfo::Config::set_from_init_file called at ./doc/t2h.pm line 24. 编译选项添加: --disable-htmlpages...
灵活运用事务回滚,快捷处理多张数据表格
各位编程宝子们(尤其是对MySQL了解不多的宝子们)在使用关系表处理时,有时候会希望简单一次性解决多张表的数据处理,但又有时候无从下手。其实有时候掌握数据的事务和回滚便可以简单解决这些事情,接下来我将以一个学生信…...
MyBatis 性能优化
1. 引言 1.1 什么是 MyBatis? MyBatis 是一款流行的 Java 持久层框架,能够将 Java 对象与 SQL 数据库映射起来。与传统的 JDBC 不同,MyBatis 提供了灵活的 SQL 映射功能,使开发者可以专注于业务逻辑,而无需编写冗长的…...
【python基础】python内置函数 zip用法介绍
zip() 是 Python 中非常有用的内建函数,能够将多个可迭代对象(如列表、元组、字符串等)打包成一个迭代器,它将对应位置的元素组合成元组,并返回一个由这些元组组成的迭代器。通常用于并行处理多个可迭代对象。 1. 基本…...
Unity Android AAB包GooglePlay上线备忘
aab GooglePlay要求新上线的App必须使用aab格式提交,在Unity Build Settings中勾选Build App Bundle 选项即可;或者在代码中设置: EditorUserBuildSettings.buildAppBundle true; 安装测试 https://developer.android.com/tools/bundlet…...
基于springboot的课程作业管理系统源码(springboot+vue+mysql)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的课程作业管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 可以管理首页、个人中心…...
JVM生产环境常用参数配置及调优建议
一、生产常用参数配置 JAVA_OPTS="-server -Xms4G -Xmx4 -Xmn2G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=8 -XX:G1HeapRegionSize=16m -XX:MaxGCCount=10 -XX:MetaspaceSize=256m -XX:…...
vue 实现打包并同时上传至服务器端
将 publish_script 及以下文件 upload.server.js 添加到 主文件下,与 src 同级别 具体操作步骤: 1、安装 npm install scp2 2、将下面两条命令加入至 package.json 的 scripts 中 "upload": "node publish_script/upload.server.js&q…...
深入探索AI核心模型:CNN、RNN、GAN与Transformer
在人工智能的飞速发展中,众多深度学习模型和算法不断涌现,推动了许多领域的进步。特别是在图像识别、自然语言处理、生成建模等方向,AI模型的应用越来越广泛。本文将介绍几种最常用的AI模型,包括卷积神经网络(CNN&…...
【Elasticsearch】配置分片分配到指定节点
配置分片分配到指定节点 参考文章:https://www.elastic.co/guide/en/elasticsearch/reference/current/shard-allocation-filtering.html 两种方式:根据节点属性分配和根据节点名称分配。 测试环境 tar xvf elasticsearch-7.17.25-linux-x86_64.tar.gz…...
【贵州省】乡镇界arcgis格式shp数据乡镇名称和编码内容下载测评
shp数据字段乡镇名称和编码,坐标是wgs84,数据为SHP矢量格式,下载下来直接加载进ArcMap即可使用 下载地址:https://download.csdn.net/download/zhongguonanren99/14928126...
EasyExcel上传校验文件错误信息放到文件里以Base64 返回给前端
产品需求: 前端上传个csv 或 excel 文件,文件共4列,验证文件大小,类型,文件名长度,文件内容,如果某行某个单元格数据验证不通过,就把错误信息放到这行第五列,然后把带有…...
Python 植物大战僵尸
文章目录 效果图项目结构实现思路源代码 效果图 项目结构 实现思路 下面是代码的实现思路: 导入必要的库和模块:首先,我们导入了Python的os、time库以及pygame库,还有植物大战僵尸游戏中用到的各个植物和僵尸的类。 初始化游戏和…...
继承(7)
大家好,今天我们继续来学习一下继承的知识,这方面需要大家勤动脑才能理解,那么我们来看。 1.9 protected关键字 在类和对象章节中,为了实现封装特性,java中引入访向限定符,主要限定:类或者类中成员能否在类外和其他包中被访问. …...
UML(统一建模语言)
目录 一、用例图(Use Case Diagram) 二、类图(Class Diagram) 2.1、泛化(Generalization) 2.2、实现(Realization) 2.3、关联(Association) 2.4、聚合&…...
【面试题】技术场景 7、定位系统瓶颈
系统瓶颈定位方法总述 面试官询问如何快速定位系统瓶颈,旨在考察线上调试经验。主要方法包括: 压测:在项目上线前找出系统瓶颈并修复。监控工具或链路追踪工具:项目上线后用于实时监控或评测找瓶颈。Arthas(原阿尔萨…...
计算机网络之---传输层的功能
传输层的功能 传输层是 OSI(开放系统互联)七层模型中的第四层,位于应用层和网络层之间。传输层的主要作用是提供端到端的通信服务,确保数据在不同设备之间的可靠传输。它主要负责将来自上层(应用层)的数据拆…...
设计一个利用事务特性可以阻塞线程的排他锁,并且通过注解和 AOP 来实现
设计思路: 利用数据库表记录锁标识:通过唯一标识符(如方法名 参数),我们可以在数据库中插入一条记录,表示当前方法正在执行。这条记录需要记录插入时间。 注解:通过注解标识哪些方法需要加锁&a…...
《安富莱嵌入式周报》第348期:开源低功耗测试仪,开源创意万用表,续航100-300小时,开源PCB电机,自制shell和网络协议栈,开源水培自动化系统
周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1Tzr9Y3EQ7/ 《安富莱嵌入式周报》第348期:开源低功…...
C#实现凸壳算法
凸壳计算代码: public static PointD[] calcConvexHull(PointD[] points) {// 按 x 坐标对点进行排序Array.Sort(points, (p1, p2) => p1.X.CompareTo(p2.X));// 创建下凸壳var lowerHull = new List<PointD>();foreach (var point in points){while (lowerHull.Co…...
轻量级适合阅读的优秀 C++ 开源项目
CTPL 这是一个现代简易版的、高效的C线程池库,代码行数500行左右。 代码示例: void first(int id) { std::cout << "hello from " << id << \n; } struct Second { void operator()(int id) const { std::cout << &q…...