学堂 学堂 学堂公众号手机端

MySQL 增删改

lewis 5年前 (2020-01-11) 阅读数 7 #技术
MySQL的基本操作————增 删

1.向表中增加数据 insert into 表名 (字段1,字段2……) values (值1,值2……);
mysql> select * from linlin;
Empty set (0.00 sec)

mysql> desc linlin;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| score | float | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| id | int(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> insert into linlin (score, name, id) values (99, 'A', 1);
Query OK, 1 row affected (0.01 sec)

mysql> select * from linlin;
+-------+------+------+
| score | name | id |
+-------+------+------+
| 99 | A | 1 |
+-------+------+------+
1 row in set (0.00 sec)

也可以一次增加多条数据 insert into 表名 (字段1,字段2……) values (值1,值2……),(值1,值2……),……;
mysql> insert into linlin (score, name, id) values (98, 'B', 2), (97, 'C', 3);
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from linlin;
+-------+------+------+
| score | name | id |
+-------+------+------+
| 99 | A | 1 |
| 98 | B | 2 |
| 97 | C | 3 |
+-------+------+------+
3 rows in set (0.00 sec)

当插入语句中(字段1,字段2……)省略时,系统会按照表中字段的排列顺序插入
insert into 表名 values (值1,值2……);
mysql> insert into linlin values (96, 'D', 4);
Query OK, 1 row affected (0.02 sec)

mysql> select * from linlin;
+-------+------+------+
| score | name | id |
+-------+------+------+
| 99 | A | 1 |
| 98 | B | 2 |
| 97 | C | 3 |
| 96 | D | 4 |
+-------+------+------+
4 rows in set (0.00 sec)

insert语句的另一种写法:
insert into 表名 set 字段1 = 值1,字段2 = 值2,……;
mysql> insert into linlin set score = 95, name = 'E', id = 5;
Query OK, 1 row affected (0.02 sec)

mysql> select * from linlin;
+-------+------+------+
| score | name | id |
+-------+------+------+
| 99 | A | 1 |
| 98 | B | 2 |
| 97 | C | 3 |
| 96 | D | 4 |
| 95 | E | 5 |
+-------+------+------+
5 rows in set (0.00 sec)


2.对表中已存在的数据进行修改
update 表名 set 字段1 = 值1,字段2 = 值2,…… where 条件;
mysql> select * from linlin where id = 1;
+-------+------+------+
| score | name | id |
+-------+------+------+
| 100 | A | 1 |
+-------+------+------+
1 row in set (0.00 sec)

mysql> update linlin set score = 99 where id = 1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from linlin where id = 1;
+-------+------+------+
| score | name | id |
+-------+------+------+
| 99 | A | 1 |
+-------+------+------+
1 row in set (0.00 sec)

如果需要更新全部数据时,则不需要where条件

3. 删除表中的记录
delete from 表名 where 表达式;
mysql> select * from linlin;
+-------+------+------+
| score | name | id |
+-------+------+------+
| 99 | A | 1 |
| 98 | B | 2 |
| 97 | C | 3 |
| 96 | D | 4 |
| 95 | E | 5 |
+-------+------+------+
5 rows in set (0.00 sec)

mysql> delete from linlin where id = 5;
Query OK, 1 row affected (0.01 sec)

mysql> select * from linlin;
+-------+------+------+
| score | name | id |
+-------+------+------+
| 99 | A | 1 |
| 98 | B | 2 |
| 97 | C | 3 |
| 96 | D | 4 |
+-------+------+------+
4 rows in set (0.00 sec)

如果需要删除全部数据,则不必加上where条件

另外,还可以使用 truncate 表名 删除全部数据

truncate 表名 删除全部数据 与 delete from 表名 删除全部数据的异同
它们都可以删除全部数据,但对于自动增加字段的值,truncate 表名 删除
全部数据之后再向表中添加数据时,自动增加字段的默认值时从1开始,而
对于 delete from 表名 删除全部数据,自动增加字段的默认值是从未删除
时该字段的值加1开始。

转载请注明出处




版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门