MySQL常见关键字函数
一、关键字
1、SELECT:用于从数据库中选择数据。
SELECT * FROM customers;
2、INSERT:用于向数据库中插入新数据。
INSERT INTO customers (name, email) VALUES ('John Doe', 'johndoe@example.com');
3、UPDATE:用于更新数据库中的数据。
UPDATE customers SET name = 'Jane Doe' WHERE id = 1;
4、DELETE:用于从数据库中删除数据。
DELETE FROM customers WHERE id = 1;
5、CREATE:用于创建新的数据库表、视图、索引等。
CREATE TABLE customers (id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(50));
6、ALTER:用于修改数据库表结构。
ALTER TABLE customers ADD phone VARCHAR(20);
7、DROP:用于删除数据库表、视图、索引等。
DROP TABLE customers;
8、WHERE:用于过滤查询结果。
SELECT * FROM customers WHERE name = 'John Doe';
9、FROM:用于指定查询的数据源。
SELECT * FROM customers;
10、JOIN:用于将多个表连接在一起。
SELECT * FROM customers INNER JOIN orders ON customers.id = orders.customer_id;
11、ORDER BY:用于对查询结果进行排序。
SELECT * FROM customers ORDER BY name ASC;
12、GROUP BY:用于对查询结果进行分组。
SELECT country, COUNT(*) FROM customers GROUP BY country;
13、HAVING:用于在GROUP BY之后过滤查询结果。
SELECT country, COUNT(*) FROM customers GROUP BY country HAVING COUNT(*) > 1;
14、DISTINCT:用于返回唯一的查询结果。
SELECT DISTINCT country FROM customers;
15、UNION:用于将多个查询结果合并在一起。
SELECT name FROM customers WHERE country = 'USA' UNION SELECT name FROM customers WHERE country = 'Canada';
16、IN:用于指定一个值列表,过滤查询结果。
SELECT * FROM customers WHERE country IN ('USA', 'Canada');
17、NOT:用于否定查询条件。
SELECT * FROM customers WHERE NOT country = 'USA';
18、LIKE:用于模糊匹配查询条件。
SELECT * FROM customers WHERE name LIKE '%Doe%';
19、BETWEEN:用于指定范围查询条件。
SELECT * FROM customers WHERE age BETWEEN 18 AND 30;
20、AS:用于为查询结果指定别名。
SELECT name AS full_name FROM customers;
21、AND:用于指定多个查询条件的逻辑与。
SELECT * FROM customers WHERE country = 'USA' AND age > 18;
22、OR:用于指定多个查询条件的逻辑或。
SELECT * FROM customers WHERE country = 'USA' OR age > 18;
23、NULL:用于指定空值。
SELECT * FROM customers WHERE phone IS NULL;
24、IS:用于判断查询结果是否为空。
SELECT * FROM customers WHERE phone IS NOT NULL;
25、EXISTS:用于判断子查询是否返回结果。
SELECT * FROM customers WHERE EXISTS (SELECT * FROM orders WHERE orders.customer_id = customers.id);
26、CASE:用于在查询中进行条件判断。
SELECT name, age, CASE WHEN age >= 18 THEN 'Adult' ELSE 'Child' END AS age_group FROM customers;
27、WHEN:用于指定条件判断中的条件。
SELECT name, age, CASE WHEN age >= 18 THEN 'Adult' WHEN age >= 13 THEN 'Teenager' ELSE 'Child' END AS age_group FROM customers;
28、THEN:用于指定条件判断中的结果。
SELECT name, age, CASE WHEN age >= 18 THEN 'Adult' ELSE 'Child' END AS age_group FROM customers;
29、ELSE:用于指定条件判断中的默认结果。
SELECT name, age, CASE WHEN age >= 18 THEN 'Adult' WHEN age >= 13 THEN 'Teenager' ELSE 'Child' END AS age_group FROM customers;
30、INNER JOIN:用于返回两个表中都有匹配的行。
SELECT * FROM customers INNER JOIN orders ON customers.id = orders.customer_id;
31、LEFT JOIN:用于返回左表中所有行,右表中有匹配的行。
SELECT * FROM customers LEFT JOIN orders ON customers.id = orders.customer_id;
32、RIGHT JOIN:用于返回右表中所有行,左表中有匹配的行。
SELECT * FROM customers RIGHT JOIN orders ON customers.id = orders.customer_id;
33、FULL JOIN:用于返回左右表中所有行。
SELECT * FROM customers FULL JOIN orders ON customers.id = orders.customer_id;
34、ASC:用于指定升序排序。
SELECT * FROM customers ORDER BY age ASC;
35、DESC:用于指定降序排序。
SELECT * FROM customers ORDER BY age DESC;
36、LIMIT:用于限制查询结果的数量。
SELECT * FROM customers LIMIT 10;
二、函数
1、COUNT:用于计算查询结果的行数。
SELECT COUNT(*) FROM customers;
2、AVG:用于计算查询结果的平均值。
SELECT AVG(age) FROM customers;
3、SUM:用于计算查询结果的总和。
SELECT SUM(amount) FROM orders;
4、MAX:用于找出查询结果的最大值。
SELECT MAX(age) FROM customers;
5、MIN:用于找出查询结果的最小值。
SELECT MIN(age) FROM customers;
6、CONCAT:用于将多个字符串连接在一起。
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM customers;
7、SUBSTRING:用于截取字符串的一部分。
SELECT SUBSTRING(name, 1, 3) FROM customers;
8、UPPER:用于将字符串转换为大写。
SELECT UPPER(name) FROM customers;
9、LOWER:用于将字符串转换为小写。
SELECT LOWER(name) FROM customers;
10、TRIM:用于去除字符串两端的空格。
SELECT TRIM(name) FROM customers;
11、LEFT:用于返回字符串的左边指定长度的部分。
SELECT LEFT(name, 3) FROM customers;
12、RIGHT:用于返回字符串的右边指定长度的部分。
SELECT RIGHT(name, 3) FROM customers;
13、DATE:用于提取日期部分。
SELECT DATE(order_date) FROM orders;
14、TIME:用于提取时间部分。
SELECT TIME(order_date) FROM orders;
15、NOW:用于获取当前日期和时间。
SELECT NOW() FROM customers;
16、YEAR:用于提取年份部分。
SELECT YEAR(order_date) FROM orders;
17、MONTH:用于提取月份部分。
SELECT MONTH(order_date) FROM orders;
18、DAY:用于提取日期部分。
SELECT DAY(order_date) FROM orders;
19、HOUR:用于提取小时部分。
SELECT HOUR(order_time) FROM orders;
20、MINUTE:用于提取分钟部分。
SELECT MINUTE(order_time) FROM orders;
21、SECOND:用于提取秒钟部分。
SELECT SECOND(order_time) FROM orders;
22、ROUND:用于将数值四舍五入到指定的小数位数。
SELECT ROUND(price, 2) FROM products;
23、ABS:用于返回数值的绝对值。
SELECT ABS(quantity) FROM orders;
24、RAND:用于生成随机数。
SELECT RAND() FROM customers;
25、INSTR:用于查找子字符串在字符串中第一次出现的位置。
SELECT INSTR(name, 'Doe') FROM customers;
26、LENGTH:用于返回字符串的长度。
SELECT LENGTH(name) FROM customers;