• SQL每日一练(牛客新题库)——第1天: 基础查询


    1. 查询所有列

    题目:现在运营想要查看用户信息表中所有的数据,请你取出相应结果

    在这里插入图片描述

    建表语句

    drop table if exists user_profile;
    CREATE TABLE `user_profile` (
    `id` int NOT NULL,
    `device_id` int NOT NULL,
    `gender` varchar(14) NOT NULL,
    `age` int ,
    `university` varchar(32) NOT NULL,
    `province` varchar(32)  NOT NULL);
    INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
    INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
    INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
    INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
    INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    解题答案

    -- 写法一
    SELECT * from user_profile;
    -- 写法2
    SELECT id,device_id,gender,age,university,province from user_profile; 
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2. 查询多列

    题目:现在运营同学想要用户的设备id对应的性别、年龄和学校的数据,请你取出相应数据
    在这里插入图片描述

    建表语句

    drop table if exists user_profile;
    CREATE TABLE `user_profile` (
    `id` int NOT NULL,
    `device_id` int NOT NULL,
    `gender` varchar(14) NOT NULL,
    `age` int ,
    `university` varchar(32) NOT NULL,
    `province` varchar(32)  NOT NULL);
    INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
    INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
    INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
    INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
    INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    解题答案

    SELECT  device_id,gender,age,university from user_profile
    
    • 1

    在这里插入图片描述

    3. 查询结果去重

    题目:现在运营需要查看用户来自于哪些学校,请从用户信息表中取出学校的去重数据。

    在这里插入图片描述

    建表语句

    drop table if exists user_profile;
    CREATE TABLE `user_profile` (
    `id` int NOT NULL,
    `device_id` int NOT NULL,
    `gender` varchar(14) NOT NULL,
    `age` int ,
    `university` varchar(32) NOT NULL,
    `province` varchar(32)  NOT NULL);
    INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
    INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
    INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
    INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
    INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    解题答案

    -- 1. 使用DISTINCT:
    SELECT DISTINCT university from user_profile;
    -- 2. 使用group by:
    SELECT university from user_profile GROUP BY university; 
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    4. 查询结果限制返回行数

    题目:现在运营只需要查看前2个用户明细设备ID数据,请你从用户信息表 user_profile 中取出相应结果。
    在这里插入图片描述

    建表语句

    drop table if exists user_profile;
    CREATE TABLE `user_profile` (
    `id` int NOT NULL,
    `device_id` int NOT NULL,
    `gender` varchar(14) NOT NULL,
    `age` int ,
    `university` varchar(32) NOT NULL,
    `province` varchar(32)  NOT NULL);
    INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
    INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
    INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
    INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
    INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    解题答案

    select device_id FROM user_profile WHERE id in(1,2)  
    select device_id FROM user_profile WHERE id <= 2 
    select device_id FROM user_profile  limit 2 
    select device_id FROM user_profile limit 0,2 
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    5. 将查询后的列重新命名

    题目:现在你需要查看前2个用户明细设备ID数据,并将列名改为 ‘user_infos_example’,,请你从用户信息表取出相应结果。
    在这里插入图片描述

    建表语句

    drop table if exists user_profile;
    CREATE TABLE `user_profile` (
    `id` int NOT NULL,
    `device_id` int NOT NULL,
    `gender` varchar(14) NOT NULL,
    `age` int ,
    `university` varchar(32) NOT NULL,
    `province` varchar(32)  NOT NULL);
    INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
    INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
    INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
    INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
    INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    解题答案

    select device_id as user_infos_example from user_profile limit 0, 2;
    
    • 1

    在这里插入图片描述

    6. 如何让刷题变得更高效?

    最近很多学了基础的小伙伴问我该怎么提升编程水平?学了基础该上哪刷题?明明学了很多,做项目却不知道怎么上手,其实这就是练得太少,只注重了学,却忽视了刷题,只有不断练习才能提高和巩固编程思维和能力!
    在这里插入图片描述
    链接地址牛客网 | SQL刷题篇,废话少说速度上号!!!

  • 相关阅读:
    【软件与系统安全笔记】三、基础技术
    研二学妹面试字节,竟倒在了ThreadLocal上,这是不要应届生还是不要女生啊?
    从锁的类别角度讲,MySQL都有哪些锁
    Golang 中 map[string]string 如何在 TOML 文件中配置
    打开GeoTIFF文件失败:Unknown field with tag
    Python&C++相互混合调用编程全面实战-24QT按钮事件的Open槽函数中调用python函数
    乱打日志的男孩运气怎么样我不知道,加班肯定很多
    ESP8266-Arduino编程实例-QRE1113红外反射传感器
    HTML 中使用 JavaScript 的具体方式
    牛客网语法篇练习循环控制(一)
  • 原文地址:https://blog.csdn.net/yuan2019035055/article/details/125710905