MySQL学习——DML操作(添加,更新,删除数据)

  本章将介绍MySQL中的DML操作

1、添加数据(INSERT)

 1.1、插入

语法结构:

INSERT INTO 表名(column1,column2,...)
VALUES(value1,value2,....)

  上述插入是指定列插入,如果表名后面的没有括号则是完全插入,数据库会将值按列的顺序插入进去。注意:在完全插入模式下如果主键是自动增长,则需要使用default或者null或者0占位。

示例一:向department表中添加一条数据,部门名称为market,工作地点ID为1

USE test01;
INSERT INTO departments(department_name, location_id)
VALUES("market",1)

示例二:向department表中添加一条数据,部门名称为development,工作地点ID为2,使用default占位

USE test01;
INSERT INTO departments
VALUES(default, "development", 2)

示例三:向department表中添加一条数据,部门名称为human,工作地点ID为3,使用null占位

USE test01;
INSERT INTO departments
VALUES(null, "human", 3)

 1.2、默认值处理:

  在MySQL中可以使用DEFAULT为字段设定一个默认值。如果在插入数据时并未指定该列的值,那么MySQL会将默认值添加到该列中。可以在创建表时,在指定字段后面使用DEFAULT关键字来设定默认值,例如下面示例一:

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

USE test01;
CREATE TABLE emp3(
      emp_id INT PRIMARY KEY AUTO_INCREMENT,
      name VARCHAR(30),
      address VARCHAR(30) DEFAULT "未知"
)

  我们使用DESC emp3来查看表信息,可以看到,address这一列有一个默认值是“未知”。

 

   我们也可以使用修改表的列的方式为一个列增加默认值。

ALTER TABLE 表名 MODIFY 列名 数据类型 DEFAULT 默认值

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

2、更新(UPDATE)

语法结构:

UPDATE 表名 [别名]
SET  column1=value1[, column2=value2,...]
[WHERE condition]

  注意MySQL中更新操作有几点需要注意的:

  • 更新的表不能再set和where中用于子查询
  • update后面可以做任意的查询

示例一:更新emp3表中id为1的数据,添加address为Beijing。

USE test01;
UPDATE emp3 e
SET  address="Beijing"
WHERE e.emp_id=1

示例二:更新emp3中id为2的数据,将地址修改为与id为1的用户的地址相同。

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)

语法结构:

DELETE FROM table
[WHERE condition]

示例一:删除emp3表中emp_id为1的雇员信息

USE test01;
DELETE FROM emp3
WHERE emp_id=1;

  我们也可以使用TRUNCATE来删除所有数据。

TRUNCATE TABLE 表名

  TRUNCATE和DELETE的区别:

  • truncate是整体删除,delete是逐行删除
  • truncate会重置自增值,相当于自增列会从初始值重新开始记录。而delete删除以后自增值仍然会继续累加。
posted @ 2022-09-18 20:21  Circle_Wang  阅读(76)  评论(0编辑  收藏  举报