-- 查询所有字段SELECT*FROM index_name;-- 查询特定字段SELECT name, age, email FROM users;-- 使用别名SELECT name AS user_name, age AS user_age FROM users;
WHERE 条件
-- 等于SELECT*FROM users WHERE age =25;-- 不等于SELECT*FROM users WHERE age !=25;-- 大于/小于SELECT*FROM users WHERE age >25AND age <50;-- 范围查询SELECT*FROM users WHERE age BETWEEN25AND50;-- IN 查询SELECT*FROM users WHEREstatusIN('active','pending');
📝 字符串查询
大小写处理
-- 不区分大小写SELECT*FROM users WHERE LOWER(name)='john';-- 转换为大写SELECT*FROM users WHERE UPPER(status)='ACTIVE';-- 大小写混合SELECT*FROM users WHERE name IN('John','john','JOHN');
模式匹配
-- LIKE 查询SELECT*FROM users WHERE name LIKE'%john%';SELECT*FROM users WHERE email LIKE'john%@gmail.com';-- 正则表达式SELECT*FROM users WHERE name REGEXP'^[A-Z][a-z]+$';-- 通配符SELECT*FROM users WHERE name LIKE'J_n%';
字符串函数
-- 字符串长度SELECT name, LENGTH(name)AS name_length FROM users;-- 子字符串SELECT name, SUBSTRING(name,1,3)AS name_prefix FROM users;-- 字符串连接SELECT CONCAT(first_name,' ', last_name)AS full_name FROM users;-- 字符串替换SELECT name,REPLACE(email,'@gmail.com','@company.com')AS new_email FROM users;
数值查询
数学运算
-- 基本运算SELECT price, price *1.1AS price_with_tax FROM products;-- 数学函数SELECT price,ROUND(price,2)AS rounded_price FROM products;SELECT price, CEIL(price)AS ceiling_price FROM products;SELECT price, FLOOR(price)AS floor_price FROM products;-- 绝对值SELECT price, ABS(price)AS absolute_price FROM products;
统计函数
-- 平均值SELECTAVG(price)AS avg_price FROM products;-- 总和SELECTSUM(price)AS total_price FROM products;-- 最大值/最小值SELECTMAX(price)AS max_price,MIN(price)AS min_price FROM products;-- 计数SELECTCOUNT(*)AS total_products FROM products;
📅 日期时间查询
日期比较
-- 基本日期查询SELECT*FROM orders WHERE order_date >'2024-01-01';-- 日期范围SELECT*FROM orders WHERE order_date BETWEEN'2024-01-01'AND'2024-12-31';-- 相对日期SELECT*FROM orders WHERE order_date > DATE_SUB(NOW(),INTERVAL30DAY);
日期函数
-- 当前日期时间SELECTNOW()AScurrent_time;-- 日期提取SELECT order_date,YEAR(order_date)ASyear,MONTH(order_date)ASmonth,DAY(order_date)ASdayFROM orders;-- 日期格式化SELECT order_date, DATE_FORMAT(order_date,'%Y-%m-%d')AS formatted_date FROM orders;-- 日期计算SELECT order_date, DATE_ADD(order_date,INTERVAL7DAY)AS delivery_date FROM orders;
数组和嵌套查询
数组查询
-- 数组包含SELECT*FROM products WHERE'red'IN tags;-- 数组长度SELECT name, CARDINALITY(tags)AS tag_count FROM products;-- 数组元素SELECT name, tags[0]AS first_tag FROM products;-- 数组展开SELECT name, tag FROM products, UNNEST(tags)AS tag;
嵌套对象查询
-- 嵌套字段访问SELECT name, address.city, address.street FROM users;-- 嵌套条件SELECT*FROM users WHERE address.city ='New York';-- 嵌套数组SELECT name, phone FROM users, UNNEST(phones)AS phone;
聚合查询
基本聚合
-- 分组聚合SELECT category,COUNT(*)AS count,AVG(price)AS avg_price
FROM products
GROUPBY category;-- 多字段分组SELECT category, brand,COUNT(*)AS count
FROM products
GROUPBY category, brand;
高级聚合
-- HAVING 条件SELECT category,AVG(price)AS avg_price
FROM products
GROUPBY category
HAVINGAVG(price)>100;-- 排序聚合结果SELECT category,COUNT(*)AS count
FROM products
GROUPBY category
ORDERBY count DESC;
-- IN 子查询SELECT*FROM orders
WHERE user_id IN(SELECT id FROM users WHEREstatus='active');-- 相关子查询SELECT name, price,(SELECTAVG(price)FROM products p2 WHERE p2.category = p1.category)AS category_avg
FROM products p1;