【数据库初阶】SQL–DML

作者 : admin 本文共5125个字,预计阅读时间需要13分钟 发布时间: 2024-06-5 共3人阅读

文章目录

  • DML
  • 1. 基本介绍
  • 2. 添加数据
  • 3. 修改数据
  • 4. 删除数据

更多数据库MySQL系统内容就在以下专栏:
专栏链接:数据库MySQL


DML

1. 基本介绍

DML英文全称是Data Mainipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。

三大关键字:

  • 添加数据:INSERT
  • 修改数据:UPDATE
  • 删除数据:DELETE

2. 添加数据

  1. 给指定字段添加数据
INSERT INTO 表名(字段名1, 字段名2, ...) VALUES (1,2, ...);

案例:

在emloyee 表中添加一组数据

示例代码:

mysql> 
mysql> insert into emloyee (id, workno, name, gender, age, idcard, entrydate) values (1, '1', '张三', '男', 15, '012345678912345678', '2001-01-01');
Query OK, 1 row affected (0.00 sec)

mysql> 
mysql> select * from emloyee;
+----+--------+------+--------+-----+--------------------+------------+
| id | workno | name | gender | age | idcard             | entrydate  |
+----+--------+------+--------+-----+--------------------+------------+
|  1 | 1      | 张三 ||  15 | 012345678912345678 | 2001-01-01 |
+----+--------+------+--------+-----+--------------------+------------+
1 row in set (0.03 sec)

mysql> 
  1. 给全部字段添加数据
INSERT INTO 表名 VALUES (1,2, ...);

案例:

在emloyee 表给全部字段添加一组数据

示例代码:


mysql> 
mysql> insert into emloyee values(2, '2', '李四', '男', 18, '012345678912345679', '2002-02-02');
Query OK, 1 row affected (0.01 sec)

mysql> 
mysql> 
mysql> 
mysql> select * from emloyee;
+----+--------+------+--------+-----+--------------------+------------+
| id | workno | name | gender | age | idcard             | entrydate  |
+----+--------+------+--------+-----+--------------------+------------+
|  1 | 1      | 张三 ||  15 | 012345678912345678 | 2001-01-01 |
|  2 | 2      | 李四 ||  18 | 012345678912345679 | 2002-02-02 |
+----+--------+------+--------+-----+--------------------+------------+
2 rows in set (0.04 sec)

mysql> 
  1. 批量添加数据
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (1,2, ...),(1,2, ...);
INSERT INTO 表名 VALUES(1,2, ...), (1,2, ...), (1,2, ...);

案例:

在emlyee 表中,批量添加两条数据。

示例代码:

mysql> 
mysql> insert into emloyee (id, workno, name, gender, age, idcard, entrydate) values (3,'3', '王五', '男', 13, '012345678901234567', '2003-03-03'),(4, '4', '哈哈', '男', 14, '012345678912345689', '2004-04-04');
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> 
mysql> select * from emloyee;
+----+--------+------+--------+-----+--------------------+------------+
| id | workno | name | gender | age | idcard             | entrydate  |
+----+--------+------+--------+-----+--------------------+------------+
|  1 | 1      | 张三 ||  15 | 012345678912345678 | 2001-01-01 |
|  2 | 2      | 李四 ||  18 | 012345678912345679 | 2002-02-02 |
|  3 | 3      | 王五 ||  13 | 012345678901234567 | 2003-03-03 |
|  4 | 4      | 哈哈 ||  14 | 012345678912345689 | 2004-04-04 |
+----+--------+------+--------+-----+--------------------+------------+
4 rows in set (0.04 sec)

mysql> 

注意:

  • 插入数据时, 指定的字段顺序需要与值的顺序时一一对应的。
  • 字符串和日期型数据应该包含在引导中。
  • 插入的数据大小,应该在字段的规定范围内。

3. 修改数据

基本语法:

UPDATE 表名 SET 字段名1=1, 字段名2=2, ...[WHERE条件];

注意:

修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。

案例1:

修改id为1的数据,将name 修改为嘿嘿。

