MySQL DML

SQL数据操作精要
本文详细介绍了SQL语言中数据操作的基础知识,包括插入(INSERT)、更新(UPDATE)和删除(DELETE)数据的具体语法和实例。通过创建person表,演示了如何插入单条和多条记录,如何更新和删除数据,以及如何从一个表中查询数据并插入到另一个表中。

插入数据 INSERT

语法格式

insert into 表名 (column_list) values (value_list);

建表,用来插入数据测试

CREATE TABLE person
(
id     INT UNSIGNED NOT NULL AUTO_INCREMENT,
name   CHAR(40) NOT NULL DEFAULT '',
age    INT NOT NULL DEFAULT 0,
info   CHAR(50) NULL,
PRIMARY KEY (id)
);

向表中所有字段插入值的方法有两种:一种是指定所有字段名,另一种是完全不指定字段名。

  • 在person表中,插入一条新记录,id值为1,name值为Green,age值为21,info值为Lawyer,

INSERT INTO person (id ,name, age , info)
VALUES (1,‘Green’, 21, ‘Lawyer’);
在这里插入图片描述

  • 使用INSERT插入数据时,允许列名称列表column_list为空,此时,值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同

INSERT INTO person
VALUES (3,‘Mary’, 24, ‘Musician’);

在这里插入图片描述

  • 在person表中,插入一条新记录,name值为laura,age值为25

INSERT INTO person (name, age ) VALUES (‘Laura’, 25);

在这里插入图片描述

多条数据同时插入

  • 在person表中,在name、age和info字段指定插入值,同时插入3条新记录,

INSERT INTO person(name, age, info)
VALUES (‘Evans’,27, ‘secretary’),
(‘Dale’,22, ‘cook’),
(‘Edison’,28, ‘singer’);

在这里插入图片描述

########## 将查询结果insert 到 表中

从person_old表中查询所有的记录,并将其插入到person表中。
首先,创建一个名为person_old的数据表,其表结构与person结构相同


CREATE TABLE person_old
(
id     INT UNSIGNED NOT NULL AUTO_INCREMENT,
name   CHAR(40) NOT NULL DEFAULT '',
age    INT NOT NULL DEFAULT 0,
info   CHAR(50) NULL,
PRIMARY KEY (id)
);

 INSERT INTO person_old
     VALUES (11,'Harry',20, 'student'), (12,'Beckham',31, 'police');

 SELECT * FROM person_old;
 INSERT INTO person(id, name, age, info)
SELECT id, name, age, info FROM person_old;

更新操作 UPDATE

语法格式

update 表名 set 列名 = 值 where 条件
若果你要修改多个字段的值
update 表名 set 列名1 = value1 , 列名2 = vlaue2 where 筛选条件
  • 在person表中,更新age值为19~22的记录,将info字段值都改为student

UPDATE person SET info=‘student’ WHERE id BETWEEN 19 AND 22;

删除数据

语法格式

delete from 表名 where 删除数据的条件
如果没有加 where 筛选条件
delete from 表名 将会把这张表的数据清空,但是不同于truncate
### 关于 MySQLDML (Data Manipulation Language) #### 插入数据 (INSERT INTO) `INSERT INTO` 是用于向插入新记录的关键字。可以通过指定字段名来插入部分字段的数据,也可以不指定字段名而直接按顺序插入全部字段的数据。 ```sql -- 插入单条记录并指定字段名称 INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3); -- 不指定字段名称,则按照格定义的顺序插入所有字段值 INSERT INTO table_name VALUES (value1, value2, value3); ``` 对于批量插入多条记录的情况,可以一次性完成: ```sql INSERT INTO table_name (column1, column2, column3) VALUES (value1_1, value1_2, value1_3), (value2_1, value2_2, value2_3); ``` #### 更新现有数据 (UPDATE) 当需要修改已存在的数据时,可使用 `UPDATE` 语句。为了防止更新整个中的所有记录,通常会配合条件子句 `WHERE` 使用。 ```sql UPDATE table_name SET column1 = new_value1 WHERE condition; ``` 如果省略 `WHERE` 子句,那么所有的记录都将被更新为相同的值[^1]。 #### 删除数据 (DELETE FROM 和 TRUNCATE TABLE) 删除特定记录可通过 `DELETE FROM` 实现;若要清空整张的内容而不影响其结构,则推荐使用更高效的 `TRUNCATE TABLE` 命令。 ```sql -- 只删除满足条件的部分记录 DELETE FROM table_name WHERE condition; -- 清除整个内的所有数据(保留结构不变),效率高于 DELETE FROM TRUNCATE TABLE table_name; ``` 需要注意的是,在执行上述任何一种删除操作前都应该确认好目标范围以免误删重要资料[^2]。 #### 查询数据 (SELECT) 最后也是最常用到的一个功能就是检索存储在数据库里的信息了。“SELECT”允许我们从一个或多个里提取所需的信息,并支持各种过滤器、排序选项等功能增强查询灵活性。 基本语法如下所示: ```sql SELECT columns|* FROM tables [WHERE conditions]; ``` 这里还可以加入ORDER BY来进行结果集排列;LIMIT用来控制返回的最大行数等等附加特性[^3]. ```python import pymysql # 创建连接对象conn和游标cursor connection = pymysql.connect(host='localhost', user='root', password='', db='testdb') try: with connection.cursor() as cursor: sql_query = "SELECT * FROM users LIMIT 10" cursor.execute(sql_query) results = cursor.fetchall() finally: connection.close() for row in results: print(row) ``` 以上即是对MySQL DML的一些基础介绍及其应用实例说明。 问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值