插入
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。