【MySQL】第三部分 基本的SELECT语句

[mysql]最基本的SELECT...FROM结构 SELECT 1; 阅读详情

【MySQL】第三部分 基本的SELECT语句



3. 基本的SELECT语句

3.1 SELECT … FROM

# 选择所有的列
SELECT * FROM employees;

# 选择指定的列
SELECT first_name,salary,job_id FROM employees;

3.2 设置列的别名

# 列的别名
/*
	第一种 AS
	第二种 用空格隔开
	第三种 使用""括起来,切记不要使用'',单引号用在字符串中
*/

SELECT employee_id 员工ID,salary AS 工资,job_id "职位"
FROM employees;

3.3 去除重复行

# 去除重复行
# 例如:要求输出公司有哪些工种
SELECT DISTINCT job_id "工种"
FROM employees;

3.4 空值运算

# 空值是不能做运算,所以解决办法: IFNULL(expr1,expr2)
# 如果expr1为null,则用expr2的值进行替换,反之使用expr1
SELECT employee_id, salary "月收入", (1+IFNULL(commission_pct,0))*salary*12 "年收入"
FROM employees; 

3.5 着重号

# 着重号 -->  ``
# 如果字段和保留字,数据库系统常用方法冲突,在sql语句中使用着重号将其括起来
SELECT * from `order`;

3.6 显示表的结构

# 显示表的结构
DESCRIBE employees;

3.7 WHERE 过滤数据

# 筛选出 department_id 等于50 并且 工资大于6000
SELECT * 
FROM employees
WHERE department_id = 50 AND salary > 6000;
SELECT * 
FROM departments
WHERE department_name = 'IT';  # 注意:在这需要用单引号

3.8 算术运算符

加(+)、减(-)、乘(*)、除(/)和取模(%)运算

在这里插入图片描述

大家可以使用 FROM DUAL 虚拟表( 自行测试运算符 )

需要注意的是:一个数除以0为NULL

例如:

SELECT 100+0,100-0,100*0,100/0,50%3
FROM DUAL;

3.9 比较运算符

在这里插入图片描述

等号运算符(=)判断等号两边的值、字符串或表达式是否相等,如果相等则返回1,不相等则返回0。

SELECT 1=1,1='1','abc'=0,'abc'=1,(5+3)=(2+6),''=NULL,NUll=NULL,0=Null
FROM DUAL;

在这里插入图片描述

根据上述sql语句测试出来的结果,很多和我们想的答案是不一样的

1.如果等号两边的值一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较,如果遇到不能够转换的,例如上述的abc,那么就会统一转为0,所以这就是为什么等于1的原因。

2.如果等号两边的值、字符串或表达式中有一个为NULL,则比较结果为NULL。


安全等于运算符(<=>),它和等于运算符的主要区别是在于:安全等于运算符可以用来对NUll进行判断,在两个操作数均为NULL时,其返回值为1,而不为NULL。当一个操作数为NULL时,其返回值为0,而不为NULL。

SELECT NULL<=>NULL,NULL<=>'',NULL<=>0
FROM DUAL;

在这里插入图片描述


3.10 非符号类运算符

在这里插入图片描述


空运算符

ISNULL、IS NULL、IS NOT NULL

SELECT employee_id, commission_pct 
FROM employees
WHERE commission_pct IS NULL; 


SELECT employee_id,commission_pct
FROM employees
WHERE commission_pct IS NOT NULL;


# ISNULL() 他其实是一个函数
SELECT employee_id,commission_pct
FROM employees
WHERE ISNULL(commission_pct);

最小运算符和最大运算符

GREATEST(值1,值2,...,值n)

LEAST(值1,值2,...,值n)

需要注意的点:

  1. 当比较值列表中有NULL时,不能判断大小,返回值为NULL。
  2. 当参数为字符串时,返回字母表中顺序最靠前/后的字符
  3. 当参数是整数或者浮点数时,将返回其中最小/最大的值
SELECT GREATEST(1,2.5) 
FROM DUAL;

SELECT GREATEST('asd','fdg') 
FROM DUAL;

SELECT GREATEST(3,2.5,NULL) 
FROM DUAL;

SELECT GREATEST(LENGTH('shdihassdasdadud'),LENGTH('sadasddfas'))
FROM DUAL;

BETWEEN AND运算符

判断一个值是否在两个值区间内,闭区间包含端点

SELECT employee_id,salary
FROM employees
WHERE salary BETWEEN 7000 AND 10000;

不在该区间内

SELECT employee_id,salary
FROM employees
WHERE salary NOT BETWEEN 7000 AND 10000;
等价于
WHERE salary < 7000 OR salary > 10000

IN运算符

