MySQL_3 数据库的“CRUD“

news2025/1/14 18:01:57

目录

一、添加数据

        1.基本语法 : 

        2.代码演示 : 

二、查找数据

        1.基本语法 : 

        2.代码演示 : 

        3.查询中的计算 : 

        4.WHERE子句的扩展 : 

        5.排序查询 : 

三、修改数据

        1.基本语法 : 

        2.代码演示 : 

四、删除数据

        1.基本语法 : 

        2.代码演示 : 


一、添加数据

        1.基本语法 : 

        INSERT INTO table_name [(column_1, column_2...column_n)]

                VALUES (value_1, value_2...value_n), (value_1, value_2...value_n)...;

        注意事项——

        实际传入的数据应与其对应的字段类型相匹配;PS : '11'可以在底层转换为INT类型。

        数据的长度应该在列规定的范围内。eg : 不能把长度为30的字符串赋值给长度为20的数据类型。(本质也是传入的数据类型与对应字段类型不匹配)

        VALUES中实际传入的数据的排列位置必须与对应表中的列的排序位置一致

       若某个字段允许插入NULL,则可以传入NULL。(默认允许NULL值)

        5° 字符类型和日期类型的数据必须包含在'单引号'中

        若不指定要添加数据的列,默认向所有列中添加数据,此时可以不写table_name后的字段名;但若传入的数据有缺漏,会报错

        7° 如果某个列没有指定NOT NULL,也没有给定默认值,添加数据时若没有给定值默认为NULL;如果给定了默认值,则为默认值

        2.代码演示 : 

                演示Ⅰ——

                创建一张商品表,要求包含商品编号,商品名和商品的价格等信息;创建完毕后,向商品表中添加三条数据。
                代码如下 : 

# 创建表
CREATE TABLE IF NOT EXISTS `commodity`(
	`Goods_id` INT,
	`Goods_name` VARCHAR(25),
	`Goods_price` DOUBLE
);

# 向表中插入数据
INSERT INTO `commodity`(`Goods_id`, `Goods_name`, `Goods_price`)
			VALUES(1, 'Huawei-Nova11', 3000),
						(2, 'iPhone-iPhone14Pro', 5000),
						(3, 'XiaoMi-miNB', 6000),
						(4, 'SamSung-Galaxy', 4000);
				
# 查询表				
SELECT * FROM `commodity`;

                运行效果 :      

                演示Ⅱ——

                代码如下 : 

# 创建表
CREATE TABLE IF NOT EXISTS `commodity_EX`(
	`id` INT NOT NULL DEFAULT 11, 
	`name` VARCHAR(55) DEFAULT 'ice',
	`age` INT NOT NULL
);

# 向表中插入数据
INSERT INTO `commodity_EX`(`age`)
			VALUES(141);
			
INSERT INTO `commodity_EX`
			VALUES(5, 'Cyan', '141'); 	#'141'可在底层转换为141

# 查询表			
SELECT * FROM `commodity_EX`;

                运行效果 : 


二、查找数据

        1.基本语法 : 

        SELECT [DISTINCT] * / column_1, column_2...column_n

                FROM table_name;

        注意事项——

        1°  * 表示查询表中所有的列,也可以给出具体的列名来查询指定的列;

        2° FROM 指定要查询的表;

        3° DISTINCT的作用是为查询结果去重,即查询结果中不会出现相同的两条记录;若没有写DISTINCT, 查询结果不去重.

        2.代码演示 : 

                先创建一张学生表,代码如下 : 

CREATE TABLE IF NOT EXISTS `stu`(
	`id` INT NOT NULL DEFAULT 1,
	`name` VARCHAR(20) NOT NULL DEFAULT '',
	`Chinese` FLOAT NOT NULL DEFAULT 0.0,
	`Math` FLOAT NOT NULL DEFAULT 0.0,
	`English` FLOAT NOT NULL DEFAULT 0.0 
	# Don't add a comma after the last field definition
) CHARACTER SET utf8mb3 COLLATE utf8_bin ENGINE INNODB;

INSERT INTO `stu`(`id`, `name`, `Chinese`, `Math`, `English`)
	VALUES(1, 'Cyan', 106, 93, 126),
				(2, 'Ice', 110, 140, 88),
				(3, 'Five', 109, 145, 90),
				(4, 'Raina', 109, 145, 77),
				(5, 'Irving', 111, 133, 90),
				(6, 'James', 88, 145, 86),
				(6, 'James', 88, 145, 86);

