- 插入数据:
- 3种语法形式:
- 形式一:insert [into] 表名 [(字段名1,字段名2,....)] values (值表达式1,值表达式2,....), (.....), ....;
- 形式二:insert [into] 表名 set 字段名1=值表达式1,字段名2=值表达式2,....;
- 形式三:insert [into] 表名 [(字段名1,字段名2,....)] select 字段名1,字段名2,.... from 其他表名;
- 解释说明:
- 形式一和形式三可以一次性插入多条数据,且形式三的数据来源是由其中的select语句所获取的。
- 形式一和形式三的字段列表部分可以省略(但严重不推荐),此时值列表部分必须依次完全对应该表的每一个字段
- 不管哪种形式,字段名和字段值都有“一一对应”关系:数量,顺序和类型都应该对应。
- 不管哪种形式,每次插入都必然是以“行”为单位进行,要么成功插入一行,要么失败。对于语句中没有给定的字段,成功的插入必然会根据表或系统的设定而获得“默认值”(有时候默认值就是空值“null”)
- 注意字符串类型和时间日期类型的字面量值通常都需要用单引号引起来,比如:'abc','传智播客', '2013-4-5 6:7:8"
- 语句中所给定的字段名的顺序可以不是表中的实际顺序。
- 有的字段通常都无需插入数据,比如具有auto_increment属性的字段,或类型为timestamp的字段。
- 其他类似插入数据语法:
- 载入文本数据:load data infile语法:这个语法比较复杂,知道就行,其作用是从一个外部的记事本文件中导入数据到某个表中。该记事本中的数据通常要求“比较整齐”,一行文本对应表的一行数据,一行中用某种字符(通常用tab符)来分割一个一个字段的值,类似这样:。该语句的语法简单解释如图所示:
- 完整复制一个表(包括表结构和表数据):create table 新表名 select * from 原表名;
- 3种语法形式:
- 删除数据:
- 基本语法形式:delete from 表名 [where条件] [order排序] [limit限定];
- 解释说明:
- 删除是以“行”为单位的,一行数据要么删除成功,要么没有删除。
- where条件可选,但通常都必须有,用来删除满足条件的数据;如果没有设定条件,则会删除所有数据。
- order排序可选,通常不需要,用来指定按设定的数据顺序删除。
- limit限定可选,通常不需要,用来限定删除哪些行的数据(指第几行开始的多少条)。
- 其他类似删除数据语句:
- truncate语句:truncate [table] 表名;用于直接删除整个表(结构)并重新创建该表。此时数据自然全部没有了,而且表恢复到初始状态(比如auto_increment的当前值就变成初始值了,而如果用delete删除即使删除所有数据,auto_increment值也会保留)。
- 修改数据:
- 基本语法形式:update 表名 set 字段名1=值表达式1,字段名2=值表达式2,....[where条件] [order排序] [limit限定];
- 解释说明:
- 修改是以“行”为单位的,一行数据要么修改成功,要么没有修改,虽然我们可以设定只修改表中的部分字段,但也应该以“行”为单位去理解它。
- where条件可选,但通常都必须有,用来修改满足条件的数据;如果没有设定条件,则会修改所有数据。
- order排序可选,通常不需要,用来指定按设定的数据顺序修改。
- limit限定可选,通常不需要,用来限定修改哪些行的数据(指第几行开始的多少条)。
mysql数据操作语言DML(Data Manipulation Language)
最新推荐文章于 2022-01-29 17:56:28 发布