DML语言|表内数据增删改(MySQL)
Posted 世一渔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DML语言|表内数据增删改(MySQL)相关的知识,希望对你有一定的参考价值。
目录
前言
这次我们介绍对表内数据的增删改操作,首先我们先建立两个表stuinfo、teachinfo,表的格式如下:
下面在这这两个表的基础上进行增删查操作。
插入语句
插入方式一
语法
:
i
n
s
e
r
t
i
n
t
o
表
名
(
列
名
,
.
.
.
)
v
a
l
u
e
s
(
值
1
,
.
.
.
)
;
\\colorVioletinsert \\ into \\ 表名(列名,...) \\ values(值1,...);
insert into 表名(列名,...) values(值1,...);
注意
:
∙ \\bullet ∙ 插入的值的类型要与列的类型一致或者兼容
∙ \\bullet ∙ 不可以为null的列一定要插入值,可以为null的列当不想写入值时,可以写入null,或者直接不写对应的列名
∙ \\bullet ∙ 列的顺序可以调换,但是要与值一一对应
∙ \\bullet ∙ 可以省略列名,默认所有列,而且列的顺序与表中列的顺序相同
示例一
:学生stuinfo表插入数据
示例二
:老师teachinfo表插入数据
插入方式二
语法
:
i
n
s
e
r
t
i
n
t
o
表
名
s
e
t
列
名
=
值
,
列
名
=
值
.
.
.
\\colorVioletinsert \\ into \\ 表名 \\ set \\ 列名=值,列名=值...
insert into 表名 set 列名=值,列名=值...
示例一
:学生stuinfo表插入数据
示例二
:老师teachinfo表插入数据
对比
类型 | 一次插入行数 | 子查询 |
---|---|---|
方式一 | 支持插入多行 | 支持子查询 |
方式二 | 一次插入一行 | 不支持子查询 |
修改语句
修改单表的记录
语法
:
u
p
d
a
t
e
表
名
s
e
t
列
=
新
值
,
列
=
新
值
,
.
.
.
w
h
e
r
e
筛
选
条
件
\\colorVioletupdate \\ 表名 \\ set \\ 列=新值,列=新值,... \\ where 筛选条件
update 表名 set 列=新值,列=新值,... where筛选条件
示例一
:修改id=1学生的老师为1号
修改多表的记录
sql92语法
:
u
p
d
a
t
e
表
1
别
名
,
表
2
别
名
s
e
t
列
=
值
,
.
.
.
w
h
e
r
e
连
接
条
件
a
n
d
筛
选
条
件
\\colorVioletupdate \\ 表1 \\ 别名,表2 \\ 别名 \\ set \\ 列=值,... \\ where \\ 连接条件 \\ and \\ 筛选条件
update 表1 别名,表2 别名 set 列=值,... where 连接条件 and 筛选条件
sql99语法
:
u
p
d
a
t
e
表
1
别
名
i
n
n
e
r
∣
l
e
f
t
∣
r
i
g
h
t
j
o
i
n
表
2
别
名
o
n
连
接
条
件
s
e
t
列
=
值
,
.
.
.
w
h
e
r
e
筛
选
条
件
\\colorVioletupdate \\ 表1 \\ 别名 \\ inner|left|right \\ join \\ 表2 \\ 别名 \\ on \\ 连接条件 \\ set \\ 列=值,... \\ where \\ 筛选条件
update 表1 别名 inner∣left∣right join 表2 别名 on 连接条件 set 列=值,... where 筛选条件
示例一
:sql99语法,将id=1老师的学生年龄改为16
删除语句
方式一:delete
单表删除语法
:
d
e
l
e
t
e
f
r
o
m
表
名
w
h
e
r
e
筛
选
条
件
;
\\colorViolet delete \\ from \\ 表名 \\ where \\ 筛选条件;
delete from 表名 where 筛选条件;
示例一
:删除id=2的学生信息
多表删除语法
sql92语法
:
d
e
l
e
t
e
表
1
别
名
,
表
2
别
名
(
需
要
删
除
哪
个
表
的
连
接
内
容
就
输
入
哪
个
表
的
别
名
)
f
r
o
m
表
1
别
名
,
表
2
别
名
w
h
e
r
e
连
接
条
件
a
n
d
筛
选
条
件
\\colorVioletdelete \\ 表1别名,表2别名(需要删除哪个表的连接内容就输入哪个表的别名) \\ from \\ 表1 \\ 别名,表2 \\ 别名 \\ where \\ 连接条件 \\ and \\ 筛选条件
delete 表1别名,表2别名(需要删除哪个表的连接内容就输入哪个表的别名) from 表1 别名,表2 别名 where 连接条件 and 筛选条件
sql99语法
:
d
e
l
e
t
e
表
1
别
名
,
表
2
别
名
(
需
要
删
除
哪
个
表
的
连
接
内
容
就
输
入
哪
个
表
的
别
名
)
f
r
o
m
表
1
别
名
i
n
n
e
r
∣
l
e
f
t
∣
r
i
g
h
t
j
o
i
n
表
2
别
名
o
n
连
接
条
件
w
h
e
r
e
筛
选
条
件
\\colorVioletdelete \\ 表1别名,表2别名(需要删除哪个表的连接内容就输入哪个表的别名) \\ from \\ 表1 \\ 别名 \\ inner|left|right \\ join \\ 表2 \\ 别名 \\ on \\ 连接条件 \\ where \\ 筛选条件
delete 表1别名,表2别名(需要删除哪个表的连接内容就输入哪个表的别名) from 表1 别名 inner∣left∣right join 表2 别名 on 连接条件 where 筛选条件
方式二:truncate(清空数据)
语法
:
t
r
u
n
c
a
t
e
t
a
b
l
e
表
名
;
\\colorViolettruncate \\ table \\ 表名;
truncate table 表名;
比较
类型 | 筛选条件 | 效率 | 自增长列 | 返回值 | 回滚 |
---|---|---|---|---|---|
方式一 | 可以加where | 相对较低 | 自增长列值从断点开始 | 有返回值 | 可以回滚 |
方式二 | 不可以加where | 相对较高 | 自增长列值从1开始 | 无返回值 | 不能回滚 |
以上是关于DML语言|表内数据增删改(MySQL)的主要内容,如果未能解决你的问题,请参考以下文章