SELECT * FROM `stu`;
	

                生成的表格如下:

                ①现要求去重查询,在SELECT后面添加DISTINCT,如下图所示 : 

                查询结果如下 : 

                ②现要求仅查询`name`和`Math`,修改查询语句如下 : 

                查询结果如下 :                 

        3.查询中的计算 : 

        SELECT [DISTINCT] / column_expression1, column_expression2...

                FROM table_name;

                在stu表的基础上,求查询出语数英三门功课的总成绩以及学生的姓名代码如下 : 

SELECT DISTINCT `name`, (`Chinese` + `Math` + `English`) FROM `stu`;

                运行效果 : 

                查询结果默认以运算的表达式作为列名,可通过"AS 别名"的方式进行优化,代码如下 : 

SELECT DISTINCT `name`, (`Chinese` + `Math` + `English`) AS `total_score` FROM `stu`;

        4.WHERE子句的扩展 : 

        常用运算符 : 

        1° 比较运算符——

                <, >, <=, >=, =, !=, <> : 小于,大于,小于等于,大于等于,不等于(2种写法);

                BETWEEN...AND : 显示在某闭区间内的值;

                IN(set) : 显示存在于set列表中的值,eg : in(30, 50, 100);

                LIKE / NOT LIKE : 模糊查询,%可表示任意个字符,_只表示一个字符

                IS NULL : 判断是否为空。

        2° 逻辑运算符——

                AND : 多个条件同时成立,相当于交集;

                OR : 多个条件任一成立,相当于并集;

                NOT : 条件不成立,相当于补集;

                现要求, 查询——
                ①英语成绩在80~90之间的学生;
                ②语文成绩大于100并且英语乘积小于90的学生;
                ③姓名中含有n字母的学生;
                ④语数英总分大于335分的学生;
                ⑤英语比数学成绩高同时数学比语文成绩低的学生;
                代码如下 : 

# 1.英语成绩在80~90之间的学生;
SELECT * FROM `stu`
			WHERE `English` BETWEEN 80 AND 90;
			
# 2.语文成绩大于100并且英语成绩小于90的学生;
SELECT * FROM `stu`
			WHERE `Chinese` > 100 AND `English` < 90;
			
# 3.姓名中含有n字母的学生;
SELECT * FROM `stu`
			WHERE `name` LIKE '%n' OR `name` LIKE '%n%';
			
# 4.语数英总分大于335分的学生;
SELECT * FROM `stu`
			WHERE (`Chinese` + `Math` + `English`) > 335;

# 5.英语比数学成绩高同时数学比语文成绩低的学生;
SELECT * FROM `stu`
			WHERE `English` > `Math` AND `Math` < `Chinese`;

                查询结果1 : (英语成绩在80~90之间的学生)

                查询结果2 :  (语文成绩大于100并且英语乘积小于90的学生)

                查询结果3 :  (姓名中含有n字母的学生) 

                查询结果4 :  (语数英总分大于335分的学生)  

                查询结果5 :  (英语比数学成绩高同时数学比语文成绩低的学生)   

        5.排序查询 : 

        SELECT * / column_1, column_2...column_3 

                FROM table_name

                ORDER BY column ASC / DESC...;

        注意事项——

        ORDER BY 后面指定要排序的列,排序的列既可以是是表中已有的列,也可以是SELECT语句中起的别名。

        ASC表示升序排列,DESC表示降序排列;若查询语句中没有使用ORDER BY  子句,或者使用了ORDER BY 子句但没有指定排序规则,默认即是ASC升序排列

        一般情况下,ORDER BY 子句应出现于SELECT 语句的末尾

                仍以stu表为例,现要求——
                按照数学成绩从降序排序:

SELECT * FROM `stu`
			ORDER BY `Math` DESC;

                按照语数英总成绩升序排序:

SELECT `name`, (`Chinese` + `Math` + `English`) AS `total_score`
			FROM `stu`
			ORDER BY `total_score`;


三、修改数据

        1.基本语法 : 

        UPDATE table_name

                SET column_1 = expr_1, column_2 = expr_2, ...column_n = expr_n

                [WHERE where_definition];

        注意事项——

        UPDATE语句可以修改表中指定列的数据,SET语句负责声明要修改的列以及修改后的数据;若没有设置WHERE子句,则默认会修改指定列所有的数据;若设置了WHRER子句,可以在指定列的基础上,指定要修改的行 / 记录

        同时修改多个列的数据,需要用英文逗号分隔。

        2.代码演示 : 

                上文中的商品表`commodity`如下

                现要求——
                将所有商品的价格修改为10000;将XiaoMi-miNB商品的商品名修改为Huawei-Mate50,商品编号修改为11;修改iPhone-iPhone14Pro商品的商品名为iPhone14ProMax,价格修改为13499。
                代码如下 : 

