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  innerleftright 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  innerleftright 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)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的DML语言(增删改)

MySQL 数据操作 DML(增删改查)

MySQL语法------15-----DML语言-增删改

三MySQL 高级(DML 增删改)

MySQL3.DML语言(增删改)

mysql 记录的增删改查