Mysql学习笔记之SQL-2

上篇文章介绍了SQL语句的第一部分数据定义语言(DDL),这篇文章我们介绍SQL语句的第二部分,数据库操作语言(DML)

1.简介

DML全称(Data Manipulation Language),用来对数据表中的数据进行操作。

包括:

  • 增加数据
  • 删除数据
  • 修改数据

下面依次介绍每种操作的语法和案例。

2.增加数据

增加数据是指在数据表中插入一条或者多条数据,语法如下所示:

sql 复制代码
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);

当插入的数据为表中全部字段时可以省略字段名,如:

sql 复制代码
-- 存在student数据表,包含字段 id、name、sex、age 插入全部字段可简写如下
INSERT INTO 表名 VALUES (值1, 值2, 值3, 值4);

这两种写法有什么区别?

当数据表中的某些字段可以为空或者存在默认值时(后面会详细说明),在增加数据时就可以给需要的字段指定值,而不需要的字段可以不设置值,这时候就需要使用第一种写法。

反之,如果当数据表中的字段都必须不能为空且不存在默认值时,在增加数据时就必须给每个字段赋值,这时第二种写法就比较简单。

案例:
写法一:

1.给student数据表中添加一条数据,要求指定全部字段

sql 复制代码
INSERT INTO student (id,name,sex,age) VALUES(7,'皮洋洋','男',20);

2 .给students数据表中添加一条数据,只指定姓名和性别

这时候就需要数据表中的字段可以为空,我们可以通过naticat的设计表功能查看当前student表格的状态

将id、和age字段的"不是null"复选框去掉,点击保存

这时执行以下语句

sql 复制代码
INSERT INTO student (name,sex) VALUES('张三丰','男');

未指定字段的值就为空
写法二:

sql 复制代码
INSERT INTO student VALUES(9 ,'张三丰','男',19);

一次插入多条数据

sql 复制代码
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...),(值1,值2,...),(值1,值2,...)...;
-- 或者
INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...)...;

当有大量的数据需要插入时,组合成一条sql语句插入效率会大大提高
案例:

sql 复制代码
INSERT INTO `test`.`student` (`id`, `name`, `sex`, `age`) VALUES (1, '张三', '男', 16)
,(2, '李四', '男', 16)
,(3, '王五', '男', 18)
,(4, '李翠翠', '女', 16)
,(5, '王芳芳', '女', 16)
,(6, '赵琴', '女', 16)
,(7, '皮洋洋', '男', 20)
,(9, '张三丰', '男', 19);

3.删除数据

3.1删除全部数据

sql 复制代码
DELETE FROM 表名;

执行后会清空表格,慎用!!!

3.2删除指定数据

sql 复制代码
DELETE FROM 表名 WHERE 条件;

案例:

1.删除学号为1的学生

sql 复制代码
DELETE FROM student WHERE id = 1;

2.删除学号不为1的学生

sql 复制代码
DELETE FROM student WHERE id <> 1;

3.删除学号大于10的学生

sql 复制代码
DELETE FROM student WHERE id > 10;

4.删除学号为2,3,4的学生

sql 复制代码
DELETE FROM student WHERE id == 2 or id == 3 or id == 4;
--或者
DELETE FROM student WHERE id in (2,3,4);

where条件后面可以判断任意的字段,这里不一一举例了,下表列举了where条件支持的比较符

条件 比较符
比较 = , > , < , >= , <= , (<> , !=不等于)
确定集合 IN,NOT IN
字符匹配 LIKE,NOT LIKE 通配符 % ,_
逻辑运算 AND, OR(, NOT
空值判断 IS NULL , IS NOT NULL

4.修改数据

sql 复制代码
UPDATE 表名 SET 字段名1 = 值1 , 字段名2 = 值2 , .... [ WHERE 条件 ] ;

注意

修改数据的where条件虽然时非必须的,但当where条件不指定时更新的数据将会是整张表格

where条件的语法跟删除数据中的where条件语法一样

案例:

1.将学号为1的学生,年龄修改为20

sql 复制代码
UPDATE student SET age = 20 WHERE id = 1;

2.将学号为2的学生,名称修改为黄眉大王

sql 复制代码
UPDATE student SET name = '黄眉大王' WHERE id = 2;

2.将所有学生的年龄都改为18

sql 复制代码
UPDATE student SET age = 18;
相关推荐
morliz子轩18 分钟前
在Docker上安装MYSQL 8.x—RelationalDb with SQL
sql·mysql·docker
yumgpkpm1 小时前
hadoop集群搭建 (超详细) 接入Impala、Hive,AI 大模型的数据底座
hive·hadoop·mysql·zookeeper·flink·kafka·hbase
都是蠢货1 小时前
mysql中null是什么意思?
android·数据库·mysql
爱技术的阿呆1 小时前
MySQL子查询及其案例
数据库·mysql
Logic1012 小时前
《Mysql数据库应用》 第2版 郭文明 实验1 在MySQL中创建数据库和表核心操作与思路解析
数据库·sql·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学
九转苍翎2 小时前
深入解析MySQL(8)——核心日志与备份恢复
mysql
羑悻的小杀马特2 小时前
Docker高阶实战:从镜像构建优化策略实践到MySQL主从集群详解+一主二从容器化实现,一文打通生产级部署!
mysql·docker·容器·镜像实战
梁萌14 小时前
MySQL数据库分库分表介绍
数据库·mysql·shardingsphere·分库分表
Cat God 00716 小时前
SQL使用及注意事项
数据库·sql·mysql
华仔啊16 小时前
如何避免MySQL死锁?资深DBA的9条黄金法则
后端·mysql