Mysql基本查询(上)

🏝️专栏:Mysql_猫咪-9527的博客-CSDN博客
🌅主页:猫咪-9527-CSDN博客 

“欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。”

目录

1. 创建(create)

全列插入

省略into插入

插入单条记录

插入多条记录

处理重复键

replace into

根据原表创建新表 

 将查找的内容添加至新表

2. 读取(retrieve)

查询所有列

去重查询

查询特定列

重命名查询

表达式查询 

条件查询

排序查询

分页查询

聚合查询

随堂测试

CRUD

create

retrieve

update

delete


1. 创建(create)

create语句用于向数据库中插入新数据。理解如何高效地插入数据是数据库操作的基本技能。 

语法: 

这是MySQL中 INSERT 语句的基本语法,用于向数据库表中插入数据。它的结构如下:

基本语法

INSERT [INTO] table_name
[(column1, column2, ...)]
VALUES (value1, value2, ...) [, (value1, value2, ...)] ...

各部分解释

  • INSERT INTO:表示插入数据到指定表。

  • table_name:指定要插入数据的表名。

  • (column1, column2, ...):可选部分,列出要插入数据的列名。如果省略列名,默认插入表中的所有列。

  • VALUES:后面跟随插入的值。每一组值对应表中的列。

  • value_list:插入的值,可以是单个值,也可以是多个值,多个值之间用逗号隔开。

小知识:

  • 插入大量数据时,使用批量插入可以提高效率,而不是一次插入一条记录。

  • 如果插入数据时,某些字段没有提供值,它们会使用默认值(例如 null 或字段定义时的默认值)。

  • 其中insert into 可以写为insert,into可以省略。 

示例:

  • 全列插入

全列插入:所要插入的列可以省略不写,但是必须插入表的全部列。

指定列插入:可以选择要插入列

  • 省略into插入

下面两条语句达到的效果一样:

  • 插入单条记录
insert into students values (8, 130,'李明','123');
  • 插入多条记录
insert into students values
(9, 131,'刘亮','166'),
(10,132,'王强','124');

  • 处理重复键

使用on duplicate key update来更新已有记录。

insert into students  
values (200, 20010, '张伟','111111')
on duplicate key update name = 'zhangwe';
未加(修改失败)
添加(修改成功)
修改前修改后

注:

1 rows affected(1行数据收到影响):当前表中无数据冲突,直接插入
0 rows affected(0行数据收到影响):当前表中有数据冲突,但是插入值与原有值相同
2rows affected(2行数据收到影响):当先列表数据冲突插入并修改
  • replace into

当主键或唯一键冲突时,删除旧记录并插入新记录。

replace into employees (emp_id, emp_name) values (30001, '陈晨');
数据冲突,直接修改成功(覆盖式插入,如果数据冲突,原数据会被删除,重新插入
插入前插入后
  • 根据原表创建新表 
create table students_e like students; 

 新表复制了原表的表结构,没有复制内容:

原表:创建原表副本:
原表数据:原表副本数据:
  •  将查找的内容添加至新表
insert into students_e select *from where name='张飞';

2. 读取(retrieve)

select语句用于查询数据库中的数据。可以通过过滤条件、排序和分页等操作,精确获取所需数据。

基本语法:

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

各部分解释:

  1. SELECT:用于选择查询的数据。

  2. DISTINCT(可选):如果指定了 DISTINCT,则只返回不同的(唯一的)结果。

  3. *:表示选择所有列。

  4. column [, column] ...:表示选择一个或多个特定列。

  5. FROM table_name:指定从哪个表中获取数据。

  6. WHERE ...(可选):可以指定查询的条件,筛选符合条件的记录。

  7. ORDER BY column [ASC | DESC](可选):对结果进行排序,ASC 是升序,DESC 是降序。

  8. LIMIT ...(可选):限制返回的记录数。

小知识:

  • distinct关键字用于去重,查询结果中只返回唯一的记录。

  • 使用join可以将多个表的数据结合起来,特别适用于处理关系型数据。

示例:

-- 创建表结构
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);
  • 查询所有列
select * from exam_result;
  • 去重查询
select distinct *from distinct_text;
普通查询:去重查询:
  • 查询特定列
select id,name from exam_result;
  • 重命名查询
select id 学号 ,name 姓名 ,math+chinese+english 总分 from exam_result;

  • 表达式查询 
select 1+1;
select 1>2;
select math+10 from exam_result;
select math from exam_result;
  • 条件查询
