【MySQL数据库】SQL语法基础--DQL(入门级)

ops/2025/3/6 8:06:04/

在学习数据库的数据操作之前,我们应该先学习查询操作,只有学会了查询,后面操作我们才能看到操作后的反馈。


基础查询

sql">select fieldlist from tablename;

解释:从[from]表tablename中查询,将字段列表fieldlist挑选[select]出来展示

例如:

sql">select * from emp;

其中【*】星号 表示 表中的所有字段(empno、ename、job、mgr、hiredate、sal、comm、deptno)。如果选择特定字段显示,那么就是:

sql">select empno,ename,sal from emp;

条件查询

直接查询

单纯的基础查询并不能解决所有问题,现在,我想找员工名叫smith的员工并获取他的信息:

语法: 

sql">select field_list from table_name where condition_list;
等于: =
大于: >
小于: <
不等于: != ; <>
是否为空: is NULL; is not NULL

范围查询

现在我的需求是找出sal薪资大于3000的员工,展示他们的信息:

如果需求是查询薪水在1000至4000的员工信息:那么有两种写法:

sql">select * from emp where sal >=1000 and sal <=4000;
select * from emp where sal between 1000 and 4000;

更多示例: 

sql">select * from emp where sal between 2000 and 4000;
select * from emp where sal >= 2000 and sal <= 4000;
select * from emp where sal >= 2000 && sal <= 4000;

知识点提炼:

与: and && 
或: or ||
非: not
在范围内: between num_a and num_b  [num_a,num_b]-左右都是闭区间
(不)在列表中: (not) in

模糊查询

now!我想查询名字里包含S的员工信息:

sql">select * from emp where ename like "%S%";

更多应用:

sql">select * from emp where job like "s%"; #job字段中首字母为s的所有数据行
select * from emp where job like "%.cpp"; #job字段中以.cpp结尾的所有数据行
select * from emp where job like "%hello%"; #job字段中包含hello的所有数据行
select * from emp where job like "_s%"; #job字段中第二个字符为s的所有数据行

知识点提炼:

(' * ''表示字段列表中所有字段的通配写法)

(“ _ ”表示记录中数据的占位符-一个占一个)

(“ % ”表示记录中数据的通配符-一个当多个)

进阶查询1

排序查询

sql">select * from mytb order by field[asc],field2 desc;
#查找mytb表,查询结果按照字段1升序(asc),如果字段1结果一样那就按照字段2降序(desc)排序显示
select * from mytb order by num;
#查找mytb表,查询结果按照第二列字段的数据进行升序(默认asc)排序

tips:asc 和 desc 只修饰单个字段

去重查询

sql">select distinct job from emp;    #job不一样的结果
select distinct job,ename from emp;    #job或ename不一样的结果(同时相同才叫重)select ename, distinct job from emp; #error,错误,无法在限制一条字段的基础上查询非限制字段
select distinct ename, distinct job from emp; #error,错误,无法“分别”限制多条字段,只能“同时”限制select distinct * from emp;#查询记录完全不一样

组合查询

sql">#默认去重
select id,name from student
union
select id,name from teacher#不去重
select id,name from student
union all
select id,name from teacher

tips:组合查询时,要求列的数量相同、列的数据类型类似

进阶查询2

分页查询

sql">select * from mytb order by field desc limit 10;
#根据字段field降序排序显示,查询结果记录数限制在前10条
select * from mytb order by field desc limit 5,5;
#从第五条数据开始往后取五条【第一个索引为0,索引为5代表第六条】

分组查询

sql">select 字段 
from 表名 
where 条件 
group by 字段;#where 分组前过滤-不可以使用分组函数select 字段 
from 表名 
group by 字段 having 条件;#having 分组后过滤-可以使用分组函数

执行顺序

sql">select distinct 字段 
from 表名 
where 条件 
group by 字段 having 条件 
order by 字段 limit 数字;#执行顺序
1.from 加载表
2.where 过滤后生成临时表
3.group by having 分组再过滤
4.select distinct 取出字段
5.order by limit 排序、限制


本章只做笔记记录目的,没有详细讲解。但是基础的语法可以用来参考。感谢大家支持! 


http://www.ppmy.cn/ops/163539.html

相关文章

FastGPT 引申:混合检索完整实例

文章目录 FastGPT 引申&#xff1a;混合检索完整实例1. 各检索方式的初始结果2. RRF合并过程3. 合并后的结果4. Rerank重排序后5. 最终RRF合并6. 内容总结 FastGPT 引申&#xff1a;混合检索完整实例 下边通过一个简单的例子说明不同检索方式的分值变化过程&#xff0c;假设我…

PyCharm接入本地部署DeepSeek 实现AI编程!【支持windows与linux】

今天尝试在pycharm上接入了本地部署的deepseek&#xff0c;实现了AI编程&#xff0c;体验还是很棒的。下面详细叙述整个安装过程。 本次搭建的框架组合是 DeepSeek-r1:1.5b/7b Pycharm专业版或者社区版 Proxy AI&#xff08;CodeGPT&#xff09; 首先了解不同版本的deepsee…

stable-diffusion-webui 加载模型文件

背景 stable-diffusion-webui 安装完毕后&#xff0c;默认的模型生成的效果图并不理想&#xff0c;可以根据具体需求加载指定的模型文件。国内 modelscope 下载速度较快&#xff0c;以该站为例进行介绍 操作步骤 找到指定的模型文件 在 https://modelscope.cn/models 中查找…

Pytorch 第八回:卷积神经网络——GoogleNet模型

Pytorch 第八回&#xff1a;卷积神经网络——GoogleNet模型 本次开启深度学习第八回&#xff0c;基于Pytorch的GoogleNet卷积神经网络模型。对于卷积神经网络&#xff0c;咱们讲过了AlexNe模型和VGG模型。本回再分享一个新的模型&#xff0c;叫做GoogleNet模型。这个模型的突出…

TCP-UDP-WebSocket-组播-单播

1. TCP 通信 TCP&#xff08;Transmission Control Protocol&#xff09;&#xff1a; 特点&#xff1a; 面向连接&#xff0c;可靠传输。 保证数据顺序和完整性。 适用于需要可靠传输的场景&#xff08;如文件传输、网页浏览&#xff09;。 C 语言案例&#xff1a; 服务器端…

全局异常处理器为什么不能处理过滤器异常,有那些解决方案

一、全局异常处理器无法处理过滤器异常的原因 1. 请求生命周期的不同阶段 过滤器&#xff08;Filter&#xff09;&#xff1a;过滤器是Servlet规范的一部分&#xff0c;它在请求进入Servlet容器时首先被执行。过滤器可以修改请求或响应&#xff0c;甚至可以完全终止请求处理过…

C语言中的野指针如何避免

野指针&#xff08;Dangling Pointer&#xff09;是指指向无效内存地址的指针&#xff0c;使用野指针会导致程序出现未定义行为&#xff0c;如程序崩溃、数据损坏等。以下为你详细介绍几种常见的野指针情况&#xff1a; 未初始化的指针 当你声明一个指针变量&#xff0c;但没有…

华为hcie证书有什么作用?

新盟教育 专注华为认证培训十余年 为你提供认证一线资讯&#xff01; 在当今数字化飞速发展的时代&#xff0c;ICT行业对专业人才的需求日益增长。华为HCIE证书作为华为认证体系中的最高级别认证&#xff0c;无疑是众多IT从业者追求的目标。那么&#xff0c;华为HCIE证书到底有…