MySQL入门(2) ------ 数据操作语言(DML)

本文介绍了如何在MySQL中创建和管理数据库,重点讲解了数据操作语言(DML)的使用,包括INSERT插入、UPDATE更新、DELETE删除以及TRUNCATE清空表的内容,以及它们之间的区别和应用场景。
摘要由CSDN通过智能技术生成

这仍然是一篇学习笔记
首先准备一个空的数据库,这篇笔记开始加入一些例子以供更好的理解。

  • 先使用上篇笔记的知识来创建一个数据库
CREATE DATABASE IF NOT EXISTS cls DEFAULT CHARACTER SET utf8mb4;

排序规则默认就好,创建成功如下图:创建成功

  • 创建数据表 c
CREATE TABLE IF NOT EXISTS c (
    `course` varchar(20) NOT NULL COMMENT '课程名',
    `times` varchar(20) NOT NULL COMMENT '学时',
    `cn` int(10) NOT NULL PRIMARY KEY COMMENT '课程号, 主键'
) ENGINE = InnoDB CHARSET = UTF8MB4 COMMENT = '课程表';

成功如图:
在这里插入图片描述
查看表结构:
查看表
发现居然少了学分?

  • 修改表
ALTER TABLE c ADD `score` DOUBLE(3,2) NOT NULL COMMENT '学分';

修改后

剩下的操作就需要这篇笔记的内容了


1. DML是什么

全称Data Manipulation Language,数据操作语言。主要用于对表数据增删改 操作。仅包括INSERTUPDATEDELETE语句。

2. INSERT语句

-- VALUES后的字段值必须与表名后的字段名一一对应
INSERT INTO 表名(字段名1, 字段名2, ..., 字段名n) VALUES(字段值1, 字段值2, ..., 字段名n);
-- VALUES后的字段值必须与创建表时字段顺序一致
INSERT INTO 表名 VALUES(字段值1, 字段值2, ..., 字段名n);
-- 可以插入多段数据
INSERT INTO 表名(字段名1, 字段名2, ..., 字段名n) VALUES(字段值1, 字段值2, ..., 字段名n),(字段值1, 字段值2, ..., 字段名n)...(字段值1, 字段值2, ..., 字段名n);
INSERT INTO 表名 VALUES(字段值1, 字段值2, ..., 字段名n), (字段值1, 字段值2, ..., 字段名n)...(字段值1, 字段值2, ..., 字段名n);

例如:

-- 插入单行数据
INSERT INTO c VALUES ('数据库', '36', '001', '6');
-- 插入多行数据
INSERT INTO c VALUES ('Java程序设计', '40', '002', '4'),
                     ('C语言程序设计', '40', '003', '4'),
                     ('数据结构与算法分析', '38', '004', '5');

插入操作:
插入数据
此时表中数据如图:
查看表

3. UPDATE语句

UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2...,字段名n=字段值n] [WHERE 修改名称]

3.1 WHERE条件子句

使用>,<,>=,<=,!=来表示条件,SQL还有SQL关键的关键字来表示条件。
条件衔接:AND表示逻辑与(&&),OR表示逻辑或(||)

3.2 UPDATE示例

修改数据库中的学分为5.5,学时为15(数据库是一门课程)

UPDATE c SET `score`=5.5, `times`=15 WHERE course='数据库';

如图:
修改成功

4. DELETE语句

DELETE FROM 表名 [WHERE 删除条件];

例,删除表中数据结构及算法分析这一项:

DELETE FROM c WHERE course='数据结构与算法分析';

如图

5. TRUNCATE语句

-- 清空表中数据
TRUNCATE [TABLE] 表名;

删除后数据无法通过回滚返回原来的状态,相当于清空整个表,重置物理索引
例如清空表c:
例

6. DELETE与TRUNCATE的区别

  • DELETE语句根据条件删除表中数据,而TRUNCATE语句则是将表中数据全部清空;如果DELETE语句要删除表中所有数据,那么在效率上要低于TRUNCATE语句。
  • 如果表中有自增长列,TRUNCATE语句会重置自增长的计数器,但DELETE不会。
  • TRUNCATE语句执行后,数据无法恢复,而DELETE语句执行后,可以使用事务回滚进行恢复
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值