mysql命令5——插入、更新与删除数据
1. 插入数据
在使用数据库之前,数据库中必须要求数据,mysql使用insert语句向数据库 表中插入新的数据记录。可以插入的方式有:插入完整的记录、插入记录的一部分、插入多条记录、插入另一个查询的结果。
1. 为表的所有字段插入数据(插入完整记录)
语法格式:
insert into table_name (column_list) values (value_list);
# "table_name" 指定要插入数据的表名,
# "column_list" 指定要插入数据的那些列,
# “value_list” 指定每个列应对应插入的数据。
# 注意: 使用该语句时字段列和数据值的数量必须相同。
# 1. 指定字段名
mysql> insert into person (id,name,age)
->values (1,'zhangsan',20);
# 2. 不指定字段名 需按照定义字段的顺序,插入
mysql> inser into person values(2,'lisi',16);
提示
虽然使用insert插入数据时可以忽略数据的列名称,但是值如果不包含列名称,那values关键字后面的值不仅要求完整而且顺序必须和表定义时列的顺序相同。如果表的结构被修改,对列进行增加、删除或者位置改变操作,这些操作将使得用这种方式插入数据时的顺序也同时改变。如果指定列名称,则不会收到表结果改变的影响。
2. 同时插入多条记录
insert语句同时向数据表插入多条记录时,每个值列表之间用逗号分隔开,基本语法格式如下:
insert into table_name (column_list) values (value_list1),(values_list2), ...,(values_listn);
使用insert同时插入多条记录时,mysql会返回一些在执行插入时没有的额外信息,这些包含数的字符串的意思分别是:
- Records:表明插入的记录条数。
- Duplicates:表明插入时被忽略的记录,原因可能时这些记录包含了重复的主键值。
- Warnings:表明有问题的数据值,例如发生数据类型转换。
比如:
mysql> insert into person
-> values (2,'hanry',21),
->(null,'maya'17);
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 warnings:0
3. 将查询结果插入到列表中
语法规则:
insert into table_name1 (column_list1) select (column_list2) from table_name2 where (condition)
# "table_name1" 指定插入数据的表;
# "column_list1" 指定待插入表中插入数据的哪些列;
# "talbe_name2" 指定插入数据是从哪个表中查询出来;
# "column_list2" 指定数据来源表的查询列,该列表必须和column_list列表中的字段个数相同,数据类型相同;
# "condition" 指定select语句的查询条件。
4. 更新数据
语法格式:
update table_name
set 字段名1 = value1,字段名2=value, ......, 字段名3=valuen
where (condition);
#在person表中,更新id值为11的记录,将age字段值改为15,将name字段值改为liming。
update person set age=15,name='liming' where id=11;
# 保证update以where子句结束,通过where子句指定被更新的记录所需要满足的条件,如果忽略where子句,mysql将更新表中所有行。