关于mysql中DML语句的使用方法

  介绍

小编给大家分享一下关于mysql中DML语句的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

DDL(数据定义语言):数据定义语言,用于创建,删除,修改,库或表结构,对数据库或表的结构操作。常见的有创建、修改,等。

DML(数据操作语言):数据操纵语言,主要对表记录进行更新(增、删、改)。常见的有插入、更新、删除等。

<强> 1。插入数据

插入数据主要用到的是插入语法,官方文档同样给出很多选项:

插入[LOW_PRIORITY | |延迟HIGH_PRIORITY][忽略][到]tbl_name[分区(partition_name [, partition_name]…)) ((col_name [, col_name]…)){值|值}(value_list) (, (value_list)]…(在复制键更新assignment_list)
  插入[LOW_PRIORITY | |推迟HIGH_PRIORITY][忽略][到]tbl_name[分区(partition_name [, partition_name]…))设置assignment_list(在复制键更新assignment_list)
  插入(LOW_PRIORITY | HIGH_PRIORITY][忽略][到]tbl_name[分区(partition_name [, partition_name]…)) ((col_name [, col_name]…)]选择……(在复制键更新assignment_list)
  价值:{expr |默认}
  value_list:价值(价值)…
  任务:col_name=价值
  assignment_list:赋值[任务]…

有兴趣的同学可以咨询研究下上面的各个选项哦,下面我将分类给大家介绍几个常用的语法。

<强>插入……值(…)

这可能是你写插入语句最常用的一种,标准用法为:

插入& lt;表名的在[& lt;列名1比;(…& lt;列名n>]]值(值1)[…,(值n)];
  #插入多行插入表(column1 column2……)值(value1, value2,…), (value1, value2,…),……; 

语法说明如下:

    <李> & lt;表名的在:指定被操作的表名。 <李> & lt;列名比;:指定需要插入数据的列名。若向表中的所有列插入数据,则全部的列名均可以省略,直接采用INSERT<表名祝辞值(…)即可。
      李,李 <>值或值子句,该子句包含要插入的数据清单。数据清单中数据的顺序要和列的顺序相对应。
      李,

<强>插入……集……

插入……设置语句一次只能插入一条数据,可以向表中插入部分列的值,这种方式更为灵活。

插入& lt;表名在设定& lt;列名1比;=& lt;值1祝辞,& lt;列名2比;=& lt;值2祝辞,…#其中为可以省略

<强>插入……选择……

插入…从语选择…句用于快速地从一个或多个表中取出数据,并将这些数据作为行数据插入另一个表中。

SELECT子句返回的是一个查询到的结果集,插入语句将这个结果集插入指定表中,结果集中的每行数据的字段数,字段的数据类型都必须与被操作的表完全一致。

举个例子,假如测试表和test_bak表结构完全一致,我们想把测试表中的数据插入到test_bak表中,那么我们可以这么操作:

插入test_bak select * 

<强>插入……> #假设学生表结构和原始数据如下:创建表‘学生’(‘xuehao int(11)主键,“名字”varchar(255)默认为空,“年龄”int(11)默认为空)引擎=InnoDB默认字符集=utf8;   mysql>从学生选择*,+,- - - - - - - - - - - - - - - - - - + + | xuehao年龄| | |名称+ - - - - - - - - - - - - - - - - - - - - - - + + | 1001 | aaa 18 | | 1002 | | bbb 19 | | 1003 | | ccc 20 | | + - - - - - - - - - - - - - - - - - - - - - - + +   #比如我们想插入这条数据,MySQL发现主键重复后会执行后面的更新语句插入学生(xuehao、名字、年龄)值(1003 & # 39;ccc # 39;, 19)> #还是上面那个学生表,xuehao是主键原有数据为mysql>从学生选择*,+,- - - - - - - - - - - - - - - - - - + + | xuehao年龄| | |名称+ - - - - - - - - - - - - - - - - - - - - - - + + | 1001 | aaa 18 | | 1002 | | bbb 19 | | 1003 | | ccc 19 | | + - - - - - - - - - - - - - - - - - - - - - - + +   #如果执行替换成学生值(1003 & # 39;ccc # 39;, 17);   #则新的表数据为mysql>从学生选择*,+,- - - - - - - - - - - - - - - - - - + + | xuehao年龄| | |名称+ - - - - - - - - - - - - - - - - - - - - - - + + | 1001 | aaa 18 | | 1002 | | bbb 19 | | 1003 | | ccc 17 | | + - - - - - - - - - - - - - - - - - - - - - - + +   #效果等同于将xuehao为1003的行删除,然后再插入新行

<强> 2。更新数据

更新语句用于更新表数据,官方推荐语法为:

关于mysql中DML语句的使用方法