MySQL 核心关键字速查

本文档是一份结构清晰、去重精简的 MySQL 核心语法速查指南,通过代码与示例相结合的方式,系统梳理了涵盖数据查询与操作(DML/DQL)、表结构定义(DDL)、多表连接与复杂条件过滤的核心关键字,并分类汇总了日常开发中高频使用的聚合、字符串、日期时间及数学等内置函数与基础数据类型。

一、 核心关键字

1. 数据查询与操作

  • SELECT:用于从数据库中选择并检索数据。
    SELECT * FROM customers;
    
  • FROM:指定查询的数据源(表)。
    SELECT * FROM customers;
    
  • WHERE:用于过滤查询结果,设定条件。
    SELECT * FROM customers WHERE name = 'John Doe';
    
  • INSERT:向表中插入新数据。
    INSERT INTO customers (name, email) VALUES ('John Doe', 'johndoe@example.com');
    
  • UPDATE:更新表中的现有数据。
    UPDATE customers SET name = 'Jane Doe' WHERE id = 1;
    
  • DELETE:从表中删除记录。
    DELETE FROM customers WHERE id = 1;
    

2. 数据库与表结构定义

  • CREATE:创建新的数据库对象(如表、视图、索引)。
    CREATE TABLE customers (id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(50));
    
  • ALTER:修改现有数据库表的结构。
    ALTER TABLE customers ADD phone VARCHAR(20);
    
  • DROP:删除数据库对象。
    DROP TABLE customers;
    

3. 连接与集合操作

  • JOIN:将多个表连接在一起进行查询。
    SELECT * FROM customers INNER JOIN orders ON customers.id = orders.customer_id;
    
  • INNER JOIN:返回两个表中都有匹配的行。
  • LEFT JOIN:返回左表中所有行,以及右表中匹配的行。
  • RIGHT JOIN:返回右表中所有行,以及左表中匹配的行。
  • FULL JOIN:返回左右表中所有的行(注:MySQL不直接支持FULL JOIN,通常通过UNION实现)。
  • UNION:将多个SELECT查询的结果集合并在一起。
    SELECT name FROM customers WHERE country = 'USA' 
    UNION 
    SELECT name FROM customers WHERE country = 'Canada';
    

4. 分组、排序与限制

  • GROUP BY:对查询结果集进行分组。
    SELECT country, COUNT(*) FROM customers GROUP BY country;
    
  • HAVING:在GROUP BY之后,对分组结果进行过滤。
    SELECT country, COUNT(*) FROM customers GROUP BY country HAVING COUNT(*) > 1;
    
  • ORDER BY:对查询结果进行排序。
    SELECT * FROM customers ORDER BY name ASC;
    
  • ASC / DESC:指定升序(默认)或降序排序。
  • LIMIT:限制查询返回的记录数量。
    SELECT * FROM customers LIMIT 10;
    

5. 条件过滤与逻辑运算符

  • DISTINCT:返回唯一不重复的查询结果。
    SELECT DISTINCT country FROM customers;
    
  • AND / OR / NOT:逻辑与、逻辑或、逻辑非运算符。
    SELECT * FROM customers WHERE country = 'USA' AND age > 18;
    
  • IN:指定一个值列表,用于过滤查询结果。
    SELECT * FROM customers WHERE country IN ('USA', 'Canada');
    
  • LIKE:用于模糊匹配查询条件(%代表多个字符,_代表单个字符)。
    SELECT * FROM customers WHERE name LIKE '%Doe%';
    
  • BETWEEN:指定一个范围查询条件(包含边界值)。
    SELECT * FROM customers WHERE age BETWEEN 18 AND 30;
    
  • IS / IS NOT:用于判断值是否为NULL。
    SELECT * FROM customers WHERE phone IS NOT NULL;
    
  • EXISTS:判断子查询是否返回结果。
    SELECT * FROM customers WHERE EXISTS (SELECT * FROM orders WHERE orders.customer_id = customers.id);
    

6. 别名与流程控制

  • AS:为查询结果中的列或表指定别名。
    SELECT name AS full_name FROM customers;
    
  • CASE / WHEN / THEN / ELSE / END:用于在查询中进行条件判断。
    SELECT name, age, 
    CASE 
        WHEN age >= 18 THEN 'Adult' 
        WHEN age >= 13 THEN 'Teenager' 
        ELSE 'Child' 
    END AS age_group 
    FROM customers;
    

二、 常用数据类型关键字

  • INT:整数数据类型。
  • VARCHAR:可变长度字符串数据类型。
  • DECIMAL:定点数数据类型(常用于金额)。
  • DATE:日期数据类型(YYYY-MM-DD)。
  • DATETIME:日期和时间组合数据类型。
  • ENUM:枚举类型,限制字段只能取指定的值。
  • SET:集合类型,允许存储多个预定义的值。
  • BLOB:二进制大对象类型,用于存储图片、文件等。
  • TEXT:长文本数据类型。

三、 常用内置函数

1. 聚合函数(多行函数)

  • COUNT():计算查询结果的行数。
    SELECT COUNT(*) FROM customers;
    
  • AVG():计算数值列的平均值。
    SELECT AVG(age) FROM customers;
    
  • SUM():计算数值列的总和。
    SELECT SUM(amount) FROM orders;
    
  • MAX() / MIN():找出查询结果的最大值或最小值。
    SELECT MAX(age), MIN(age) FROM customers;
    

2. 字符串函数

  • CONCAT():将多个字符串连接在一起。
    SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM customers;
    
  • SUBSTRING():截取字符串的一部分。
    SELECT SUBSTRING(name, 1, 3) FROM customers;
    
  • UPPER() / LOWER():将字符串转换为大写或小写。
  • TRIM():去除字符串两端的空格。
  • LEFT() / RIGHT():返回字符串左边或右边指定长度的部分。
  • LENGTH():返回字符串的长度(字节数)。
  • INSTR():查找子字符串在字符串中第一次出现的位置。

3. 日期与时间函数

  • NOW():获取当前的日期和时间。
  • CURDATE() / CURTIME():获取当前日期 / 当前时间。
  • DATE() / TIME():从日期时间值中提取日期部分 / 时间部分。
    SELECT DATE(order_date) FROM orders;
    
  • YEAR() / MONTH() / DAY():提取日期中的年、月、日。
  • HOUR() / MINUTE() / SECOND():提取时间中的时、分、秒。

4. 数学函数

  • ROUND():将数值四舍五入到指定的小数位数。
    SELECT ROUND(price, 2) FROM products;
    
  • ABS():返回数值的绝对值。
  • RAND():生成一个0到1之间的随机浮点数。

下一篇 Docker空间清理
00 : 00 : 00
2026721星期二
目录