《MySQL》操作表记录
2019-06-20 20:30
856 查看
4000
- 操作表记录
问题
练习表记录的操作
- 表记录的插入
- 表记录的更新
- 表记录的查询
- 表记录的删除
步骤
实现此案例需要按照如下步骤进行。
步骤一:删除上次试验stu_info表中记录
删除stu_info表的所有记录:
mysql> DELETE FROM stu_info;
Query OK, 3 rows affected (0.00 sec)
确认删除结果:
mysql> SELECT * FROM stu_info;
Empty set (0.00 sec)
步骤二:练习表记录的操作
1)插入记录时,指定记录的每一个字段的值
这种情况下,不需要明确指出字段,但每条记录的值的顺序、类型都必须与表格结构向一致,否则可能无法正确插入记录。
比如,以下操作将向stu_info表插入3条表记录:
mysql> INSERT stu_info VALUES
-> (‘Jim’,‘girl’,24),
-> (‘Tom’,‘boy’,21),
-> (‘Lily’,‘girl’,20);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
完成插入后确认表记录:
mysql> SELECT * FROM stu_info;
±-----±-------±----+
| name | gender | age |
±-----±-------±----+
| Jim | girl | 24 |
| Tom | boy | 21 |
| Lily | girl | 20 |
±-----±-------±----+
3 rows in set (0.00 sec)
2)插入记录时,只指定记录的部分字段的值
这种情况下,必须指出各项值所对应的字段;而且,未赋值的字段应设置有默认值或者有自增填充属性或者允许为空,否则插入操作将会失败。
比如,向stu_info表插入Jerry的年龄信息,性别为默认的“boy”,自动编号,相关操作如下:
mysql> INSERT INTO stu_info(name,age)
-> VALUES(‘Jerry’,27);
Query OK, 1 row affected (0.00 sec)
类似的,再插入用户Mike的年龄信息:
mysql> INSERT INTO stu_info(name,age)
-> VALUES(‘Mike’,21);
Query OK, 1 row affected (0.00 sec)
确认目前stu_info表的所有记录:
mysql> SELECT * FROM stu_info;
±------±-------±----+
| name | gender | age |
±------±-------±----+
| Jim | girl | 24 |
| Tom | boy | 21 |
| Lily | girl | 20 |
| Jerry | boy | 27 |
| Mike | boy | 21 |
±------±-------±----+
5 rows in set (0.00 sec)
3)更新表记录时,若未限制条件,则适用于所有记录
将stu_info表中所有记录的age设置为10:
mysql> UPDATE stu_info SET age=10;
Query OK, 5 rows affected (0.00 sec)
Rows matched: 5 Changed: 5 Warnings: 0
确认更新结果:
mysql> SELECT * FROM stu_info;
±------±-------±----+
| name | gender | age |
±------±-------±----+
| Jim | girl | 10 |
| Tom | boy | 10 |
| Lily | girl | 10 |
| Jerry | boy | 10 |
| Mike | boy | 10 |
±------±-------±----+
5 rows in set (0.00 sec)
4)更新表记录时,可以限制条件,只对符合条件的记录有效
将stu_info表中所有性别为“boy”的记录的age设置为20:
mysql> UPDATE stu_info SET age=20
-> WHERE gender=‘boy’;
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3 Changed: 3 Warnings: 0
确认更新结果:
mysql> SELECT * FROM stu_info;
±------±-------±----+
| name | gender | age |
±------±-------±----+
| Jim | girl | 10 |
| Tom | boy | 20 |
| Lily | girl | 10 |
| Jerry | boy | 20 |
| Mike | boy | 20 |
±------±-------±----+
5 rows in set (0.00 sec)
5)删除表记录时,可以限制条件,只删除符合条件的记录
删除stu_info表中年龄小于18的记录:
mysql> DELETE FROM stu_info WHERE age < 18;
Query OK, 2 rows affected (0.04 sec)
确认删除结果:
mysql> SELECT * FROM stu_info;
±------±-------±----+
| name | gender | age |
±------±-------±----+
| Tom | boy | 20 |
| Jerry | boy | 20 |
| Mike | boy | 20 |
±------±-------±----+
3 rows in set (0.00 sec)
6)删除表记录时,如果未限制条件,则会删除所有的表记录
删除stu_info表的所有记录:
mysql> DELETE FROM stu_info;
Query OK, 3 rows affected (0.00 sec)
确认删除结果:
mysql> SELECT * FROM stu_info;
Empty set (0.00 sec)
相关文章推荐
- MySQL存储引擎 SQL数据导入/导出 操作表记录 查询及匹配条件
- MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)
- MySQL之——查询重复记录、删除重复记录方法大全
- MySQL从库记录binlog日志出错一例
- mysql重复记录相关
- MYSQL常用操作记录(草稿,仅供备忘)
- 常用mysql基础操作记录
- 随机获取Mysql数据表的一条或多条记录
- MySQL常用操作记录
- [学习记录]Mysql使用TRIGGER自动生成订单号
- mysql入门记录
- windows7下安装apache+php+mysql问题记录
- 【MySql】sql函数实现 添加/修改购物车 没有记录则insert 有则update (性能好坏未测试)
- MySQL自动删除指定时间以前的记录
- php,mysql查询当天的记录
- 源码编译安装MYSQL-5.5.28全记录
- 【MySql】使用记录<六>
- 单表60亿记录等大数据场景的MySQL优化和运维之道
- mysql中删除表记录delete from和truncate table的用法区别
- mysql慢查询记录