Mysql数据操作语言(增删改)
数据操作语言:
插入数据(增):
多种语法形式:
l 形式1:insert [into] 表名 [(字段名1,字段名2,....)] values (值表达式1,值表达式2,....), (.....), ....;
n 这是最常用的插入语句,可以一次性插入多行数据,用逗号隔开;
n 插入语句,要理解为每次插入数据都是以“行”为单位进行插入。
n 字段名通常不推荐省略,其后续的“值列表”应该跟字段名列表“一一对应”;
n 其中的值表达式,可以是一个“直接”,或“函数调用结果”,或变量值;其中,如果对应字段是字符或时间类型,则直接值应该使用单引号;
l 形式2:replace [into] 表名 [(字段名1,字段名2,....)] values (值表达式1,值表达式2,....), (.....), ....;
n 其跟insert into几乎一样:唯一区别是,如果插入的数据的主键或唯一键“有重复”,则此时就会变成“修改该行数据”;

l 形式3:insert [into] 表名 [(字段名1,字段名2,....)] select 字段名1,字段名2,.... from 其他表名;
n 将select语句查询的结果数据(可能多条),都插入到指定的表中。
n 其中,也需要注意字段的对应:select出来的字段列表,要跟前面指定的字段列表“一一对应”

l 形式4:insert [into] 表名 set 字段名1=值表达式1,字段名2=值表达式2,....;
load data(载入数据)语法:
它适用于载入如下图所示“结构整齐的纯文本数据”:

当然,前提是,有一个这样的对应结构的现有的表:

载入语法形式:
load data infile “完整的数据文件的路径” into table 表名;

删除数据(删):
语法形式:
delete from 表名 【where 条件】 【order by排序字段】 【limit 限定行数】;
说明:
1,删除数据仍然是以“行”为单位进行;
2,通常删除数据都需要带where条件,否则就会删除所有数据(这很不常见);
3,where条件的语法跟select中的语法一样;
4,order by 排序设定,用于指定这些数据的删除顺序;它通常跟limit配合使用才有意义;
5,limit限定用于设定删除多少行(按orderby设定的顺序);
6,实际应用中,通常很少用到orderby和limit,则删除的常规使用形式就成为:
delete from 表名 where 条件;

修改数据(改):
语法形式:
update 表名 set 字段1=值1,字段2=值2,...... 【where 条件】 【order by排序字段】 【limit 限定行数】;
说明:
1,通常,update语句,也都需要where条件,否则:就会修改所有数据(这很少见);
2,where条件的语法跟select中的语法一样;
3,order by 用于设定修改的顺序,limit用于设定修改的行数,他们通常也是结合使用(虽然都很少用)
4,实际应用中,通常很少用到orderby和limit,则修改数据的常规使用形式就成为:
update 表名 set 字段1=值1,字段2=值2,...... where 条件
5,注意:其中的“数据值”,如果是字符串或时间类型的“直接值”,就应该用单引号;
举例:
update tab1 set name = ‘张三丰’, age = 18, birthday = ‘1900-3-4’ where id = 3;
update tab1 set name = get_name() , age = func1() , birthday = now() where id = 3;
浙公网安备 33010602011771号