# 更新commodity表中的内容

UPDATE `commodity`
	SET `Goods_price` = 10000;
	
UPDATE `commodity`
	SET `Goods_name` = 'Huawei-Mate50',
			`Goods_id` = 11
	WHERE `Goods_name` = 'XiaoMi-miNB';
	
UPDATE `commodity`
	SET `Goods_name` = 'iPhone14ProMax',
			`Goods_price` = `Goods_price` + 3499
	WHERE `Goods_name` = 'iPhone-iPhone14Pro';
	
# 查询更新后的commodity表
SELECT * FROM `commodity`;

                运行效果 : 


四、删除数据

        1.基本语法 : 

        DELETE FROM table_name

                [WHERE where_definition];

        注意事项——

       若没有使用WHERE子句,默认将删除表中的全部数据

        DELETE FROM 子句只能删除记录(一行的数据),并不能删除一列的数据;若想达到“删除一列的数据”的效果,可以使用UPDATE SET语句将某一列的数据全部置为NULL或者是'';而若想删除某条列的结构,需要使用ALTER TABLE ... DROP语句。

        DELETE语句仅删除表的数据,表的结构仍然存在;若想删除整个表结构,需要使用DROP TABLE语句。

        2.代码演示 : 

                仍以`commodity`表为例,如下图所示 : 

                现要求删除表中商品价格 = 10000的记录代码如下 : 

DELETE FROM `commodity` 
			WHERE `Goods_price` = 10000;
			
SELECT * FROM `commodity`;

                运行效果 : 

        System.out.println("END------------------------------------------------------------------------------"); 

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

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

相关文章

吹爆,全网第一个手把手教你从零开始搭建Spring Cloud Alibaba的笔记

Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案&#xff0c;是阿里巴巴开源中间件与 Spring Cloud 体系的融合。 Springcloud 和 Srpingcloud Alibaba 区别&#xff1f; SpringCloud&#xff1a; 部分组件停止维护和更新&#xff0c;给开发带来不便;SpringCl…

stm32103ZET6使用编码器(磁电增量式)

这里写目录标题 磁电增量式编码器介绍TIM定时器&#xff08;编码器接口模式&#xff09;一些用到的算法均值滤波冒泡排序&#xff08;从小到大&#xff09;一阶低通滤波 编码器测数代码编码器接口HAL库函数 正点原子的电机例程(原例程用的是stm32f407&#xff0c;我这里改成用s…

ClickHouse:对不同类型Join的支持

ClickHouse 是一个流行的开源实时分析数据库&#xff0c;旨在为需要在大量数据上进行超低延迟分析查询的用例提供最佳性能。为了在分析应用程序中实现最佳性能&#xff0c;通常需要将表组合在一起进行数据非规范化处理。扁平化表通过避免联接来帮助最小化查询延迟&#xff0c;以…

从零开始学【网络安全】

前言&#xff1a;网络安全如何从零开始学习&#xff0c;少走弯路&#xff1f; 目录&#xff1a; 一&#xff0c;怎么入门&#xff1f; 1、Web 安全相关概念&#xff08;2 周&#xff09;2、熟悉渗透相关工具&#xff08;3 周&#xff09;3、渗透实战操作&#xff08;5 周&…

DevData Talks | 思码逸陆春蕊:研发效能度量落地的难点与计策

本期 DevData Talks 直播活动邀请到的重磅嘉宾是思码逸高级咨询专家陆春蕊老师。陆春蕊老师曾就职于Oracle&#xff0c;在软件质量、项目管理方面有着丰富的经验&#xff0c;在思码逸为上百家客户提供了研发效能体系、数据分析、实践落地等方面的咨询。 陆春蕊老师与我们聊了聊…

QML绘图便捷接口类Convenient API

在绘制矩形时&#xff0c;我们提供了一个便捷的接口&#xff0c;而不需要调用stroke或者fill来完成。 3.import QtQuick 2.0 4. 5.Canvas { 6. id: root 7. width: 120; height: 120 8. onPaint: { 9. var ctx getContext("2d") 10. ctx.fi…

了解进程控制

目录 1、基本概念 2、操作系统内核 2.1支撑功能 2.2资源管理功能 3、进程的创建 3.1进程的层次结构 3.2进程图 3.3引起创建进程的事件 3.4进程的创建 4、进程的终止 4.1引起进程终止的事件 4.2进程的终止过程 5、进程阻塞与唤醒 5.1引起进程阻塞和唤醒的事件 5.2进…

