Mysql常用关键字详解

发布于:2024-04-28 ⋅ 阅读:(25) ⋅ 点赞:(0)

关键字详解与应用

  1. SELECT

    • 用途: 选择表中的一列或多列数据。
    • 常见问题: 如何选择不同表中的数据并进行合并?
    • 解决方案: 使用 JOIN 关键字来连接表,并通过 ON 条件指定连接条件。
    SELECT a.name, b.salary
    FROM employees a
    JOIN salaries b ON a.employee_id = b.employee_id
    
  2. WHERE

    • 用途: 对查询的结果进行条件过滤。
    • 常见问题: 如何进行多条件过滤?
    • 解决方案: 使用 ANDOR 来组合多个条件。
    SELECT * FROM users WHERE age > 18 AND status = 'active'
    
  3. GROUP BY & HAVING

    • 用途: GROUP BY 用于根据一列或多列对结果集进行分组。HAVING 用于对 GROUP BY 生成的分组结果进行条件过滤。
    • 常见问题: GROUP BYHAVING 的区别?
    • 解决方案: GROUP BY 分组后,HAVING 可以对分组后的聚合结果应用条件。
    SELECT department, AVG(salary) 
    FROM employees 
    GROUP BY department 
    HAVING AVG(salary) > 50000
    
  4. JOIN

    • 用途: 用于连接两个或多个表,可以是内连接、外连接(左、右、全)或交叉连接。
    • 常见问题: 如何选择使用哪种类型的连接?
    • 解决方案: 选择连接类型取决于你需要从参与连接的表中选择哪些行。
      • INNER JOIN: 仅返回两个表中匹配的行。
      • LEFT JOIN: 返回左表的所有行,即使右表中没有匹配。
      • RIGHT JOIN: 返回右表的所有行,即使左表中没有匹配。
      • FULL JOIN: 返回两个表中的行,无论是否匹配。
  5. TRANSACTION 控制

    • 用途: COMMIT 用于提交事务,保证所有操作都被永久保存。ROLLBACK 用于撤销事务中的所有操作。
    • 常见问题: 什么时候应该使用事务?
    • 解决方案: 当你需要确保多个操作要么全部成功要么全部失败时,应该使用事务。例如,当更新用户的银行账户时,从一个账户扣款并向另一个账户加款应该作为一个单一事务处理。

增加知识点的实用示例

  • 使用 UNION 和 UNION ALL

    • UNION 用于合并两个 SELECT 语句的结果集,并消除重复行。
    • UNION ALL 返回所有结果,包括重复的。
    SELECT name FROM employees
    UNION ALL
    SELECT name FROM clients
    
  • 使用 DISTINCT

    • 用途: 返回唯一不同的值。
    SELECT DISTINCT status FROM orders
    
  • 使用 ALIAS (AS)

    • 用途: 给表或字段指定一个别名,使查询更清晰易懂。
    SELECT last_name AS surname FROM employees
    

拓展

  • Mysql 字段名与关键字重名如何写查询语句

  • 解决方案:(用反引号 `包裹)当字段名与关键字重名时,可以使用反引号(`)将字段名括起来,以避免冲突。

    • 例如,假设有一个表格名为users,其中有一个字段名为select。如果要使用含有关键字的字段名进行查询,可以使用以下语法:
SELECT `select`
FROM `users`
- 通过使用反引号将关键字括起来,MySQL 将识别字段名而不是关键字。