表结构准备:

mysql> CREATE TABLE student(
-> sid INT PRIMARY KEY AUTO_INCREMENT,
-> sname VARCHAR(10),
-> age INT,
-> city VARCHAR(10)
-> );
Query OK, 0 rows affected (0.08 sec)

一、数据插入操作

1.1 向表中所有字段插入数据

语法:insert into 表名  values (值列表);

mysql> INSERT INTO student VALUES (NULL,"张三",20,"广州");
Query OK, 1 row affected (0.03 sec) mysql> select * from student;
+-----+--------+------+--------+
| sid | sname | age | city |
+-----+--------+------+--------+
| 1 | 张三 | 20 | 广州 |
+-----+--------+------+--------+
1 row in set (0.00 sec)

注意:值列表必须与表结构中的字段相对应。

1.2 向表中指定字段插入数据

语法:insert into 表名 (字段1,字段2,...) values (字段1的值,字段2的值,...);

mysql> INSERT INTO student(sname,age) VALUES ("李四",22);
Query OK, 1 row affected (0.03 sec) mysql> select * from student;
+-----+--------+------+--------+
| sid | sname | age | city |
+-----+--------+------+--------+
| 1 | 张三 | 20 | 广州 |
| 2 | 李四 | 22 | NULL |
+-----+--------+------+--------+
2 rows in set (0.00 sec)

注意:1.values中的值列表需要与前面的字段列表相对应,字段列表的顺序可以与表结构字段的顺序不一致;

2.如果要插入空值,可以不写字段,或者插入null。

3.除了数值类型外,其它的字段类型的值必须使用引号引起。(单引号或双引号)

1.3 向表中同时插入多条数据

语法:insert into 表名 values (第一条记录的值), (第二条记录的值),...;

mysql> INSERT INTO student VALUES (NULL,"王五",17,"佛山"),(NULL,"赵六",24,"广州");
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0 mysql> select * from student;
+-----+--------+------+--------+
| sid | sname | age | city |
+-----+--------+------+--------+
| 1 | 张三 | 20 | 广州 |
| 2 | 李四 | 22 | NULL |
| 3 | 王五 | 17 | 佛山 |
| 4 | 赵六 | 24 | 广州 |
+-----+--------+------+--------+
4 rows in set (0.00 sec)

1.4 向表中插入其它表的查询结果数据

语法:insert into 表名  select * from 其它表名 [where 条件];

mysql> CREATE TABLE mystudent LIKE student;
Query OK, 0 rows affected (2.12 sec) mysql> INSERT INTO mystudent SELECT * FROM student WHERE age < 20;
Query OK, 1 row affected (0.09 sec)
Records: 1 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM mystudent;
+-----+--------+------+--------+
| sid | sname | age | city |
+-----+--------+------+--------+
| 3 | 王五 | 17 | 佛山 |
+-----+--------+------+--------+
1 row in set (0.00 sec)

1.5 主键冲突替换插入数据

语法:replace into 表名  values (对应表结构字段的值列表);

mysql> REPLACE INTO student VALUES (2,"李小龙",22,"佛山");
Query OK, 2 rows affected (0.00 sec) mysql> select * from student;
+-----+-----------+------+--------+
| sid | sname | age | city |
+-----+-----------+------+--------+
| 1 | 张三 | 20 | 广州 |
| 2 | 李小龙 | 22 | 佛山 |
| 3 | 王五 | 17 | 佛山 |
| 4 | 赵六 | 24 | 广州 |
+-----+-----------+------+--------+
4 rows in set (0.00 sec)

注意:虽然replace功能比insert强大,但replace插入比insert的效率要低。

二、数据更改操作

语法:update 表名 set 字段名=新的值, 字段名=新的值... where 条件;

mysql> UPDATE student SET sname = "李四" WHERE sid = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from student;
+-----+--------+------+--------+
| sid | sname | age | city |
+-----+--------+------+--------+
| 1 | 张三 | 20 | 广州 |
| 2 | 李四 | 22 | 佛山 |
| 3 | 王五 | 17 | 佛山 |
| 4 | 赵六 | 24 | 广州 |
+-----+--------+------+--------+
4 rows in set (0.00 sec)

注意:如果不写where条件,将会把所有记录指定的字段更改为相同的值!

三、数据删除操作

3.1 删除表中指定数据

语法:delete from 表名 where 条件;

mysql> DELETE FROM student WHERE age > 20;
Query OK, 2 rows affected (0.00 sec) mysql> select * from student;
+-----+--------+------+--------+
| sid | sname | age | city |
+-----+--------+------+--------+
| 1 | 张三 | 20 | 广州 |
| 3 | 王五 | 17 | 佛山 |
+-----+--------+------+--------+
2 rows in set (0.00 sec)

3.2 删除表中所有数据

语法:delete from 表名; 

truncate table 表名;

mysql> DELETE FROM student;
Query OK, 2 rows affected (0.00 sec) mysql> select * from student;
Empty set (0.00 sec)

注意:delete方式只删除表中所有数据,不清空auto_increment记录数,

truncate方式删除表中所有数据,并清空auto_increment记录数。

最新文章

  1. 使用java泛型设计通用方法
  2. jQuery 判断页面元素是否存在的代码
  3. 转:面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
  4. POJ 2388 Who&#39;s in the Middle(水~奇数个数排序求中位数)
  5. thinkphp添加空数据的解决办法
  6. /etc/profile和$HOME/.bash_profile
  7. RN组件之Navigator
  8. [LeetCode] Ugly Number II (A New Question Added Today)
  9. 解决服务器断电导致mysql数据库无法启动
  10. 高效算法——D 贪心,区间覆盖问题
  11. 动态代理写connection连接池Demo
  12. grub4dos新手指南-2
  13. Spring @Transactional 使用
  14. LibreOJ β Round #2 F. 数学上来先打表
  15. 设计模式——抽象工厂模式(C++实现)
  16. POJ 3678 Katu Puzzle (2-SAT)
  17. C++ Primer 笔记——关联容器
  18. 检查Rabbitmq中队列及消息个数,还有清空的方法
  19. Casper带有4个内建记录级别
  20. fuser命令

热门文章

  1. OPENCV VS设置
  2. Java入门到精通——框架篇之Spring源码分析Spring两大核心类
  3. Java NIO(一) Java NIO 概述
  4. matlab矩阵
  5. Flask入门request session cookie(二)
  6. WAKE-WIN10-SOFT-MATio
  7. 探索grep命令
  8. bind 详解
  9. TP5.0:新建控制器
  10. *92. Reverse Linked List II (follow up questions)