数据库基础(7) . DML-基本操作
3.3.DML
DML 是 “Data Manipulation Language”(数据操作语言)的缩写,在数据库管理系统(DBMS)中用来处理已存在的数据库中的数据。
它主要包含用于插入(INSERT
)、更新(UPDATE
)、删除(DELETE
)
以及查询(SELECT
,虽然 SELECT 有时被归类为其自己的类别,即数据查询语言,DQL)数据库记录的SQL命令。
这些操作允许用户修改存储在表中的数据。
3.3.0.测试用表
/*Navicat Premium Data TransferSource Server : 00localSource Server Type : MySQLSource Server Version : 80016 (8.0.16)Source Host : localhost:3306Source Schema : a1Target Server Type : MySQLTarget Server Version : 80016 (8.0.16)File Encoding : 65001Date: 26/10/2024 09:48:54
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (`stu_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学生主键#自增长',`stu_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学生姓名',`stu_sex` tinyint(4) NULL DEFAULT NULL COMMENT '学生性别#男=1, 女=0',`stu_birth` date NULL DEFAULT NULL COMMENT '学生生日',`stu_weight` double NULL DEFAULT NULL COMMENT '学生体重',`stu_height` int(11) NULL DEFAULT NULL COMMENT '学生身高',`team_id` int(11) NULL DEFAULT NULL COMMENT '团队外键',`stu_info` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',PRIMARY KEY (`stu_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'student 学生' ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES (1, '刘首一', 1, '2001-07-20', 61.3, 179, 1, '');
INSERT INTO `student` VALUES (2, '王小二', 1, '2004-03-05', 59.6, 182, 1, '热爱编程的计算机科学专业新生');
INSERT INTO `student` VALUES (3, '李小三', 0, '2002-12-13', 48.5, 168, 1, '对历史非常感兴趣');
INSERT INTO `student` VALUES (4, '赵小四', 1, '2004-05-29', 66.2, 180, 1, '对未来充满好奇的艺术系学生');
INSERT INTO `student` VALUES (5, '武五五', 0, '2005-05-05', NULL, NULL, NULL, NULL);
INSERT INTO `student` VALUES (6, '刘小六', 1, '2001-08-19', 56.6, 166, 3, '热衷于探索科学的奥秘');
INSERT INTO `student` VALUES (7, '闩小七', 1, '2004-03-05', 57.4, 172, 1, '对文学有着浓厚的兴趣');
INSERT INTO `student` VALUES (8, '赵静子', 0, '2004-11-26', 50, 156, 3, 'NULL');
INSERT INTO `student` VALUES (9, '张不开', 0, '2002-07-06', 60, 176, 2, 'null');
INSERT INTO `student` VALUES (10, '小金刚', 1, NULL, 59.6, 185, 2, '(Null)');
INSERT INTO `student` VALUES (11, '吴琼小', 0, '2005-07-22', 49.2, 166, 1, NULL);
INSERT INTO `student` VALUES (12, '张崖五小', NULL, '2005-01-08', 70.8, 182, 1, '一个电子游戏设计专业的新生');
INSERT INTO `student` VALUES (13, '何叶小露', 0, '2003-06-11', 44.5, 168, NULL, '一个喜欢旅行和摄影的人');
INSERT INTO `student` VALUES (14, '小沈阳', 1, NULL, 66.9, 173, 3, '热爱音乐');-- ----------------------------
-- Table structure for team
-- ----------------------------
DROP TABLE IF EXISTS `team`;
CREATE TABLE `team` (`team_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '团队主键#自增长',`team_title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '团队名称',`stu_count` int(11) NULL DEFAULT NULL COMMENT '成员数量',PRIMARY KEY (`team_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'team 团队' ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of team
-- ----------------------------
INSERT INTO `team` VALUES (1, '科技组', 7);
INSERT INTO `team` VALUES (2, '龙虎舞狮', 2);
INSERT INTO `team` VALUES (3, '玄武岩合唱团', 3);
INSERT INTO `team` VALUES (4, '考古兴趣班', NULL);SET FOREIGN_KEY_CHECKS = 1;
3.3.1.基本语法
3.3.1.1.查询表中的记录
语法 : select 字段1, 字段2,... from 表名
-- 查询 全部记录 全部字段
select stu_id, stu_name, stu_sex, stu_birth, stu_weight, stu_height, team_id, stu_info
from student;-- 查询部分字段
select stu_name, stu_sex, stu_birth
from student;-- 根据条件查询部分记录
select stu_id, stu_name, stu_sex, stu_birth, stu_weight, stu_height, team_id, stu_info
from student
where stu_id = 1;
3.3.1.2.增加一条
语法 : insert into 表名( 字段1, 字段2,... ) values( 值1, 值2, ... )
-- 插入全字段数据
insert into student(stu_id, stu_name, stu_sex, stu_birth, stu_weight, stu_height, team_id, stu_info)
values ( 20, '刘小翠', 0 , '2003-09-02' , 56.7 , 168 , 1, '学霸');-- 插入全字段数据, 字段可以省略
insert into student
values ( 21, '马小花', 0 , '2004-02-12' , 52.7 , 158 , 2, '喜欢运动');-- 插入部分字段数据
insert into student(stu_id, stu_name, stu_sex)
values ( 22, '肖火火', 1);-- 插入部分字段数据, id自增
insert into student(stu_name, stu_sex)
values ( '叶发', 1);
3.3.1.3.增加多条
语法 : insert into 表名( 字段1, 字段2 ) values( 值1, 值2 ), ( 值1, 值2 ), ( 值1, 值2 )
-- 插入多条
insert into student( stu_name, stu_sex, stu_birth )
values ('紫川禾', 1, '2002-09-08'), ('帝木', 0, '2001-06-09'), ('斯特森', 1, '2001-10-11');
3.3.1.4.从另一张表中导入数据
语法 : insert into 导入表名 ( 字段1, 字段2, ... ) select 字段1, 字段2, ... from 导出表名
先创建 stu 表并增加 字段
-- 创建表
create table stu(id int primary key auto_increment,name varchar(20) not null,sex boolean not null,birth date
);
从 student表
中读取数据 导入到 stu表
中,
其中 sex
写成 固定的 1( 当然 这个字段也可以读取来)
insert into stu(name, sex, birth)
select stu_name, 1, stu_birth
from student
where stu_birth is not null;
3.3.1.5.修改记录
语法 : update 表名 set 字段1 = 值1, 字段2 = 值2 where 条件
注意没有条件, 会修改表中所有记录
主键可以修改, 但通常不要这样做
-- 修改全部属性
update student
setstu_name = '刘小光',stu_sex = 1,stu_birth = '2000-03-22',stu_weight = 65.6,stu_height = 178,team_id = 2,stu_info = '不喜欢运动'
where stu_id = 20;-- 只修改总分属性
update student
setstu_info = '喜欢写作'
where stu_id = 20;
3.3.1.6.删除记录
语法 : delete from 表名 where 条件
不加where 条件
会删除表中全部的记录
-- 删除
delete from student where stu_id = 20;
相关文章:

数据库基础(7) . DML-基本操作
3.3.DML DML 是 “Data Manipulation Language”(数据操作语言)的缩写,在数据库管理系统(DBMS)中用来处理已存在的数据库中的数据。 它主要包含用于插入(INSERT)、更新(UPDATE&…...

windows运行ffmpeg的脚本报错:av_ts2str、av_ts2timestr、av_err2str => E0029 C4576
问题描述 我目前的环境是: 编辑器: Microsoft Visual Studio Community 2022 (64 位) 运行的脚本是ffmpeg自带的remux样例,只不过我想用c语言执行这个样例。在执行的过程中报错如下图: C4576 后跟初始值设定项列表的带圆括…...

[mysql]mysql的DML数据操作语言增删改,以及新特性计算列,阿里巴巴开发手册mysql相关
1DML数据操作语言,增加删除改数据 插入数据INSERT 插入添加数据,两种方法 方式1:VALUES添加数据 #准备工作 USE atguigudb; CREATE TABLE IF NOT EXISTS emp1( id INT, name VARCHAR(15), hire_data DATE, salary DOUBLE(10,2)); SELECT * FROM emp1 INSERT INTO em…...

Github 2024-11-07 Go开源项目日报 Top10
根据Github Trendings的统计,今日(2024-11-07统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10HTML项目1Kubernetes: 容器化应用程序管理系统 创建周期:3618 天开发语言:Go协议类型:Apache License 2.0Star数量:106913 个Fork数…...

【黑盒测试】等价类划分法及实例
本文主要介绍黑盒测试之等价类划分法,如什么是等价类划分法,以及如何划分,设计等价类表。以及关于三角形案例的等价类划分法。 文章目录 一、什么是等价类划分法 二、划分等价类和列出等价类表 三、确定等价类的原则 四、建立等价类表 …...

LeetCode17. 电话号码的字母组合(2024秋季每日一题 59)
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits “23” 输出:[“…...
SQLite数据库是什么?DB Browser for SQLite是什么?
SQLite是一个轻量级的嵌入式数据库,它是一个遵守ACID原则的关系型数据库管理系统。SQLite的主要特点是占用资源少、无需配置、支持多种操作系统和编程语言,并且具有高性能和跨平台特性。 SQLite的基本概念和特性 轻量级:SQLite的数据…...
核心概念解析Caffeine 缓存模型与策略
1. 简介 什么是 Caffeine Caffeine 是一个高性能的 Java 缓存库,专为提高内存缓存的效率和灵活性而设计。它由 Google 的 Guava Cache 项目启发,并提供了更高的性能和更丰富的功能集。Caffeine 以其卓越的缓存命中率和内存管理能力而广受欢迎ÿ…...
ubuntu 22.04 防火墙
Ubuntu(22.04)云主机SSH安全加固 https://blog.csdn.net/qq_44846097/article/details/141098092 ubuntu22.04防火墙策略 https://blog.csdn.net/sunyuhua_keyboard/article/details/139493464 Ubuntu 22.04 防火墙设置和开放端口命令 https://blog.c…...
【数据结构-合法括号字符串】力扣678. 有效的括号字符串
给你一个只包含三种字符的字符串,支持的字符类型分别是 ‘(’、‘)’ 和 ‘*’。请你检验这个字符串是否为有效字符串,如果是 有效 字符串返回 true 。 有效 字符串符合如下规则: 任何左括号 ‘(’ 必须有相应的右括号 ‘)’。 任何右括号 …...

ThreadX在STM32上的移植:F1,F4通用启动文件tx_initialize_low_level.s
在嵌入式系统开发中,实时操作系统(RTOS)的选择对于系统性能和稳定性至关重要。ThreadX是一种广泛使用的RTOS,它以其小巧、快速和可靠而闻名。在本文中,我们将探讨如何将ThreadX移植到STM32微控制器上,特别是…...

【算法】递归+深搜:814.二叉树剪枝
目录 1、题目链接 2、题目 3、解法(后序遍历) 4、代码 1、题目链接 814.二叉树剪枝(LeetCode) 2、题目 3、解法(后序遍历) 我们这次不使用宏观的观察法,而是从具体实现开始。 题目要求我们,去掉不含1的子树。 对于子树这个…...
spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)修复
spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)修复 漏洞描述 CVE-2024-38816: Path traversal vulnerability in functional web frameworks 通过功能性 Web 框架 WebMvc.fn 或 WebFlux.fn 提供静态资源的应用程序容易受到路径遍历攻击。攻…...

ESP32-C3 入门笔记03:VScode + flash_download_tool 下载烧录程序(ESP-IDF + PlatformIO)
ESP32-C3 支持多种烧录方式,主要包括以下几种: VS Code 串口烧录:使用 VS Code 配合 PlatformIO 或 ESP-IDF 插件进行串口烧录。串口连接通常使用 UART 接口,通过 USB 转串口芯片与电脑连接。步骤大致如下: 配置 VS Co…...

Node.js——fs模块-文件重命名和移动
1、在Node.js中,我们可以使用 rename 或 renameSync 来移动或重命名文件或文件夹 2、语法: fs.rename(oldPath,newPath,callback) fs.renameSync(oldPath,newPath) 参数说明: oldPath 文件当前的路径 newPath 文件新的路径 callback 操…...
vue2.0版本引入Element-ui问题解决
作者:fyupeng 技术专栏:☞ https://github.com/fyupeng 项目地址:☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 使用版本: vue:2.6.14 element-ui:2.15.14 一、问题及解决 1、安装后组件没有生效&#x…...

qt QTableView详解
1、概述 QTableView 是 Qt 框架中的一个高级视图类,用于以表格形式展示二维数据。它基于 QAbstractItemView,并与模型(通常是 QAbstractTableModel 或 QStandardItemModel)结合使用,以实现数据的展示和交互。QTableVi…...

将Notepad++添加到右键菜单【一招实现】
一键添加注册表 复制以下代码保存为 Notepad.reg,将红框内路径修改为自己电脑的“Notepad.exe路径”后,再双击运行即可。 Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\NotePad] "Notepad" "Icon""D:\\N…...

Nature Methods | 基于流形约束的RNA速度推断精准解析细胞周期动态调节规律
生信碱移 VeloCycle算法 VeloCycle:基于流形约束的RNA速度推断在细胞周期动态中的精准解析 今天给各位老铁们分享一篇于2024年10月31号发表在 Nature Methods [IF: 36.1] 的文章:"Statistical inference with a manifold-constrained RNA velocity…...
在离线环境中使用sealos工具快速部署一套高可用的k8s服务集群
文章目录 项目基础信息工具版本测试环境 下载资源文件下载sealos二进制命令文件下载k8s安装镜像和组件资源下载docker离线安装包下载Docker Registry容器镜像 NFS共享配置coredns服务的DNS解析配置安装配置sealos、k8s服务安装sealos工具导入k8s及相关组件镜像安装 K8s 集群部署…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...