【MySQL】数据库 -- 表的增删查改详解

表的增删查改是数据库表的最基本的操作:

增加:

insert into table_name[(column[,column...])]
values (value [,value...]);

示例:

创建一张商品表,并插入两条记录:

在values中列出的数据位置必须与被加入的列位置相对应:

字符和日期类型应该包含在单引号中:


插入的数据应与字段的数据类型相同。比如,将‘abc'插入到id列就不行:


插入空值,不指定或insert into table values(null)

insert into table values(),(),() 一次性添加多条记录:


如果给表中的所有字段添加数据,可以不写前面的字段名称:


如果你只给表的某几个字段赋值,则需要制定字段名:


增加进阶:

在数据插入的时候,假设主键对应的值已经存在:插入失败!当主键存在冲突的时候(duplicate key),可以选择性的进行处理:

1、更新操作。

2、替换,主键如果没有冲突,就直接插入。



修改:

更新表中的数据:

update tbl_name set col_name1=expr1, [, col_name2=expr2 ...] [where conditon]

示例:

将所有产品的价格修改为300块:


将id为100的产品价格修改为1000:


将id为200的产品价格增加200块:


update使用细节:
update 语法可以用心值更新原有表中的各列
set子句指示要修改哪些列和要给予哪些值
where子句指定应更新哪些行。如果没有where子句,则更新所有行
如果需要更新多个字段,可以通过 set 字段1=值1,字段2=值2...

更新还可以限制更新数量:

update 表名 set 字段=值 [where 条件] [limit 更新数量];

将goods表中的ccc产品的前一条改为ddd:



删除:

delete from tbl_name [where condition]

删除表中id为101的数据:


删除表中的所有记录:

 delete from goods; --删除整个表的数据,但是表的结构还存在

使用truncate删除表中的记录:

truncate table goods; --这个指令也把整个表记录删除
上述两种删除整表的区别:
效果一样,truncate速度快
delete可以带where条件,删除更加灵活
delete可以返回被删除的记录数,而truncate返回0

推荐使用delete


delete使用细节:
如果不适用where子句,将删除整个表中所有数据
delete语句不能删除某一列的值(可以用update置null)
使用delete语句仅删除记录,不删除表本身(drop table)


猜你喜欢

转载自blog.csdn.net/yaotengjian/article/details/80368271