当前位置: 首页 > news >正文

【MySQL】基本查询(第一弹)

在这里插入图片描述

文章目录

  • 1.insert
    • 1.1默认全列插入
    • 1.2指定列插入
    • 1.3插入多组数据
    • 1.4插入数据时键值冲突
  • 2.替换(replace)
  • 3.Retrieve(查询语句)---select
    • 3.1查询全列
    • 3.2查询某一列或者多列数据
    • 3.3查询并重命名
  • 4.where条件
    • 4.1比较运算符和逻辑运算符的例子
  • 5.结果排序
  • 总结

1.insert

我们先创建一张表:
在这里插入图片描述
往里插入数据:

1.1默认全列插入

insert into student values(1,128,'赵云','12354657');

在这里插入图片描述

1.2指定列插入

insert into student(sn,name,QQ) values(129,'诸葛亮','12254657');

在这里插入图片描述

1.3插入多组数据

insert into student(sn,name,QQ) values(130,'盖伦','122546523121'),(131,'亚索','12354645132');

在这里插入图片描述

1.4插入数据时键值冲突

insert into student(sn,name,QQ) values(129,'鸣人','12675674657') on duplicate key update sn = 132;

在这里插入图片描述
当唯一键或者主键产生冲突时,可以更新该行数据的每一列数据。

2.替换(replace)

-- 主键 或者 唯一键 没有冲突,则直接插入;
-- 主键 或者 唯一键 如果冲突,则删除后再插入
REPLACE INTO students (sn, name) VALUES (20001, '曹阿瞒');
Query OK, 2 rows affected (0.00 sec)
-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,删除后重新插入

表中有数据冲突
在这里插入图片描述
表中没有数据冲突时,就和insert相同。

3.Retrieve(查询语句)—select

SELECT
[DISTINCT] {* | {column [, column] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY column [ASC | DESC], ...]
LIMIT ...

3.1查询全列

select *from student;

在这里插入图片描述

3.2查询某一列或者多列数据

select name from student;

在这里插入图片描述

select name,QQ,sn from student;

在这里插入图片描述

3.3查询并重命名

可以直接在需要重命名的列后面跟上重命名的名字

select name 姓名,QQ,sn from student;

在这里插入图片描述
也可以在需要重命名的列名称后面加上as,然后as后面加上重命名的名字

select name as 姓名,QQ,sn from student;

在这里插入图片描述

4.where条件

我们先重新创建一张表:

---创建表
CREATE TABLE exam_result (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL COMMENT '同学姓名',
chinese float DEFAULT 0.0 COMMENT '语文成绩',
math float DEFAULT 0.0 COMMENT '数学成绩',
english float DEFAULT 0.0 COMMENT '英语成绩'
);
---插入数据
INSERT INTO exam_result (name, chinese, math, english) VALUES
('唐三藏', 67, 98, 56),
('孙悟空', 87, 78, 77),
('猪悟能', 88, 98, 90),
('曹孟德', 82, 84, 67),
('刘玄德', 55, 85, 45),
('孙权', 70, 73, 78),
('宋公明', 75, 65, 30);

如图:
在这里插入图片描述
逻辑运算符

逻辑运算符说明示例
AND两个条件都成立 时返回 TRUESELECT * FROM users WHERE age > 18 AND city = 'Shanghai';
OR任意一个条件成立 时返回 TRUESELECT * FROM users WHERE age < 18 OR city = 'Beijing';
NOT取反,如果条件为 TRUE,则返回 FALSE,反之亦然SELECT * FROM users WHERE NOT age >= 18;
IN判断值是否在指定列表中,相当于多个 ORSELECT * FROM users WHERE city IN ('Shanghai', 'Beijing', 'Guangzhou');
NOT IN判断值是否不在指定列表中SELECT * FROM users WHERE city NOT IN ('Shanghai', 'Beijing');
BETWEEN … AND …判断值是否在某个范围内(包含边界值)SELECT * FROM orders WHERE price BETWEEN 100 AND 500;
NOT BETWEEN … AND …判断值是否不在某个范围内SELECT * FROM orders WHERE price NOT BETWEEN 100 AND 500;
LIKE进行模糊匹配% 表示任意字符,_ 表示单个字符)SELECT * FROM users WHERE name LIKE 'J%';
NOT LIKE排除模糊匹配的结果SELECT * FROM users WHERE name NOT LIKE 'A%';
IS NULL判断字段值是否为 NULLSELECT * FROM users WHERE email IS NULL;
IS NOT NULL判断字段值是否不为 NULLSELECT * FROM users WHERE email IS NOT NULL;

