初始MYSQL数据库(2)——创建、查询、更新、删除数据表的相关操作

news2024/9/23 5:32:29

找往期文章包括但不限于本期文章中不懂的知识点:

个人主页:我要学编程(ಥ_ಥ)-CSDN博客

所属专栏: MYSQL

前面我们学习了创建、删除数据库以及创建、查看、删除数据表的相关操作。 我们知道数据库中所存储的数据其实就是数据表中一条一条的记录。但是我们在创建数据表时,其没有存放任何数据。因此今天我们就来学习如果在数据表中存储数据记录,以及查看、删除等操作。

对数据表的一系列操作,我们称之为CRUD,即增删改查。

C - Create(增加);R - Retrieve(查询);U - Update(更新);D - Delete(删除)

目录

新增(Create)

查询(Retrieve)

修改(Update) 

删除(Delete)


新增(Create)

新增其实就是插入数据。其对应的语法是:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

 参数说明与注意事项:

1、table_name是你要插入数据的表的名称;

2、column1,column2,column3,..是表中的列名,也就是字段(属性);

3、value1,value2,value3,..是要插入的具体数值,与列名的顺序是相对应的;

4、如果要插入的数据是字符型,必须使用单引号 引起数据。

5、如果我们要插入所有列的数据,可以省略列名;否则,就得指定列名插入;

6、插入数据时,也可以同时插入多条数据。

代码演示:

insert into books (name, author, price, sort) 
values ('大话数据结构', '程杰', 59, '计算机');

注意:如果我们数据库的编码集使用的是Latin1 的话,就不能写入中文。要么将配置文件中的数据库服务的编码集改成 utf8mb4;要么在创建数据库时,将编码集设置成 utf8mb4。

插入完成之后,我们可以进行查询操作,来观察插入的数据是否符合我们的要求。

查询(Retrieve)

语法:

SELECT column1, column2, ...
FROM table_name
[WHERE condition]
[ORDER BY column_name [ASC | DESC]]
[LIMIT number];

参数说明与注意事项:

1、column1,column2,..是你想要查询的列的名称,如果使用*表示查询所有列。这里查询的结果也可以是一个表达式;

2、table_name 是你要查询的数据的表的名称;

3、WHEREcondition 是一个可选的子句,用于指定过滤条件,只返回符合条件的行。意思就是说这里是用来筛选数据的条件语句,可写可不写;

4、ORDER BY column_name[ASC」DESC]是一个可选的子句,用于指定结果集的排序顺序,默认是升序(ASC)。这里是对我们查询的结果集进行排序,默认情况下是升序(不写),即ASC,降序是DESC;

5、LIMIT number 是一个可选的子句,用于限制返回的行数。即分页查询;

6、DESC在SQL语句中有两个意思。一个是表示查询表的结构;另一个是表示降序排序 ;

7、分页查询是在查询结果过多时,将查询结果分成多页返回,并允许用户通过翻页来查看完整数据的一种查询方式。如下所示:

8、 也可以为查询的列名起一个简单易懂别名,这样在返回的查询结果中也是别名;

9、在查询的结果中,可能会出现重复的数据行,如果想要去除的话,可以加上一个关键字:DISTINCT。如果DISTINCT关键字后面有多个列名,只有当这些列名对应的数据都相同时,才能被看做是一组相同的数据。

10、WHERE条件可以使用表达式,但不能使用别名。这里我们就得来学习SQL语句中的执行顺序了。如下所示:

那有的小伙伴就会想到:既然在select子句中不能写,那么我在where子句中写不就行了吗?这里就违反了SQL的语法了。语法规定:别名只能在select子句中命名。 

代码演示: 

select * from books; -- 查询books表中所有的数据记录

select name from books; -- 指定查询name这一列

select chinese + english + math from score; -- 查询chinese+english+math的总成绩

-- 查询chinese+english+math的总成绩并为其起一个别名总成绩
-- as 也是可以省略的,后面的字符串如果中间没有空格隔开的话,也是可以不加单引号的
select chinese + english + math as '总分' from score; -- 这里的是一个数据行的不同列相加

-- 查询name为大话数据结构的全部信息
select * from books where name = '大话数据结构';

