MySQL学习——DML操作(添加,更新,删除数据)
本章将介绍MySQL中的DML操作
1、添加数据(INSERT)
1.1、插入
语法结构:
1 2 | INSERT INTO 表名(column1,column2,...) VALUES (value1,value2,....) |
上述插入是指定列插入,如果表名后面的没有括号则是完全插入,数据库会将值按列的顺序插入进去。注意:在完全插入模式下如果主键是自动增长,则需要使用default或者null或者0占位。
示例一:向department表中添加一条数据,部门名称为market,工作地点ID为1
1 2 3 | USE test01; INSERT INTO departments(department_name, location_id) VALUES ( "market" ,1) |
示例二:向department表中添加一条数据,部门名称为development,工作地点ID为2,使用default占位
1 2 3 | USE test01; INSERT INTO departments VALUES ( default , "development" , 2) |
示例三:向department表中添加一条数据,部门名称为human,工作地点ID为3,使用null占位
1 2 3 | USE test01; INSERT INTO departments VALUES ( null , "human" , 3) |
1.2、默认值处理:
在MySQL中可以使用DEFAULT为字段设定一个默认值。如果在插入数据时并未指定该列的值,那么MySQL会将默认值添加到该列中。可以在创建表时,在指定字段后面使用DEFAULT关键字来设定默认值,例如下面示例一:
示例一:创建一个emp3表,该表包含emp_id主键且自动增长,包含name,包含address该列默认值为“未知”。
1 2 3 4 5 6 | USE test01; CREATE TABLE emp3( emp_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR (30), address VARCHAR (30) DEFAULT "未知" ) |
我们使用DESC emp3来查看表信息,可以看到,address这一列有一个默认值是“未知”。
我们也可以使用修改表的列的方式为一个列增加默认值。
1 | ALTER TABLE 表名 MODIFY 列名 数据类型 DEFAULT 默认值 |
注意,在插入数据时并未指定该列的值那么MySQL将会把默认值添加到该列中。如果完全项插入时需要使用default占位。
2、更新(UPDATE)
语法结构:
1 2 3 | UPDATE 表名 [别名] SET column1=value1[, column2=value2,...] [ WHERE condition] |
注意MySQL中更新操作有几点需要注意的:
- 更新的表不能再set和where中用于子查询
- update后面可以做任意的查询
示例一:更新emp3表中id为1的数据,添加address为Beijing。
1 2 3 4 | USE test01; UPDATE emp3 e SET address= "Beijing" WHERE e.emp_id=1 |
示例二:更新emp3中id为2的数据,将地址修改为与id为1的用户的地址相同。
1 2 3 4 | USE test01; UPDATE emp3 e, ( SELECT address FROM emp3 WHERE emp_id=1) t SET e.address=t.address WHERE e.emp_id=2; |
由于我们无法再SET后做子查询,因此我们可以再UPDATE时做一个临时表出来实现这个操作。
3、删除(DELETE)
语法结构:
1 2 | DELETE FROM table [ WHERE condition] |
示例一:删除emp3表中emp_id为1的雇员信息
1 2 3 | USE test01; DELETE FROM emp3 WHERE emp_id=1; |
我们也可以使用TRUNCATE来删除所有数据。
1 | TRUNCATE TABLE 表名 |
TRUNCATE和DELETE的区别:
- truncate是整体删除,delete是逐行删除
- truncate会重置自增值,相当于自增列会从初始值重新开始记录。而delete删除以后自增值仍然会继续累加。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战