select emp_name, salary from employee_details where salary < 5000;

 比较运算符:

逻辑比较符:

  • 排序查询
select emp_name, department from employee_details order by department desc;

排序查询中通过:order by desc(降序)/asc(升序),来确定返回列表的顺序,默认为asc。

注意:未使用order返回的数据是未定义的,请不要依赖

  • 分页查询
select emp_id, emp_name from employee_details limit 5 offset 0;

 分页查询两种方式:

方案一:

mysql使用 limitoffset 来控制分页。

select * from table_name limit 10 offset 20;
  • limit 指定返回记录的数量。
  • offset 指定查询结果跳过的记录数。

方案二:

select * from exam_result limit 20,10;
  • 逗号前面表示指定查询结果跳过的记录数
  • 逗号后面表示指定返回记录的数量

  • 聚合查询
select count(*) from employees;

随堂测试

学习到这里的小伙伴我为你们准备了配套练习题快来尝试一下吧

随堂测试链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/39534.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[工控机安全] 使用DriverView快速排查不可信第三方驱动(附详细图文教程)

导语&#xff1a; 在工业控制领域&#xff0c;设备驱动程序的安全性至关重要。第三方驱动可能存在兼容性问题、安全漏洞甚至恶意代码&#xff0c;威胁设备稳定运行。本文将手把手教你使用 DriverView工具&#xff0c;高效完成工控机驱动安全检查&#xff0c;精准识别可疑驱动&a…

Docker 镜像构建与优化

一、Dockerfile 构建镜像 1.1.拉取所需镜像 首先 docker pull 拉取一个 centos7 的镜像。 docker pull centos:7 下载 nginx 源码包。 官网&#xff1a;nginx: download wget https://nginx.org/download/nginx-1.26.3.tar.gz 1.2.解决 CentOS 7 安装源问题 因为原本的 …

PHP回调后门分析

什么是PHP回调后门&#xff1f; PHP回调后门是指攻击者利用PHP的回调函数等技术&#xff0c;绕过WAF&#xff08;Web应用防火墙&#xff09;&#xff0c;在受攻击的PHP应用程序中插入恶意代码。这种后门可以被用来执行任意PHP代码&#xff0c;例如访问数据库、执行系统命令、窃…

vue数据重置

前言 大家在开发后台管理系统的过程中&#xff0c;一定会遇到一个表格的条件查询重置功能吧&#xff0c;如果说查询条件少&#xff0c;重置起来还算是比较简单&#xff0c;如果元素特别多呢&#xff0c;那玩意写起来可遭老罪喽&#xff0c;那今天就给大家整一个如何快速重置数…

【js逆向入门】图灵爬虫练习平台 第九题

地址&#xff1a;aHR0cHM6Ly9zdHUudHVsaW5ncHl0b24uY24vcHJvYmxlbS1kZXRhaWwvOS8 f12进入了debugger&#xff0c;右击选择一律不在此处暂停&#xff0c; 点击继续执行 查看请求信息 查看载荷&#xff0c;2个加密参数&#xff0c;m和tt 查看启动器&#xff0c;打上断点 进来 往…

OpenCV第2课 OpenCV的组成结构与图片/视频的加载及展示

1.OpenCV 的组成结构 2.OpenCV 的具体模块 3. 图像的读取 4. 视频的读取 1.OpenCV 的组成结构 OpenCV 是由很多模块组成的,这些模块可以分成很多层: 最底层是基于硬件加速层(HAL)的各种硬件优化。再上一层是opencv_contrib 模块所包含的OpenCV 由其他开发人员所贡献的代…

scNET:整合scRNA-seq和PPI用于学习基因和细胞的embedding

scRNA-seq 技术的最新进展为深入了解各种组织的异质性提供了前所未有的视角。然而&#xff0c;仅靠基因表达数据往往无法捕捉和识别细胞通路和复合物的变化&#xff0c;因为这些变化在蛋白质水平上更容易被察觉。此外&#xff0c;由于scRNA-seq数据存在高噪声水平和零膨胀等固有…

吴恩达机器学习笔记复盘(十一)逻辑回归的代价和损失函数

简介 逻辑回归是一种二分类算法&#xff0c;损失函数和代价函数和线性回归模型不同。目标是根据特征预测标签Y&#xff08;0或1&#xff09;。模型通过参数W和B拟合数据&#xff0c;但如何选择最优参数成为关键。本质上说线性回归的损失函数是对数值本身的误差平均值描述&…

