【MySQL】表的增删查改

插入

insert into 表名 (列名...) values(值...);

1. 给表中的所有字段添加数据,可以不写前面的字段名称。
2. 只给表的某几个字段赋值,则需要制定字段名。
3. 在 values 中列出的数据位置必须与被加入的列位置相对应。
4. 数据类型,大小等属性也必须匹配。
5. 也可以插入多条数据:

insert into 表名 (列名...) values(值...),(值...);

当我们已经设置好主键的时候,我们可以对主键进行一些替换的更新操作。

如果主键存在冲突,那么我们可以更新一下主键之外其他字段的值

insert into 表名(字段列表) values(值列表) on duplicate key update 字段=新值;

再或者可以直接替换掉主键之外其他字段对应的值

replace into 表名(包含字段) values(值列表);

使用该语句时,如果主键不存在冲突,那么直接插入。

更新

update 表名 set 列名=值, 列名=值 [where conditon] [limit n];

1. update 语法可以用新值更新原有表中的各列值。
2. set子句指示要修改哪些列和要给予哪些值。
3. where子句指定应更新哪些行。如果没有where子句,则更新所有行。
4. where子句后面指定limit,更新限制数量的符合条件的行。

删除 

delete from 表名 [where condition];

删除表中所有记录

delete from 表名;
truncate table 表名;

通过这两个方式删除表,只是把所有记录删除了,但是结构还在。 

MariaDB [db]> delete from t1 where id =1;
Query OK, 1 row affected (0.00 sec)

MariaDB [db]> select *from t1;
+----+--------+
| id | name   |
+----+--------+
|  2 | 曹操   |
|  3 | 曹操   |
|  4 | 小红   |
|  5 | 李白   |
+----+--------+
4 rows in set (0.01 sec)

MariaDB [db]> create table t11 like t1;  //复制表
Query OK, 0 rows affected (0.05 sec)

MariaDB [db]> insert into t11 select * from t1; //将t1表中所有记录插入到t22
Query OK, 4 rows affected (0.04 sec)
Records: 4  Duplicates: 0  Warnings: 0

MariaDB [db]> delete from t1;
Query OK, 4 rows affected (0.00 sec)

MariaDB [db]> select * from t1;
Empty set (0.00 sec)

MariaDB [db]> desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
MariaDB [db]> truncate table t11;
Query OK, 0 rows affected (0.07 sec)

MariaDB [db]> select * from t11;
Empty set (0.00 sec)

MariaDB [db]> desc t11;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

MariaDB [db]>

delete 和 truncate 两种删除整表的区别:效果一样,truncate 速度快;delete 返回被删除的记录数,而 truncate 返回 0。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值