select distinct name from books; -- 查询不同名字的书籍

select price from books order by price asc; -- 将书籍的价格按照升序的结果排列

-- 限制查询的结果一次只显示5条记录
select price from books order by price asc limit 5;
-- 下面的写法也和上面的写法效果是一样的

-- 0 表示从第0条记录开始,5 表示一次性显示5条记录(这个可以跳着显示)
select price from books order by price asc limit 0, 5;
-- offset 表示偏移量,也就是从哪条记录开始,5 表示一次性显示5条记录(也可以跳着显示)
select price from books order by price asc limit 5, offset 0;

注意:在排序数据时,当有一列中出现了NULL时,这个NULL视为比任何值都要小。即升序是在最上方,降序是在最下方。 

在进行where的条件查询时,可能还需要用到下面这些比较运算符和逻辑运算符等。

比较运算符

运算符说明
>  >=  <  <=大于,大于等于,小于,小于等于
=等于,NULL不安全,就是说 NULL = NULL的结果是NULL
<=>等于,NULL安全,就是说NULL <=> NULL的结果是TRUE
!=  <>不等于
BETWEEN n0 AND n1

范围匹配,[a0,a1],如果 a0 <= value <= a1,返回 TRUE;否则,返回FALSE

IN (option., ...)如果是集合 option 中的任意一个,返回 TRUE
IS NULL是 NULL
IS NOT NULL不是 NULL
LIKE模糊匹配。%表示可以匹配任意多个(包括0个)任意字符;_表示只能匹配任意一个字符(只能是1个)

 注意:这里和 LIKE 搭配的%和 _ 都是占位符。

运算符

运算符说明
AND多个条件同时都为TRUE时,结果才是TRUE;否则为FALSE
OR任意一个条件为TRUE时,结果都为TRUE;否则,就是FALSE
NOT条件为TRUE时,结果为FALSE;反之,则为TRUE

 注意:AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分。其实我们建议只要是在使用时,遇到了有歧义的部分都是使用()给表明优先级的。

代码练习:

-- 查询价格在60~100之间的书籍相关信息(这里也可以用 >= 和 <= 来实现)
select * from books where price between 60 and 100;

-- 查询name中含有 数据结构 的书籍
select * from books where name like '%数据结构%';
-- 以下书籍皆可被查询到:大话数据结构、数据结构C语言版

修改(Update) 

语法: 

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

参数说明以及注意事项:

1、 table_name 是要更新数据的表的名称;

2、columnl,column2,..是要更新的列的名称;

3、valuel,value2,..是新的值,用于替换l日的值;

4、WHERE condition 是一个可选的子句,用于指定更新的行。如果省略WHERE子句,将更新表中的所有行,这是一个非常危险的操作;

5、WHERE子句后面也可以跟order by子句和limit 语句

代码练习:

-- 将书名为大话数据结构的书籍的相关信息更改为下面这些信息
update books set name = '阿里巴巴《Java开发手册-嵩山版》',
author = '众多Java开发者们', price = 0, sort = '计算机'
where name = '大话数据结构'; -- where子句一定不能少,否则就是全部修改了

-- 将书名为大话书籍结构的书籍价格提高为原来的两倍
update books set price = price * 2 where name = '大话数据结构';

-- 将书籍价格最贵的前三种,全部减去10元
update books set price = price - 10 order by price desc limit 3;

注意:SQL语法中没有复合运算符。如:+=、-=、*=.....这些操作都是错误的。 

我们知道了当没有写where子句时,便会全部修改,从这里也侧面反映了一个问题:当匹配到符合要求的数据时,会一次性全部修改,而不是只修改一条数据。

删除(Delete)

语法:

-- 注意:这里删除的是一条一条的记录,即数据行
DELETE FROM table_name WHERE condition;

参数以及注意事项:

1、table_name是你要删除数据的表的名称;

2、WHERE condition 是一个可选的子句,用于指定删除的行。如果省略 WHERE 子句,将删除表中的所有行,即将表中所有数据全部删除了,这同样是一个非常危险的操作;

3、同样在WHERE子句后面可以跟 order by子句和limit 语句。

代码练习:

-- 删除书籍名为大话数据结构或者是数据结构C语言版的全部信息(这里一定要加where子句)
delete from books where name = '大话数据结构' or name = '数据结构C语言版';

-- 将价格最低的三本书全部删除
delete from books order by price asc limit 3;

上面就是关于数据表的增删查改操作。 

好啦!本期 初始MYSQL数据库(2)——创建、查询、更新、删除数据表的相关操作 的学习就到处结束啦!我们下一期再一起学习吧!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

eval 函数 >>>> 变量 = eval (字符串)

作用&#xff1a; 去掉引号并会进行数据之间的加法等运算 eval函数与input的使用 注意eval 后面的括号中必须是字符串&#xff08;加了引号的&#xff09;&#xff0c;不能直接跟字符串

vue在生产环境和测试环境去掉 console 打印日志 只保留 “error“、 “warn“

vue在生产环境和测试环境去掉 console 打印日志 只保留 “error”、 “warn” 文章目录 vue在生产环境和测试环境去掉 console 打印日志 只保留 "error"、 "warn"一、安装插件二、babel.config.js配置 一、安装插件 npm install babel-plugin-transform-r…

Python的VSCode配置

主要参考&#xff1a; 使用vscode编写、运行Python程序_vscode写python-CSDN博客 这篇文章主要记录在vscode中编写、运行Python程序的方法&#xff0c;以便于后面的学习。 这里我是在win10里完成的&#xff0c;在Ubuntu中的配置方法与之类似。 如果你也在Win10下完成&#xff0…

Leetcode - 138双周赛

目录 一&#xff0c;3270. 求出数字答案 二&#xff0c;3271. 哈希分割字符串 三&#xff0c;3272. 统计好整数的数目 四&#xff0c;3273. 对 Bob 造成的最少伤害 一&#xff0c;3270. 求出数字答案 本题数据范围小&#xff0c;可以将数字转换成字符串来做&#xff0c;这里…

【科研绘图】【3D轨线图】:附Origin详细画图流程

目录 No.1 理解3D轨线图 No.2 画图流程 1 导入数据并绘图 2 设置绘图细节 3 设置坐标轴 4 效果图 No.1 理解3D轨线图 3D轨线图&#xff0c;是指在三维坐标系中&#xff0c;通过连续的点或线段连接而成的图形&#xff0c;用于表示一个或多个物体在三维空间中的运动路径。…

AT3340:支持BDS/GPS双模授时板数据手册

AT3340采用ATGM331C-5T31授时模块&#xff0c;是高授时精度的BDS/GPS双模接收机板卡&#xff0c;包含32个跟踪通道&#xff0c;支持GPS和BDS的单系统授时定位和双系统联合授时定位&#xff0c;可以通过上位机命令切换。其中的射频前端芯片和基带芯片全部由杭州中科微独立研发&a…

网络地址转换NAT(Network Address Translation)

NAT概述 NAT是将IP数据报文头中的IP地址转换为另一个IP地址的过程&#xff0c;主要用于实现内部网络&#xff08;私有IP地址&#xff09;访问外部网络&#xff08;公有IP地址&#xff09;的功能。Basic NAT是实现一对一的IP地址转换&#xff0c;而NAPT可以实现多个私有IP地址映…

wacat - 一款开源随机测试工具

想象一下&#xff0c;你离开电脑一会儿去拿一杯咖啡。与此同时&#xff0c;你的猫走过键盘&#xff0c;引发了一些混乱。 wacat 应用程序&#xff1a; • 访问你的网页应用的根网址 • 随机访问应用中的每个链接 • 在表单中添加随机文本输入 • 从下拉菜单、复选框等中选择…

当下最火爆的外卖会员卡项目值得吗

外卖会员卡项目是现如今外卖行业的热门课题之一。随着人们生活水平的提高和生活节奏的加快&#xff0c;外卖已经成为了许多人日常生活中的重要组成部分。为了吸引更多的顾客和提升用户黏性&#xff0c;许多外卖平台纷纷推出了会员卡项目。下面就给大家讲讲这个项目值不值得 第一…

vue2使用qiankun框架笔记