ctfshow WEB web3

提示是一道php伪协议文件包含的题目&#xff0c;通过get传递的参数是 url 使用 Burp 抓包&#xff0c;发送给 Repeater 构造php伪协议&#xff0c;通过url传递 ?urlphp://input <?php system("pwd");?> 查看当前目录 <?php system("ls");?…

Windows部署deepseek R1训练数据后通过AnythingLLM当服务器创建问答页面

如果要了解Windows部署Ollama 、deepseek R1请看我上一篇内容。 这是接上一篇的。 AnythingLLM是一个开源的全栈AI客户端&#xff0c;支持本地部署和API集成。它可以将任何文档或内容转化为上下文&#xff0c;供各种语言模型&#xff08;LLM&#xff09;在对话中使用。以下是…

word中指定页面开始添加页码

第一步&#xff1a; 插入页码 第二步&#xff1a; 把光标放到指定起始页码处 第三步&#xff1a; 取消链接到前一节 此时关掉页脚先添加分节符 添加完分节符后恢复点击 第四步&#xff1a; 设置页码格式&#xff0c;从1开始 第五步&#xff1a; 删掉不要的页码&#xff0c…

多语言语料库万卷·丝路2.0开源,数据模态全面升级,搭建文化交流互鉴AI桥梁

3月22日&#xff0c;上海人工智能实验室&#xff08;上海AI实验室&#xff09;联合新华社新闻信息中心、上海外国语大学、外研在线等&#xff0c;发布全新升级的“万卷丝路2.0”多语言语料库&#xff0c;通过构建多语言开源数据底座&#xff0c;以人工智能赋能“一带一路”高质…

Windows桌面采集技术

在进入具体的方式讨论前&#xff0c;我们先看看 Windows 桌面图形界面的简化架构&#xff0c;如下图&#xff1a; 在 Windows Vista 之前&#xff0c;Windows 界面的复合画面经由 Graphics Device Interface&#xff08;以下简称 GDI&#xff09;技术直接渲染到桌面上。 在 Wi…

C# BULK INSERT导入大数据文件数据到SqlServer

BULK INSERT 的核心原理 BULK INSERT 是一种通过数据库原生接口高效批量导入数据的技术&#xff0c;其核心原理是绕过逐条插入的 SQL 解析和执行开销&#xff0c;直接将数据以二进制流或批量记录的形式传输到数据库。 在.NET中&#xff0c;主要通过 ​SqlBulkCopy 类​&#x…

Power BI嵌入应用:常见问题与调试技巧

将Power B 嵌入应用时的常见问题与调试技巧 Power BI Embedded 是一项 Microsoft Azure 服务&#xff0c;允许开发人员将交互式 Power BI 报表和仪表板嵌入到外部自定义应用程序或网站中。将Power BI嵌入应用程序能有效提升用户体验&#xff0c;但实施过程中可能面临一些典型问…

Android Studio编译问题

文章目录 GradleJDK版本不兼容 Gradle JDK版本不兼容 Incompatible because this component declares an API of a component compatible with Java 11 and the consumer needed a runtime of a component compatible with Java 8 查看module内gradle文件是否设置jdk版本&…

Four.meme是什么,一篇文章读懂

一、什么是Four.meme&#xff1f; Four.meme 是一个运行在 BNB 链的去中心化平台旨在为 meme 代币供公平启动服务。它允许用户以极低的成本创建和推出 meme 代币&#xff0c;无需预售或团队分配&#xff0c;它消除了传统的预售、种子轮和团队分配&#xff0c;确保所有参与者有…

解决PHP内存溢出问题的讨论和分析

PHP作为一种广泛使用的服务器端脚本语言&#xff0c;在处理大量数据或复杂任务时&#xff0c;常常会遇到内存溢出的问题。内存溢出不仅会导致程序崩溃&#xff0c;还可能影响服务器的稳定性。本文将探讨解决PHP内存溢出问题的最佳实践&#xff0c;并通过代码示例进行详细说明。…

git,openpnp - 根据安装程序打包名称找到对应的源码版本

文章目录 git,openpnp - 根据安装程序打包名称找到对应的源码版本概述笔记备注 - 提交时间不可以作为查找提交记录的依据END git,openpnp - 根据安装程序打包名称找到对应的源码版本 概述 想在openpnp官方最新稳定版上改一改&#xff0c;首先就得知道官方打包的安装程序对应的…

基于Spring Boot的停车场管理系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…