以下是一些常用的 SQL 关键字及其用法和案例:
1. SELECT:用于从数据库表中选择数据。
用法:SELECT 列名 FROM 表名 WHERE 条件;
案例:SELECT name, age FROM users WHERE age > 18;
2. FROM:用于指定要查询的表。
用法:SELECT 列名 FROM 表名;
案例:SELECT name, age FROM users;
3. WHERE:用于设置查询条件。
用法:SELECT 列名 FROM 表名 WHERE 条件;
案例:SELECT name, age FROM users WHERE age > 18;
4. AND:用于连接多个条件。
用法:SELECT 列名 FROM 表名 WHERE 条件1 AND 条件2;
案例:SELECT name, age FROM users WHERE age > 18 AND gender = 'male';
5. OR:用于连接多个条件,其中一个条件满足即可。
用法:SELECT 列名 FROM 表名 WHERE 条件1 OR 条件2;
案例:SELECT name, age FROM users WHERE age > 18 OR gender = 'female';
6. NOT:用于取反一个条件。
用法:SELECT 列名 FROM 表名 WHERE NOT 条件;
案例:SELECT name, age FROM users WHERE NOT age > 18;
7. IN:用于指定某个值在一个集合中。
用法:SELECT 列名 FROM 表名 WHERE 列名 IN (值1, 值2, ...);
案例:SELECT name, age FROM users WHERE age IN (18, 19, 20);
8. BETWEEN:用于指定一个范围。
用法:SELECT 列名 FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2;
案例:SELECT name, age FROM users WHERE age BETWEEN 18 AND 25;
9. LIKE:用于模糊匹配字符串。
用法:SELECT 列名 FROM 表名 WHERE 列名 LIKE '模式';
案例:SELECT name, age FROM users WHERE name LIKE '张%';
10. NULL:表示空值或缺失值。
用法:SELECT 列名 FROM 表名 WHERE 列名 IS NULL;
案例:SELECT name, age FROM users WHERE age IS NULL;
11. DISTINCT:用于去除重复的记录。
用法:SELECT DISTINCT 列名 FROM 表名;
案例:SELECT DISTINCT name, age FROM users;
12. ORDER BY:用于对结果进行排序。
用法:SELECT 列名 FROM 表名 ORDER BY 列名 ASC/DESC;
案例:SELECT name, age FROM users ORDER BY age DESC;
13. ASC:表示升序排列。
用法:SELECT 列名 FROM 表名 ORDER BY 列名 ASC;
案例:SELECT name, age FROM users ORDER BY age ASC;
14. DESC:表示降序排列。
用法:SELECT 列名 FROM 表名 ORDER BY 列名 DESC;
案例:SELECT name, age FROM users ORDER BY age DESC;
15. GROUP BY:用于将结果按照指定的列进行分组。
用法:SELECT 列名, 聚合函数(列名) FROM 表名 GROUP BY 列名;
案例:SELECT age, COUNT(*) FROM users GROUP BY age;
16. HAVING:用于设置分组条件。
用法:SELECT 列名, 聚合函数(列名) FROM 表名 GROUP BY 列名 HAVING 条件;
案例:SELECT age, COUNT(*) FROM users GROUP BY age HAVING COUNT(*) > 1;
17. JOIN:用于将两个或多个表连接在一起。
用法:SELECT * FROM 表1 JOIN 表2 ON 表1.关联列 = 表2.关联列;
案例:SELECT users.name, orders.order_id FROM users JOIN orders ON users.user_id = orders.user_id;
18. UNION:用于合并两个或多个 SELECT 语句的结果集。
用法:SELECT * FROM 表1 UNION SELECT * FROM 表2;
案例:SELECT name, age FROM users UNION SELECT name, age FROM employees;
19. INSERT INTO:用于向表中插入新的记录。
用法:INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);
案例:INSERT INTO users (name, age) VALUES ('张三', 25);
20. UPDATE:用于更新表中的数据。
用法:UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件;
案例:UPDATE users SET age = 26, gender = 'male' WHERE name = '张三';
21. DELETE:用于删除表中的记录。
用法:DELETE FROM 表名 WHERE 条件;
案例:DELETE FROM users WHERE name = '张三';
22. CREATE TABLE:用于创建新表。
用法:CREATE TABLE 表名 (列1 数据类型, 列2 数据类型, ...);
案例:CREATE TABLE users (user_id INT PRIMARY KEY, name VARCHAR(50), age INT);
23. ALTER TABLE:用于修改表结构。
用法:ALTER TABLE 表名 ADD/DROP/MODIFY COLUMN 列名 数据类型;
案例:ALTER TABLE users ADD email VARCHAR(50);
24.LIMIT:LIMIT关键字用于限制查询结果返回的行数。
用法:SELECT 列名 FROM 表名 WHERE 条件 LIMIT 数量;
案例:select device_id from user_profile limit 2;
示例:user_profile
建表:
id | device_id | gender | age | university | province |
1 | 2138 | male | 21 | 北京大学 | Beijing |
2 | 3214 | male | 复旦大学 | Shanghai | |
3 | 6543 | female | 20 | 北京大学 | Beijing |
4 | 2315 | female | 23 | 浙江大学 | ZheJiang |
5 | 5432 | male | 25 | 山东大学 | Shandong |
1题目:现在运营需要查看用户来自于哪些学校,请从用户信息表中取出学校的去重数据。
解题:
2种去重方式
1.distinct 关键字select distinct university from user_profiledistinct去重,放在列的前面使用。
2.分组SELECT university from user_profilegroup by university以分组来筛选出去重的结果
2.题目:现在运营只需要查看前2个用户明细设备ID数据,请你从用户信息表 user_profile 中取出相应结果
解题:where 和 limit
3.题目:现在你需要查看前2个用户明细设备ID数据,并将列名改为 'user_infos_example',,请你从用户信息表取出相应结果。
解题:
4.题目:现在运营想要筛选出所有北京大学的学生进行用户调研,请你从用户信息表中取出满足条件的数据,结果返回设备id和学校。
解题:
where条件查询
like 模糊查询
5.题目:
现在运营想要针对24岁以上的用户开展分析,请你取出满足条件的设备ID、性别、年龄、学校。
用户信息表:user_profile
解题:
6.题目:现在运营想要针对20岁及以上且23岁及以下的用户开展分析,请你取出满足条件的设备ID、性别、年龄。
解题:
7.题目:现在运营想要查看除复旦大学以外的所有用户明细,请你取出相应数据
解题: