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;

 

 

posted @ 2016-07-27 15:44  z2168465  阅读(95)  评论(0)    收藏  举报