mysql-- 插入、修改、删除

插入

语法一

insert  into 表名(列名1...) values(值1...) ;

特点

  • 值得类型和列的类型一致
  • 不可以为null的值必须插入值
  • 列的顺序可以调换
  • 列的数和值得数一致
  • 可以省略列名,默认是所有列,列的顺序和表中的顺序一致   insert  into 表名 values(值1...)

示例:

insert into students(sno,sname,ssex,sbirthday,class)
values(119,'林动','男','1992-04-23','95031'); 

语法二

insert  into 表名 set 列名='值' .... ;

示例:

insert into students set sno="110",sname="林动",ssex="男",sbirthday="1992-04-23",class="95031";

两种语法区别

语法一支持插入多行,方式二不支持

语法

insert  into 表名(列名1...) values(值1...),(值1...),(值1...) ;

示例

INSERT INTO students
(sno,sname,ssex,sbirthday,class) 
VALUES
(112,'林动2','男','1992-04-23','95031'),
(113,'林动3','男','1992-04-23','95031');

语法一支持子查询,方式二不支持

将查询的结果集当成values 插入到制定列当中去

示例

INSERT INTO students
(sno,sname,ssex,sbirthday,class)
select 112,'林动6','男',	'1992-04-23','95031';

修改

修改单标记录语法

 

update 表名 set 列="值",... where 筛选条件

示例

update students set class='95032' where sname LIKE "林%"

修改多表记录语法

update 表1名 as 别名1,表2名 别名2 set 别名.列="值",别名.列="值" where 筛选条件;

或者

update 表1名 as 别名1 连接类型 表2名 as 别名2 on 连接条件  set 别名1.列名="值",别名2.列名=值  where  筛选条件

示例

update students as stu,scores sc set stu.class="22",sc.degree=22 where stu.sno=sc.sno and stu.sname like "林%" 

或者

update students as stu LEFT JOIN scores sc on stu.sno=sc.sno  set stu.class="44",sc.degree=44  where  stu.sname like "林%" 

关联表批量修改

update table1 t1 ,table2 t2 set t1.field1 = t2.field2 where t1.id = t2.id

删除

删除表中的全部数据语法

TRUNCATE table 表名;

 

单表的删除语法

delete  from 表名 where 筛选条件

示例

DELETE from students where sname ="林动6"

多表的删除语法

# 如果 要删除那张单表的数据在from 前面 写上那个表的别名,写一个删除一个表的数据,写两个删除两张表的数据
DELETE 要删除的表别名1,要删除的表别名二 from  表1名 as 别名1 LEFT JOIN 表2名 as 别名2 on 连接条件 where  筛选条件

或者

DELETE 要删除的表别名1,要删除的表别名二 from   表1名 as 别名1 ,表2名 as 别名2 where  连接条件  and  筛选条件 

示例

DELETE stu,sc from  students as stu LEFT JOIN scores sc on stu.sno=sc.sno  where  stu.sname like "林%" 

或者

DELETE stu,sc from  students as stu ,scores sc where  stu.sno=sc.sno  and  stu.sname like "林%" 

 

你可能感兴趣的:(数据库)