比较运算符

比较运算符说明示例
=等于(匹配完全相同的值)SELECT * FROM users WHERE age = 25;
<> 或 !=不等于SELECT * FROM users WHERE age <> 30;
>大于SELECT * FROM users WHERE age > 18;
<小于SELECT * FROM users WHERE age < 60;
>=大于等于SELECT * FROM users WHERE salary >= 5000;
<=小于等于SELECT * FROM users WHERE salary <= 10000;

4.1比较运算符和逻辑运算符的例子

举例:英语不及格的同学及英语成绩 ( < 60 )

select name,english from exam_result where english < 60;

在这里插入图片描述
举例: 语文成绩在 [80, 90] 分的同学及语文成绩
第一种做法:

select name,chinese from exam_result where chinese >=80 and chinese <= 90;

在这里插入图片描述
第二种做法:

select name,chinese from exam_result where chinese between 80 and 90;

在这里插入图片描述
举例:语文成绩 > 80 并且不姓孙的同学

select name,chinese from exam_result where chinese > 80 and name not like '孙%';

在这里插入图片描述
举例:数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
这里可以用逻辑运算符in,也可以用and

在这里插入图片描述
就举上面这么多例子,其他的都比较容易理解。

5.结果排序

-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
SELECT ... FROM table_name [WHERE ...]
ORDER BY column [ASC|DESC], [...];

desc是降序,asc是升序,MySQL默认是升序的。
默认升序:
在这里插入图片描述

降序:
在这里插入图片描述

总结

通过本文的学习,我们了解了SQL中常见的数据操作方法。从 INSERT 语句的多种插入方式,到 REPLACE 语句的替换机制,再到 SELECT 语句的各种查询技巧,我们掌握了数据库操作的核心技能。同时,我们还学习了 WHERE 条件的使用,能够根据特定需求筛选数据,并且通过 ORDER BY 进行结果排序,使查询数据更具可读性。
SQL 作为数据库管理的重要工具,熟练掌握这些基本语句,将有助于提高数据处理的效率。在实际应用中,结合索引优化、事务管理等高级特性,可以进一步提升查询性能和数据管理能力。希望本篇内容能帮助大家打下坚实的数据库基础,在后续学习和实际开发中更加得心应手。

相关文章:

  • P10045 [CCPC 2023 北京市赛] 线段树
  • docker部署dify
  • VNA操作使用学习-14 再测晶振特性
  • 发布第四代液晶电视,TCL引领全新美学境界
  • 理解 RAG 第四部分:RAGA 和其他评估框架
  • Android BLE 权限管理
  • 城市街拍人像自拍电影风格Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • 内网渗透(CSMSF) 构建内网代理的全面指南:Cobalt Strike 与 Metasploit Framework 深度解析
  • latex-二项式括号怎么敲?
  • Linux --centos安装显卡驱动
  • 【AI】AI编程助手:Cursor、Codeium、GitHub Copilot、Roo Cline、Tabnine
  • 零拷贝技术深度解析:原理、实现与性能革命
  • PWM控制电机转速的原理及相关寄存器值计算
  • 防窜货实时监控系统大屏:用python和Streamlit实现的防窜货大屏
  • 【算法学习】最小公倍数问题
  • HTML5前端第七章节
  • 【Go】结构体的基本使用
  • 2025年优化算法:龙卷风优化算法(Tornado optimizer with Coriolis force)
  • Java反序列化CommonsBeanutils无依赖打Shiro
  • 阿里的MNN源码如何编译成so文件,供Android调用
  • 马上评|让查重回归促进学术规范的本意
  • 女外交官郑璇已任中国驻莫桑比克大使
  • 市场监管总局等五部门约谈外卖平台企业
  • 中国科学院院士徐春明不再担任山东石油化工学院校长
  • 5年建成强化城市核心功能新引擎,上海北外滩“风景文化都是顶流”
  • 浙江省机电集团党委书记、董事长廉俊接受审查调查