本专栏『百日百题』长期更新,一起加入本刷题计划,一起成长吧!
文章目录
前言
为什么要学习SQL?
SQL是目前使用最广泛的数据库语言。 不管你是程序员、数据分析师、Web开发者、互联网运营,或者做报表的职场白领,掌握良好的SQL知识对用好数据库是极大的帮助,而且在面试中也会对SQL进行一定程度的考察,所以说我们学习SQL是非常必要,也是非常重要的1
为什么要刷题?
编程要在实践中学习,就像游泳要通过游泳来练习。很多学生喜欢把编程当成古诗词去背诵,背诵各种语法,这样是不对的。
学编程应该像学开车一样。教练给学员讲解基本步骤后,主要靠学员在练车过程中去巩固回忆,更多时候靠的是肌肉记忆。
想要掌握一门语言就得,对其多加练习,这样才能在用到的时候运筹帷幄!
用什么刷题?
这里我极力推荐牛客网,我们平时写算法题都是在Leetcode之类上面的,当然Leetcode上面也有SQL相关题目,但是必须得会员才可以刷,这对很多人都不太友好。而牛客网就不一样了。
牛客网上面的SQL题目几乎都是免费的,大家只要想刷就可以刷,而且牛客网不只是一个题目它是教学平台,都配有视频讲解,需要的同学可以去看。最重要的就是牛客网对所有的SQL题目进行了分类,适合不同阶段的同学,所以我极力推荐大家使用牛客网!
本专栏文章即将带你从基础SQL语法到复杂SQL语句,循序渐进持续练习,加入刷题计划一起加油吧!
为了方便刷题我直接把牛客网的链接放在下面,大家点击蓝色字体就可以直接进行跳转刷题了!
传送门:刷题传送门
本系列文章即将带你从SQL基础语法到SQL复杂语句,循序渐进持续练习,加入刷题计划一起加油吧!
SQL1 查询所有列
题目:
题解:
SELECT*FROM user_profile;
这个写法只适合自己看一眼,实际开发中效率低
在开发中我们一般用列名写出来如下写法:
SELECT id,device_id,gender,age,university,province FROM user_profile;
SQL2 查询多列
题目:
题解:
SELECT device_id,gender,age,university FROM user_profile;
SELECT语句格式
一个完整的SELECT语句包括6个子句,其中前面的2个子句是必不可少的,其他子句可以省略。
SELECT 语句的完整格式如下:
SELECT [DISTINCT] 目标列名序列-----要查看的列
FROM 表名或视图名------------------数据来源
[WHERE 条件表达式]----------------查询条件
[GROUP BY + 列名] --------------------分组依据
[HAVING + 组条件表达式] ---------分组条件
[ORDER BY + 列名 + [ASC|DESC]序列]----排序依据
SQL3 查询结果去重
题目:
题解:
SELECTDISTINCT university FROM user_profile;
DISTINCT关键字
结果中有重复的行,用DISTINCT关键字可以去掉结果中的重复行。
使用时DISTINCT关键字放在SELECT词的后边、目标列名序列的前边。
SQL4 查询结果限制返回行数
题目:
题解:
SELECT device_id FROM user_profile ORDERBY id LIMIT2
LIMIT关键字
使用LIMIT限制结果集,LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。
LIMIT 接受一个或两个数字参数,但是参数必须是一个整数常量:
- 如果只给定一个参数,它表示返回最大的记录行数目。
- 如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。 - 为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1。- 初始记录行的偏移量是 0(而不是 1)。
SQL5 将查询后的列重新命名
题目:
题解:
SELECT device_id AS user_infos_example FROM user_profile LIMIT2;
改变列标题(取别名),语法:
列名 | 表达式 [ AS ] 新列名
或者
新列名=列名 | 表达式
结语
为了方便刷题我直接把刷题网站的链接放在下面,大家点击蓝色字体就可以直接进行跳转刷题了!
传送门:刷题神器
刷题这件事,大家一定要认真起来,不可懈怠!
日积月累,方成大器!
版权归原作者 abcccccccccccccccode 所有, 如有侵权,请联系我们删除。