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 索引,个数;