vue2使用qiankun框架笔记&#xff08;更新中&#xff09; 前言1. 创建项目1.1 创建项目和选择预置1.2 记录项目结构和依赖 2. 使用qiankun框架&#xff08;让微应用如iframe般嵌入到主应用中&#xff09;2.1 主应用下载乾坤&#xff0c;注册微应用2.2 改造主应用&#xff0c;创…

springboot中根据id更新用户信息

根据查询到详情&#xff0c;进行回想到弹窗&#xff0c;然后修改信息&#xff0c;保存更新用户信息 实现效果 代码实现 controller代码 /*** 修改员工*/PutMappingpublic Result update(RequestBody Emp emp) {log.info("修改员工操作 {}", emp);empService.updat…

深度学习(六)-循环神经网络

标准CNN模型的不足 假设数据之间是独立的。标准CNN假设数据之间是独立的&#xff0c;所以在处理前 后依赖、序列问题&#xff08;如语音、文本、视频&#xff09;时就显得力不从心。这一类数 据&#xff08;如文本&#xff09;和图像数据差别非常大&#xff0c;最明显的差别莫…

深度孤立森林 Deep Isolation Forest论文翻译(上)

README 绝大部分是自己翻译自己手打的&#xff0c;少部分参考有道翻译&#xff0c;主要是想仔细再读一遍&#xff0c;顺便就打出来了。这篇论文内容比较多&#xff0c;有代码&#xff0c;原作者有github和知乎账号&#xff0c;感兴趣可以找一下。欢迎讨论和批评指正。 用于异…

设计模式及创建型模式-python版

1 架构模式与设计模式 架构模式搞层次的设计模式&#xff0c; 描述系统整体结构和组织方式&#xff0c;设计模式是针对某个问题的解决方案&#xff0c;是一种解决问题的思路。 2 设计模式的分类 2.1 创建型模式 单例模式&#xff0c;工厂方法模式&#xff0c;抽象工厂模式&…

无人机反制:无线电侦测设备技术详解

无人机反制技术中的低空安全综合管理平台&#xff0c;作为守护低空安全的重要工具&#xff0c;集成了多种先进的技术手段和管理功能&#xff0c;实现了对无人机等低空飞行器的全方位、无死角监控与反制。以下是对该技术平台的详细解析&#xff1a; 一、技术架构与核心功能 低…

HTB-bike(SSTI模版注入)

前言 大家好&#xff0c;我是qmx_07,今天给大家讲解bike靶场 渗透过程 信息搜集 服务器开放了 22 ssh 和 http80端口 Wappalyzer 介绍&#xff1a;Wappalyzer是一种浏览器扩展程序&#xff0c;用于识别正在访问的网站所使用的技术栈和工具&#xff0c;比如使用的web框架&…

紫光同创PDS自动构建

1.开发背景 随着开发进度的不断迭代&#xff0c;需要对代码实行管控&#xff0c;FPGA代码管控也很重要&#xff0c;这个篇章主要是对紫光同创 PDS 开发环境下实现代码自动构建功能 2.开发需求 设计实验&#xff1a; 1&#xff09;点击一个脚本自动编译工程 2&#xff09;工程…

Fréchet Inception Distance(FID)原理

原理概述&#xff1a; FID 的核心思想是通过比较真实图像和生成图像在 Inception 模型特征空间中的分布差异&#xff0c;来评估生成模型的性能。它假设从真实数据和生成数据中提取的特征都近似服从高斯分布。 具体步骤&#xff1a; 特征提取&#xff1a;使用预训练的 Incepti…

动态加载使用Appsflyer报错Attribution data for this AppsFlyer ID is not available

1. 使用动态classloader加载AF SDK 日志&#xff1a;不能获取到非自然量 2024-09-03 18:07:22.350 2114-2114 ddup com.pn.cal I 找到AssetManager 2024-09-03 18:07:22.350 2114-2114 ddup com.pn.cal …

免费分享:中国煤炭资源分布图

数据详情 中国煤炭资源分布图 数据属性 数据名称&#xff1a;中国煤炭资源分布图 空间位置&#xff1a;中国 ​ 下载方法 打开数字地球开放平台网站&#xff0c;需要先注册登录&#xff0c;登录完成后&#xff0c;选择服务与支持下的资源下载&#xff0c;搜索并点击进入本…