1、插入表数据
insert [low_priority|delayed|high_priority] [ignore]
[into] tbl_name [(col_name,...)]
values ({expr|default},...),(...),...
|set col_name={expr|default},...
[on duplicate key update col_name=expr,...]
tbl_name:被操作的表名。
col_name:需要插入数据的列名。如果给全部列插入数据,列名可以省略
values:包含各列需要插入的数据清单。
(1)expr:插入的值,其数据类型与列的数据类型必须一致
(2)default:指定为该列的默认值
修饰符:
1、low_priority:使用以后,当原有客户端正在读取数据时,延迟操作的执行,知道没有其他客户端从表中读取数据为止
2、delayed:将待插入的行放到一个缓冲器中。如果表正在被使用,服务器会保留这些行。当表空闲时,服务器开始插入行,并定期检查是否有新的读取请求
3、high_priority:使得操作优先执行
4、ignore:执行语句时出现的错误被当做警告处理
5、on duplicate key update...:若KEY出现重复值,则根据UPDATE后的语句修改旧行
6、set子句:set子句用于直接给列指定值
补充1: 使用INSERT INTO...SELECT...,可以快速地从一个或多个表中向一个表插入多个行,语法格式如下:
insert [low_priority|high_priority] [ignore] [into] tbl_name [(col_name,...)]
select...
[on duplicate key update col_name=expr,...]
补充2:将insert替代为replace,可以在插入数据前将与新纪录键冲突的旧纪录删除
补充3:图片一般可以用路径的形式来存储
例如:insert into xs
values('030702211','D:/IMAGE/picture.jpg')
2、删除表数据
1、使用DELETE语句删除数据
-
从单个表中删除:
delete [low_priority] [quick] [ignore] frome tbl_name
[where where_definition]
[order by ...]
[limit row_count]
说明:
quick修饰符:可以加快部分种类的删除操作的速度
from 子句:用于说明从何处删除数据,tbl_name为要删除数据的表名
where子句:where_definiton中的内容为指定的删除条件.如果省略where子句则删除该表的所有行
order by子句:各行按照子句中指定的顺序进行删除,此子句只在于LIMIT联用时才起作用
limit子句:用于告知服务器在控制命令被返回到客户端前被删除的行的最大值
-
从多个表中删除行:
delete [low_priority] [quick] [ignore] tbl_name[,*] [,tbl_name[.*]...]
from table_references
[where where_definition]
或
delete [low_priority] [quick] [ignore]
from tbl_name[.*] [, tbl_name[.*]...]
using table_references
[where where_definition]
例如(有3个表t1,t2,t3,删除t1中id值等于t2的id值的所有行和t2中id值等于t3的id值的所有行):
delete t1,t2
from t1,t2,t3
where t1.id=t2.id and t2.id=t3.id;
或
delete from t1,t2
using t1,t2,t3
where t1.id=t2.id and t2.id=t3.id;
2、使用TRUNCATE TABLE 语句删除表数据
truncate table table_name
注:参与了索引和视图的表,不能使用truncate table删除数据,而应使用delete语句
3、修改表数据
-
修改单个表
update [low_priority] [ignore] tbl_name
set col_name1=expr1 [,col_name2=expr2...]
[where where_definition]
[order by...]
[limit row_count]
例如:
update xs
set 学号='081251',备注='转专业学习'
where 姓名='罗林琳'
-
修改多个表
update [low_priority] [ignore] table_references
set col_name1=expr1 [,col_name2=expr2...]
[where where_definition]
例如:
update tb1,tb2 set tb1.pwd='AAA',tb2.pwd='BBB'
where tb1.id=tb2.id;