MySQL数据库干货_12—— MySQL中DML操作

news/2024/10/20 9:34:52/

MySQL中DML操作

添加数据(INSERT)

  1. 选择插入

    INSERT INTO  表名(列名 1 ,列名 2 ,列名 3.....) VALUES(1 ,值 2 ,值 3......);
    

    示例:

    向 departments 表中添加一条数据,部门名称为 market ,工作地点 ID 为 1。

    insert into departments(department_name,location_id) values("market", 1);
    
  2. 完全插入

INSERT INTO  表名 VALUES(1 ,值 2 ,值 3......);

注意:


如果主键是自动增长,需要使用 default 或者 null 或者 0 占位。

示例一:

向 departments 表中添加一条数据,部门名称为 development ,工作地点 ID 为 2 。使用 default 占位。

insert into departments values(default,"development",2);

示例二:

向 departments 表中添加一条数据,部门名称为human ,工作地点 ID 为 3 。使用 null 占 位。

insert into departments values(null,"human",3);

示例三:

向 departments 表中添加一条数据,部门名称为 teaching ,工作地点 ID 为 4 。使用 0 占 位。

insert into departments values(0,"teaching",4);

默认值处理(DEFAULT)

在 MySQL 中可以使用 DEFAULT 为列设定一个默认值。如果在插入数据时并未指定该列的值,那么 MySQL 会将默认值添加到该列中。

创建表时指定列的默认值

CREATE TABLE 表名(列名 类型 default 默认值,......);

示例:

创建 emp3 表,该表包含 emp_id 主键且自动增长,包含 name ,包含 address 该列默认 值为”未知”。

create table emp3(emp_id int primary key auto_increment,name varchar(10),address varchar(50) default 'Unknown');

修改表添加新列并指定默认值

ALTER TABLE 表名 ADD COLUMN 列名 类型 DEFAULT 默认值;

示例:

修改 emp3 表,添加job_id 该列默认值为 0。

alter table emp3 add column job_id int default 0;

插入数据时的默认值处理

如果在插入数据时并未指定该列的值,那么MySQL 会将默认值添加到该列中。如果是 完全项插入需要使用 default 来占位。

示例:

向 emp3 表中添加数据,要求 address 列与job_id 列使用默认值作为该列的值。

insert into emp3(name) values("admin");
insert into emp3 values(default,"oldlu",default,default);

更新数据(UPDATE)

UPDATE 表名 SET  列名=值,列名=WHERE 条件;

注意:


更新语句中一定要给定更新条件,否则表中的所有数据都会被更新。

示例:

更新 emp3 表中的 id 为 1 的数据,添加 address 为 BeiJing。

update emp3 set address = "BeiJing" where emp_id = 1;

删除数据(DELETE)

DELETE删除数据

DELETE FROM  表名 WHERE 条件;

注意:


在DELETE语句中,如果没有给定删除条件则会删除表中的所有数据。

示例:

删除 emp3 表中 emp_id 为 1 的雇员信息。

delete from emp3 where emp_id = 1;

TRUNCATE清空表

TRUNCATE TABLE  表名;

示例:

删除 emp3 表中的所有数据。

truncate table emp3;

清空表时DELETE与 TRUNCATE 区别

  • truncate 是整体删除(速度较快), delete 是逐条删除(速度较慢);
  • truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率比 delete 高的原因;
  • truncate 是会重置自增值,相当于自增列会被置为初始值,又重新从 1 开始记录,而 不是接着原来的值。而 delete 删除以后,自增值仍然会继续累加。

http://www.ppmy.cn/news/1192889.html

相关文章

喜欢 Android 14 的 14 个理由

和去年 8 月中旬发布的 Android 13 正式版不同,今年的 Android 14 正式版延后到了 10 月 4 日——也就是 Pixel 8 系列发布的同一天。原因我们似乎也能从 Google 宣传新特性中略窥一二: 除了明确表示会率先向特定 Pixel 机型推送的 AI 壁纸生成&#xf…

Vue 3编译器的新特性

Vue 3编译器的新特性 🚀 Vue 3引入了一系列新的特性和优化,其中包括新的编译器。这些改进不仅提高了开发效率,还优化了应用程序的性能。让我们一起探索Vue 3编译器的一些主要新特性吧!💡 1. 模板编译优化 &#x1f3…

使用pdf2image pdf转图片

安装poppler https://wenku.csdn.net/answer/1zxh8ckp6i from pdf2image import convert_from_path, convert_from_bytes import os# https://github.com/Belval/pdf2imageoutput_folder ./ dpi_value 600 pdf_start_page 1 # pdf显示的第一页 start_page 237 # 真实页码 p…

elemenui puls el-menu default-active不更新问题

有时候我们的目录结构会重新刷新,但是default-active始终保持原来的下标 1.一开始我以为是我给定的属性或者值不对,后来经过一番排查发现根本不是 那我们该如何解决那? 方案1. 通过nextTick去重新赋值方案2. 重写赋值menu方案3. v2和v3都可以…

springboot+vue基于hive旅游数据的分析与应用【内含源码+文档+部署教程】

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ 🍅由于篇幅限制,想要获取完整文章或者源码,或者代做&am…

【数据库】形式化关系查询语言(一):关系代数Relational Algebra:基本运算、附加关系代数、扩展的关系代数

目录 一、关系代数Relational Algebra 1. 基本运算 a. 选择运算(Select Operation) b. 投影运算(Project Operation) 组合 c. 并运算(Union Operation) d. 集合差运算(Set Difference Op…

【星海出品】VUE(二)

版本管理器npm和yarn的区别 无论 npm 还是 Yarn 在执行包的安装时,都会执行一系列任务。npm 是按照队列执行每个 package,也就是说必须要等到当前 package 安装完成之后,才能继续后面的安装。而 Yarn 是同步执行所有任务,提高了性…

第一章 03Java入门

文章目录 前言一、下载和安装JDK二、第一个程序HelloWorld1.用记事本编写程序2.编译文件3.运行程序三、HelloWorld案例常见问题四、环境变量五、Notepad软件的安装和使用六、Java语言的发展七、Java为什么这么火八、JRE和JDK总结前言 上次我们学习了常见的CMD指令以及环境变量…