老测试告诉你自动化测试需要考虑什么?

写在前面 这篇文章译自著名测试专家James Bach的《Test Automation Snake Oil》一文&#xff0c;是笔者在学习和研究探索性测试时偶然发现的一篇较有意义的文章&#xff0c;很好地解答了我们对自动化测试的疑惑。 比如万能的自动化测试是否可以替代一切&#xff0c;还给我们提…

什么是多相流?在熟悉工业中常见的两相及多相流的分类及特点

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目…

安全工程与运营

安全工程与运营 系统安全工程系统安全工程重要性安全工程系统安全工程理论基础 成立成熟度模型、系统安全工程能力成熟度模型能力成熟度模型&#xff08;Capability Maturity Model&#xff09;能力成熟度模型基本思想系统安全工程能力成熟度模型SSE-CMM的作用SSE-CMM体系结构域…

第9章:创建和管理表

一、数据库的创建修改和删除 1.SQL的分类 DDL&#xff1a;数据定义语言 create创建、alter修改、drop删除、rename重命名、truncate清空 DML&#xff1a;数据操作语言 insert、delete、update、select DCL&#xff1a;数据控制语言 commit提交、rollback回滚、savepoint保存…

Spot CEO:我们为什么选择Babylon.js而不是Three.js

为现代网络开发令人兴奋的事情之一是底层平台的快速发展。 WebAssembly、WebGL、WebGPU、Web Worker 等正在解锁以前典型 Web 产品无法想象的体验。 在过去的几年里&#xff0c;我们看到像 Figma 这样的产品利用这一点创造了极具吸引力的业务和产品。 推荐&#xff1a;用 NSDT设…

前端-01Html5基本知识

1 基本 1.1 第一个前端程序 内容 <html><head><title>我的网页</title></head><body>Hello,我的第一个网页</body> </html>使用浏览器打开 1.2 工具安装 浏览器 谷歌浏览器 清缓存 ctrlshiftdelete vscode 生成浏览器文…

cubic 的 tcp friendliness 与拐点控制

TCP CUBIC 应该是迄今为止综合表现最优秀的算法&#xff0c;其中有两个亮点&#xff0c;一个是 RTT 无关性&#xff0c;另一个是可扩展性。RTT 无关性表现在 CUBIC 的 cwnd 表达式中没有 RTT 因子&#xff0c;而可扩展性则来自于曲线本身&#xff1a; 随着 BDP 增加&#xff0…

音视频技术开发周刊 | 292

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 谷歌将 AI 芯片团队并入云计算部门 追赶微软和亚马逊 OpenAI推出的ChatGPT获得一定成功&#xff0c;微软是OpenAI的重要投资者&#xff0c;它将ChatGPT植入必应搜索&#…

【16】SCI易中期刊推荐——计算机 | 人工智能领域(中科院2区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

【IO】零拷贝、mmap、sendfile

文章目录 前言一、普通IO二、mmap三、sendfile1. Linux2.1的sendfile2. Linux2.4的sendfile 四、总结与扩展1. 结论2. 解释、扩展 参考 前言 概念&#xff1a; 没有发生CPU拷贝数据&#xff0c;都是DMA&#xff08;直接内存访问&#xff09;拷贝 优势&#xff1a; 减少内核态…

《算经》中的百钱买百鸡问题,你会做吗?试下看看(39)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;趣味学Python。 今日主题 你知道我国历史上有个王朝叫北魏吗&#xff1f; 北魏&#xff08;386年—534年&#xff09;&#xff0c;南北朝时期北…

HashMap 简述

文章目录 前言一、HashMap的数据结构二、HashMap存储数据的大致过程1 哈希值2 什么是哈希冲突?3 为何有两种数据结构? 三、HashMap常用知识总结 前言 HashMap 是开发中常用的一种数据结构,通常用做返回值,计算比对等,会经常用到; 一、HashMap的数据结构 jdk8之后,数据结构是…

时至今日,Pascal系列Turbo Pascal 5.0依旧是我心中永远的神

从DOS时代到Windows时代&#xff0c;从桌面应用到Web应用&#xff0c;每一个时代都有它特定的编程工具 在我看来&#xff0c;DOS时代的编程语言&#xff0c;Pascal必占一席之地。 尤其是Turbo Pascal系列的最后一个版本——Turbo Pascal 5.0&#xff0c;更是我心目中永不褪色的…