SQL1 查询所有列
题目:现在运营想要查看用户信息表中所有的数据,请你取出相应结果
select * from user_profile;
select id,device_id,gender,age,university,province from user_profile;
使用
SELECT +(所有列名) from 表名 然后结尾 ;
这样读取效率最高SELECT* from 表名 ;
只适合自己看一眼,实际开发中效率低(因为需要将*
转化为每一个列名)
SQL2 查询多列
题目:现在运营同学想要用户的设备id对应的性别、年龄和学校的数据,请你取出相应数据
select device_id,gender,age,university from user_profile;
SQL3 查询结果去重
题目:现在运营需要查看用户来自于哪些学校,请从用户信息表中取出学校的去重数据。
select distinct university from user_profile;
or
SELECT university FROM user_profile GROUP BY university
DISTINCT
是 SQL
中的一个关键字,用于返回查询结果中唯一不同的值。当你在 SELECT
语句中使用 DISTINCT
时,它会确保结果集中的每一行都是唯一的,即没有重复的行。
GROUP BY 用于聚合操作,而 DISTINCT 用于去重,它们的使用场景和目的不同。
这个查询会根据
university
列的值对结果进行分组。在大多数数据库系统中,当一个列被用于GROUP BY
而没有指定聚合函数时,该列的所有值都会被包括在结果集中,但是每个不同的 university 值只会出现一次,因此这在效果上实现了去重。
- 然而,这不是标准的
SQL
行为,因为按照SQL
的标准,GROUP BY
子句要求SELECT
列表中的非聚合列必须在GROUP BY
子句中明确指定。如果不使用聚合函数,某些数据库(如MySQL
)在默认或非严格模式下可能会返回分组列的所有值,但这不是一个保证的行为,也不应该依赖于这种行为。- 为了确保代码的可移植性和清晰性,如果你的目标是去重,应该使用
DISTINCT
关键字
SQL4 查询结果限制返回行数
题目:现在运营只需要查看前2个用户明细设备ID数据,请你从用户信息表 user_profile 中取出相应结果。
select device_id from user_profile limit 0,2
LIMIT
子句可以被用于强制 SELECT
语句返回指定的记录数。LIMIT
接受一个或两个数字参数。参数必须是一个整数常量。
如果只给定一个参数,它表示返回最大的记录行数目。(默认从0开始,0可不写)
如果给定两个参数,第一个参数指定开始输出的位置(下标索引从0开始),第二个参数指定返回行的数目。
SQL5 将查询后的列重新命名
题目:现在你需要查看前2个用户明细设备ID数据,并将列名改为 ‘user_infos_example’,,请你从用户信息表取出相应结果。
select device_id as user_infos_example from user_profile limit 0,2;
这里主要是用到了 起别名关键字 as 以及组合限制查询 limit 索引,个数;