IN 用于判断给定的值是否是IN列表中的一个值,如果是则返回1,否则返回0。如果给定的值为NULL,或者IN列表中存在NULL,则结果为NULL。

NOT IN 用于判断给定的值不在IN列表中的一个值

SELECT manager_id
FROM employees
WHERE manager_id IN (100,101);

SELECT manager_id
FROM employees
WHERE manager_id NOT IN (100,101);

LIKE运算符

LIKE运算符主要用来匹配字符串,通常用于模糊匹配,如果满足条件则返回1,否则返回0。如果给定的值或者匹配条件为NULL,则返回结果为NULL。

“%”: 匹配0个或多个字符。
“_”: 只能匹配一个字符。
“\”: 转义
SELECT first_name
FROM employees
WHERE first_name LIKE "%s%"  # 条件是只要包含s字符即可


SELECT first_name
FROM employees
WHERE first_name LIKE "s%"  # 条件是开头是s字符


SELECT first_name
FROM employees
WHERE first_name LIKE "%s"  # 条件是结尾是s字符


SELECT first_name
FROM employees
WHERE first_name LIKE "_s%"  # 条件是第二个字符是s


SELECT job_id
FROM employees
WHERE job_id LIKE "%\_%"  # 条件是包含下划线

REGEXP运算符(正则表达式)

如果expr满足匹配条件,返回1;如果不满足,则返回0。若匹配内容或匹配条件任意一个为NULL,则结果为NULL。

在这里插入图片描述

SELECT job_id
FROM employees
WHERE job_id REGEXP "^A"  # 以A开头


SELECT job_id
FROM employees
WHERE job_id REGEXP "^A.*P$"  # 以A开头,P结尾

逻辑运算符

逻辑运算符主要用来判断表达式的真假,逻辑运算符的返回结果为1、0或者NULL。

在这里插入图片描述


逻辑与

注意:非0即真,但是需要注意如果0和NULL与则为0,其余和NULL为NULL

SELECT 1 && -1,0 && NULL, NULL && 1, 1 && NULL
FROM DUAL;

SELECT employee_id,salary FROM employees 
WHERE NOT (salary >= 9000 && salary <= 12000);

在这里插入图片描述


逻辑或

注意:只要有任意一个非0的值即真 ,当两个值都为NULL时,返回NULL,如果0和NULL或则为NULL

SELECT 1 || NULL, NULL || 1, 0 || NULL,NULL || NULL, -52 || 12
FROM DUAL;

SELECT employee_id, last_name, job_id, salary
FROM   employees
WHERE  salary >= 10000 || job_id LIKE '%A%';

在这里插入图片描述

注意:

OR可以和AND一起使用,但是在使用时要注意两者的优先级,由于AND的优先级高于OR,因此先对AND两边的操作数进行操作,再与OR中的操作数结合。


逻辑异或

注意: 简单来说就是条件满足一真一假我就要,当给定的值中任意一个值为NULL时,则返回NULL

SELECT 1 XOR -1,1 XOR 0, 1 XOR NULL, 1 XOR 1 XOR 1, 0 XOR 0 XOR 0
FROM DUAL;

在这里插入图片描述


位运算符

在这里插入图片描述

位运算符是在二进制数上进行计算的运算符。位运算符会先将操作数变成二进制数,然后进行位运算,最后将计算结果从二进制变回十进制数。

在一定范围内容,左移一位值扩大两倍,右移一位值缩小两倍.


总结

以上就是今天要讲的内容,希望对大家有所帮助!!!

MySQL学习笔记第三章(基本的SELECT语句) 这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。主要的语句关键字包括。 阅读详情

相关推荐

【超详细】C#的单例模式

本文详细介绍了C#中的单例设计模式,包括两种实现方式:普通类泛型单例(Singleton<T>)和基于MonoBehaviour的组件单例(MonoSingleton<T>)。单例模式通过私有构造、静态私有实例和公共访问入口确保全局唯一实例,具有节省资源、保证数据一致性等优势。文章分别阐述了两者的核心原理、代码实现、使用场景及注意事项,并提供了日志管理器和音效管理器的具体应用示例。特别强调了多线程安全、初始化时机和避免过度使用等重要原则,为Unity开发中合理运用单例模式提供了全面指导。

grapefruit_lyy的博客 1534

SELECT语句总结!全!

基本的SELECT语句- 显示表结构-条件筛选-.SELECT和运算符的运算 -.SELECT与排序与分页-SELECT多表查询-子查询

m0_56223907的博客 3万+

halcon C++编程 第4讲 HObject/HImage Mat相互转换(tcy)

