版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fancheng614/article/details/82319383
为了方便操作,先建立一张表:
mysql> create table person(
-> id int unsigned not null auto_increment,
-> name varchar(50),
-> age int,
-> info varchar(200),
-> primary key(id)
-> );
Query OK, 0 rows affected (0.40 sec)
一、插入数据
数据库插入数据的方式有:插入完整记录、插入记录的一部分、插入多条数据,插入另一个查询结果。
1、为表的所有字段插入数据
基本语法: insert into table_name(column_list) values(value_list);
例:
-- 插入数据
mysql> insert into person(id,name,age,info) values(1,'meng',22,'mengfancheng');
Query OK, 1 row affected (0.06 sec)
-- 下面查询一下这个表,可以看到已经插入了一条数据
mysql> select * from person;
+----+------+------+--------------+
| id | name | age | info |
+----+------+------+--------------+
| 1 | meng | 22 | mengfancheng |
+----+------+------+--------------+
1 row in set (0.02 sec)
2、为表的制定字段插入数据
注意:这里插入指定字段时,如果之前创建表约束字段不能为空,这里要是没给那个不能为空的字段赋值,会报错。
语法和1中一样,这里看例子:
insert into person(name,age,info) values('meng',22,'mengfancheng');
3、同事插入多条数据
基本语法:insert into table_name(column_list) values(values_list),(values_list1)...;
例:
-- 同时插入多条数据
mysql> insert into person(name,age,info) values
-> ('meng',22,'mengfancheng'),
-> ('fan',23,'woshimengfancheng');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
-- 查询上面插入的多条数据
mysql> select * from person;
+----+------+------+-------------------+
| id | name | age | info |
+----+------+------+-------------------+
| 1 | meng | 22 | mengfancheng |
| 2 | meng | 22 | mengfancheng |
| 3 | fan | 23 | woshimengfancheng |
+----+------+------+-------------------+
3 rows in set (0.00 sec)
Records:表明插入的记录条数
Duplicates:表明插入时被忽略的记录,原因可能是主键重复
Warnings:表明有事问题的数据值,例如发生了数据类型转换
4、将查询结果插入到表中
基本语法:insert into table_name1(column_list) select (column_list2) from table_name2 where (condition);
注意:column_list和column_list2字段个数必须相同,数据类型也要相同。
为了测试,这里再创建一张person_old表格:
-- 创建表格
mysql> create table person_old(
-> id int not null primary key,
-> name varchar(50),
-> age int,
-> info varchar(200)
-> );
Query OK, 0 rows affected (0.05 sec)
-- 首次查询为空
mysql> select * from person_old;
Empty set (0.00 sec)
-- 将从person表中查出的数据插入到person_old表中
mysql> insert into person_old(id,name,age,info)
-> select id,name,age,info from person where id in(1,2);
Query OK, 2 rows affected (0.08 sec)
Records: 2 Duplicates: 0 Warnings: 0
-- 查询验证
mysql> select * from person_old;
+----+------+------+--------------+
| id | name | age | info |
+----+------+------+--------------+
| 1 | meng | 22 | mengfancheng |
| 2 | meng | 22 | mengfancheng |
+----+------+------+--------------+
2 rows in set (0.00 sec)
二、更新数据
基本语法:update table_name set column_name1=value1,column_name2=value2,...column_namen=valuen where (condition);
例:
-- 修改之前的数据
mysql> select * from person;
+----+------+------+-------------------+
| id | name | age | info |
+----+------+------+-------------------+
| 1 | meng | 22 | mengfancheng |
| 2 | meng | 22 | mengfancheng |
| 3 | fan | 23 | woshimengfancheng |
+----+------+------+-------------------+
3 rows in set (0.00 sec)
-- 修改数据,where语句后面可以加和查询语句一样的条件
mysql> update person set name='xiaomeng' where id=1;
Query OK, 1 row affected (0.07 sec)
Rows matched: 1 Changed: 1 Warnings: 0
--修改之后验证
mysql> select * from person;
+----+----------+------+-------------------+
| id | name | age | info |
+----+----------+------+-------------------+
| 1 | xiaomeng | 22 | mengfancheng |
| 2 | meng | 22 | mengfancheng |
| 3 | fan | 23 | woshimengfancheng |
+----+----------+------+-------------------+
3 rows in set (0.00 sec)
三、删除数据
基本语法:delete from table_name [where <condition>];
例:
-- 删除数据之前
mysql> select * from person;
+----+----------+------+-------------------+
| id | name | age | info |
+----+----------+------+-------------------+
| 1 | xiaomeng | 22 | mengfancheng |
| 2 | meng | 22 | mengfancheng |
| 3 | fan | 23 | woshimengfancheng |
+----+----------+------+-------------------+
3 rows in set (0.00 sec)
-- 测试删除id为1的数据
mysql> delete from person where id=1;
Query OK, 1 row affected (1.92 sec)
-- 删除数据之后验证是否已经删除
mysql> select * from person;
+----+------+------+-------------------+
| id | name | age | info |
+----+------+------+-------------------+
| 2 | meng | 22 | mengfancheng |
| 3 | fan | 23 | woshimengfancheng |
+----+------+------+-------------------+
2 rows in set (0.00 sec)