MySQL日常笔记主要涵盖了MySQL数据库中的基础操作和查询语句,包括数据检索、插入、更新、删除以及联接查询。以下是一些关键知识点的详细解析:
1. 基本查询语句:
- `SELECT * FROM goods;`:此语句用于获取`goods`表中的所有列和行数据。
- `INSERT INTO msg (...) VALUES (...);`:用于向`msg`表中插入新的记录,括号内填写相应的字段和值。
- `UPDATE goods SET ... WHERE id = *;`:更新`goods`表中指定`id`的数据,设置更新的字段和条件。
- `DELETE FROM msg WHERE id = *;`:删除`msg`表中满足特定`id`条件的记录。
2. 联接查询:
- `aʽ` 使用了`INNER JOIN`(连接条件为`c.id = o.customer_id`),返回`customerc`和`orders`表中匹配条件的行。
- `bʽ` 是另一种`INNER JOIN`写法,同样基于`c.id = o.customer_id`,但在此基础上添加了额外的`ON`子句,用于指定附加条件。
- `b` 使用了`INNER JOIN`,并且在连接条件后增加了`o.price >= 200`,只返回价格大于或等于200的订单。
- `a` 和 `b` 的`LEFT OUTER JOIN`版本允许获取`customerc`表中的所有记录,即使在`orders`表中没有匹配的记录也会显示。
- `b` 的`RIGHT OUTER JOIN`版本则相反,获取`orders`表中的所有记录,即使在`customerc`表中没有匹配的记录也会显示。
3. 子查询与多表联接:
- `1: SELECT * FROM t1 WHERE [id = (SELECT id FROM t2)]`:嵌套子查询用于在外部查询中查找`t2`表中符合条件的`id`,然后根据这个id筛选`t1`表。
- `ʽӲѯ` 示例展示了如何使用`IN`关键字和子查询来获取多个学生ID,然后在`student`表中查询这些ID对应的学生信息。
- `ʽӲѯһн` 用子查询从`teacher_student`表中找出`t_id`为2的学生ID,然后在`student`表中查找这些ID。
4. 聚合函数查询:
- `SELECT COUNT(*) FROM student WHERE math > 90;`:计算数学成绩大于90分的学生数量。
- `SELECT COUNT(*) FROM student WHERE (math + chinese + english) > 250;`:统计总成绩超过250分的学生数量。
- `SELECT AVG(math + chinese + english) FROM student;`:求解所有学生的数学、语文和英语总分平均值。
通过这些笔记,我们可以了解到MySQL的基本操作技巧和更复杂的查询语句,对于数据库管理与数据分析具有实际应用价值。在实际工作中,熟练掌握这些查询语法可以帮助我们高效地管理和分析数据。