网上有很多相互转换程序,但并不知那个正确,本文对相互转换后的结果和原对象比较是否相同判断转换是否正确。经测试ok.本文包括转换代码及测试是否相同。 1.转换程序: /************************************ HObject转为Mat:time:2021/3/16 V1.0 *************************************/ cv::Mat HalconClass::HObjectToMat(const HalconCpp::HObject&..

tcy-阿春 4933

select * from( select * from 表名) 是什么意思

select * from( select * from 表名) 是什么意思 1.括号内的结果集对于外面叫做派生表 这种查询一般是要对括号内的查询结果集再进行筛选及操作 2.select * from( select * from 表名)简单,看似无用,一般里面写的都很复杂,多表联合、分组等等 3.哪里有分组,order by是排序,case when 是选择语句,可以根据选择条件筛选取值 总结:select * from( select * from 表名) 里面的select * from 表名 工作

Java&Develop的博客 1万+

在国产麒麟系统上,用Postfix和Dovecot手搓一个内部邮件服务器(附Foxmail配置)

本文详细介绍了在国产麒麟系统上使用Postfix和Dovecot搭建内部邮件服务器的完整流程,包括系统准备、核心配置、安全加固及客户端适配。针对国产环境的特殊需求,提供了依赖包适配、配置差异和Foxmail客户端配置的实用解决方案,助力企业实现高效内部协作。

weixin_33722405的博客 371

【Go语言实战】(2) Gin+Vue 电子商城

618来!!不用纠结去哪里剁手了!直接自己安排一个商场不香吗??

面向生活编程 4827

from后面跟select语句原来是这个意思

在工作中碰到这样一种sql写法:select id,name from (select id,name from student where name = '') as s;一直没有明白其中from后面子查询的意思,今天特意找资料看了看,将心得写下来:        其实就是把子查询的结果作为一个表,供你的外边的查询语句使用,这个你所指的子查询里面所有的查询结果字段就是你外面SELECT的范围。 ...

sinat_34224189的博客 2万+

深入理解鸿蒙输入子系统驱动:HDI接口、HAL层与内核驱动的协同机制

/ 扫描输入设备// 打开指定输入设备// 关闭指定输入设备// 获取指定设备信息// 获取所有设备列表鸿蒙输入子系统驱动采用分层架构设计,通过HDI接口层实现硬件抽象,HAL层提供统一的事件处理机制,用户空间驱动层负责设备管理和事件分发。整个系统支持多种输入设备类型,包括触摸屏、按键、鼠标、键盘等,并提供了完整的HID设备支持。分层架构:清晰的层次划分,便于维护和扩展事件驱动:基于epoll的高效事件处理机制设备管理:完善的设备生命周期管理HID支持。

m0_67505153的博客 212

SELECT 语句详解

建立三张表:department 、employee 、 project   1、基本的SELECT 语句 (1)SELECT语句的基本格式为: SELECT 要查询的列名 FROM 表名 WHERE 限制条件 ps:如果要查询表的所有内容,则把要查询的列名用一个星号 * 表示。 例子:《1》查

applehth的博客 2万+

【Android 11】使用Android Studio调试系统应用之Settings移植(三):构建Settings、SettingsLib项目文件

基于android 11,本系列文章力争实用,讲解使用AS调试系统app的方法,并提供了配套源下载,供学习调试。上一篇文章[Android 11]使用Android Studio调试系统应用(二):依赖分析、android.bp、静态和动态依赖,讲解了如何搭建编译服务器,如何下载AOSP源码,如何切换到AOSP的指定分支(android-11-r39),以及如何编译、解决编译错误、运行模拟器,本文将开始讲解如何构建Settings的AS工程文件! 走过、路过,有用过的同学,记得给个赞O(∩_∩)O哈!

上周的博客 2681

越野换了逐飞的ips200pro的屏幕后代码烧录中报错: “Cannot initialize device connection” 和 “Flashing failed” ...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1150

【重学MySQL】十三、基本的 select 语句

基本的SELECT语句是SQL(Structured Query Language,结构化查询语言)中最常用的语句之一,用于从数据库表中检索数据。一个基本的SELECT语句的结构非常直观,主要包括SELECT关键字、要检索的列名(或表达式)、FROM子句来指定数据来源的表名,以及可选的WHERE子句来指定检索数据的条件。

优快云全栈领域优秀博主,阿里云博客专家,工信部权威认证物联网技术开发工程师,曾30分钟高分通过C语言二级,两天手撸代码完成EasyX飞机大战,靠接软件私活一个月换苹果电脑 2373

【AI工具】免费获取各类AI大模型APIKEY的使用教程,以硅基流动+Deepseek为例

【AI工具】免费获取各类AI大模型APIKEY的使用教程,以硅基流动+Deepseek为例

funfan的博客 4263

MySQL(六):基本的SELECT语句

1. 一般情况下,除非需要使用表中所有的字段数据,最好不要使用通配符‘`*`’。 2. 使用通配符虽然可以节省输入查询语句的时间,但是获取不需要的列数据通常会降低查询和所使用的应用程序的效率。 3. 通配符的优势是,当不知道所需要的列的名称时,可以通过它获取它们。 在生产环境下,不推荐你直接使用`SELECT *`进行查询。

weixin_52533007的博客 3079

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

MySQL基础教程:SELECT语句详解

这篇文章详细介绍了MySQL中SELECT语句的基础知识与应用技巧。主要内容包括:SQL语言概述与分类、书写规范与命名规则、基本的SELECT查询语法。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 7209

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

MySQL ——select语句 一条龙服务

目录🍔 基本语法 🔰 使用表达式对查询的列进行运算🍗 ...

weixin_59796310的博客 5792

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

[MySQL] 基本的SELECT语句

1. 查询常量计算 2. 查询语句的基本语法 2.1 查询全部字段 2.2 查询指定字段 3. 列的别名 4. 去除重复行 5. 空值参与运算 6. 着重号 7. 查询常数 8. 显示表结构 9. 过滤数据 10. 基本的SELECT语句练习 【题目】 【答案】..................

emmmm..... 1282

MySQL基本的SELECT语句

SQL(Structured Query Language,结构化查询语言)是使用关系模型的数据库应用语言,与数据直接打交道,由IBM上世纪70年代开发出来。后由美国国家标准局(ANSI)开始着手制定SQL标准,先后有SQL-86SQL-89SQL-92SQL-99等标准。不同的数据库生产厂商都支持SQL语句,但都有特有内容。

weixin_41993336的博客 1163

MySQL学习笔记:03 基本SELECT语句

本文简单介绍了SQL语句的由来以及MySQL中最经常使用的SELECT语句的用法。

每天进步一点点 1709

MySQL_基本的SELECT语句

目录一、SQL概述二、SQL的分类1、DDL2、DML3、DCL三、SQL语言的规则与规范四、基本的SELECT语句1、最基本的SELECT语句2、列的别名3、去除重复行(关键词DISTINCT 用于返回唯一不同的值。)4、空值参与运算5、着重号(键盘1左边)6、查询常数7、显示表结构(DESCRIBE)8、过滤数据(WHERE) 一、SQL概述 二、SQL的分类 1、DDL (Data Definition Languages、数据定义语言):这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可

weixin_51923997的博客 2657

MySQL基本的SELECT语句的操作练习-笔记-03章:基本的SELECT语句

最基本的SELECT语句的讲解+练习(有参考答案)

Noctiflorous_s的博客 1203

mysql—基本的SELECT语句

1.基本的SELECT语句 1.1 SQL概述 1.1.1SQL 分类 1.2 SQL语言的规则与规范 1.2.1 SQL大小写规范 MySQL中的SQL语句是不区分大小写的,因此SELECT和select的作用是相同的,但是,许多开发人员习惯将关键字大写、数据列和表名小写,,这样写出来的代码更容易阅读和维护。 1.2.2注 释 1.2.3命名规则 1.2.4数据导入指令 1. 在命令行客户端登录mysql,使用source指令导入 格式:source 文件的全路径名 mysql> sou

WKF903582415的博客 1332

[mysql]基本的SELECT语句练习

题目如下# 1.查询员工12个月的工资总和,并起别名为ANNUAL SALARY# 2.查询employees表中去除重复的job_id以后的数据# 3.查询工资大于12000的员工姓名和工资# 4.查询员工号为176的员工的姓名和部门号# 5.显示表 departments 的结构,并查询其中的全部数据。

qq1021091799qq的博客 1109

MySQL中SELECT语句的执行过程

使用组合索引时,可能会有部分字段无法使用到索引,这时可以使用索引下推来减少回表操作,索引下推就是将所有查询条件都判断完成后再回表,没有使用索引下推就只判断了使用到索引的字段,其余字段的查询条件还需要回到Server层来判断。组合索引当遇到范围查询 (>、<) 就会停止匹配,也就是。

boluomi的博客 3256

MySQL 基本的SELECT语句

目录 1.所查询的数据内容 2.SELECT语句 2.0SELECT... 2.1 SELECT ... FROM 2.2 列的别名 2.3 去除重复行 2.4 空值参与运算 2.5 着重号 2.6 查询常数 3.显示表结构 4. 过滤数据 1.所查询的数据内容 mysql查询sql文件-数据集文档类资源-优快云文库 2.SELECT语句 2.0SELECT... SELECT 1;#没有任何子句 SELECT ...

weixin_65637841的博客 1017
上一篇: 【MySQL】第二部分 MySQL的启动和登录
下一篇: 【MySQL】第四部分 排序和分页
Tree_wws
博客等级 码龄6年 1万+粉丝 185原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值