示例代码:

mysql> 
mysql> update emloyee set name='嘿嘿' where id=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> 
mysql> 
mysql> select * from emloyee;
+----+--------+------+--------+-----+--------------------+------------+
| id | workno | name | gender | age | idcard             | entrydate  |
+----+--------+------+--------+-----+--------------------+------------+
|  1 | 1      | 嘿嘿 ||  15 | 012345678912345678 | 2001-01-01 |
|  2 | 2      | 李四 ||  18 | 012345678912345679 | 2002-02-02 |
|  3 | 3      | 王五 ||  13 | 012345678901234567 | 2003-03-03 |
|  4 | 4      | 哈哈 ||  14 | 012345678912345689 | 2004-04-04 |
+----+--------+------+--------+-----+--------------------+------------+
4 rows in set (0.04 sec)

mysql> 

案例2:

修改id为1的数据,将name 修改为小马,gender 修改为 女。

示例代码:

ysql> 
mysql> update emloyee set name = '小马', gender = '女' where id=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> 
mysql> 
mysql> select * from emloyee;
+----+--------+------+--------+-----+--------------------+------------+
| id | workno | name | gender | age | idcard             | entrydate  |
+----+--------+------+--------+-----+--------------------+------------+
|  1 | 1      | 小马 ||  15 | 012345678912345678 | 2001-01-01 |
|  2 | 2      | 李四 ||  18 | 012345678912345679 | 2002-02-02 |
|  3 | 3      | 王五 ||  13 | 012345678901234567 | 2003-03-03 |
|  4 | 4      | 哈哈 ||  14 | 012345678912345689 | 2004-04-04 |
+----+--------+------+--------+-----+--------------------+------------+
4 rows in set (0.05 sec)

mysql> 

案例3:

将所有的员工入职日期修改为 2020-05-20。

示例代码:

mysql> 
mysql> update emloyee set entrydate='2020-05-20';
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> 
mysql> 
mysql> select * from emloyee;
+----+--------+------+--------+-----+--------------------+------------+
| id | workno | name | gender | age | idcard             | entrydate  |
+----+--------+------+--------+-----+--------------------+------------+
|  1 | 1      | 小马 ||  15 | 012345678912345678 | 2020-05-20 |
|  2 | 2      | 李四 ||  18 | 012345678912345679 | 2020-05-20 |
|  3 | 3      | 王五 ||  13 | 012345678901234567 | 2020-05-20 |
|  4 | 4      | 哈哈 ||  14 | 012345678912345689 | 2020-05-20 |
+----+--------+------+--------+-----+--------------------+------------+
4 rows in set (0.04 sec)

mysql> 

4. 删除数据

基本语法:

DELETE FROM 表名[WHERE 条件];

注意:

  • DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
  • DELETE语句不能删除某一个字段的值(可以使用UPDATE删除某一个字段的值,将其置为NULL即可)。

案例1:

删除 gender 为女的员工。

示例代码:

mysql> 
mysql> delete from emloyee where gender='女';
Query OK, 1 row affected (0.00 sec)

mysql> 
mysql> 
mysql> select * from emloyee;
+----+--------+------+--------+-----+--------------------+------------+
| id | workno | name | gender | age | idcard             | entrydate  |
+----+--------+------+--------+-----+--------------------+------------+
|  2 | 2      | 李四 ||  18 | 012345678912345679 | 2020-05-20 |
|  3 | 3      | 王五 ||  13 | 012345678901234567 | 2020-05-20 |
|  4 | 4      | 哈哈 ||  14 | 012345678912345689 | 2020-05-20 |
+----+--------+------+--------+-----+--------------------+------------+
3 rows in set (0.04 sec)

mysql> 

案例2:

删除所有员工

示例代码:

mysql> delete from emloyee;
Query OK, 3 rows affected (0.01 sec)

mysql> 
mysql> 
mysql> 
mysql> select * from emloyee;
Empty set

mysql> 
本站无任何商业行为
个人在线分享 » 【数据库初阶】SQL–DML
E-->