纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

SQL经典练习题(openGauss数据库)上

3月27日 无镇楼投稿
  目录
  引言:
  一、初始化4张基础表
  1、数据表介绍
  2、初始化(创建表并插入测试数据)
  二、SQL习题
  1、查询01课程比02课程成绩高的学生的信息及课程分数
  2、查询同时存在01课程和02课程的情况
  3、查询存在01课程但可能不存在02课程的情况(不存在时显示为null)
  4、查询不存在01课程但存在02课程的情况
  5、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩
  6、查询在SC表存在成绩的学生信息
  7、查询所有同学的学生编号、学生姓名、选课总数、所有课程的成绩总和
  8、查有成绩的学生信息(同问题6)
  9、查询李姓老师的数量
  10、查询学过张老师授课的同学的信息
  11、查询没有学全所有课程的同学的信息
  12、查询至少有一门课与学号为01的同学所学相同的同学的信息
  13、查询和01号的同学学习的课程完全相同的其他同学的信息
  14、查询没学过张老师讲授的任一门课程的学生姓名
  15、查询两门及其以上不及格(小于60分)课程的同学的学号,姓名及其平均成绩
  16、检索01课程分数小于60,按分数降序排列的学生信息13
  17、按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
  18、查询各科成绩最高分、最低分和平均分
  19、按各科成绩进行排序,并显示排名,Score重复时保留名次空缺
  20、查询学生的总成绩,并进行排名,总分重复时不保留名次空缺
  三、实验小结(FAQ):
  1、关键字Tid
  2、数据(日期)类型datetime
  3、round()函数使用
  4、groupby子句
  5、HAVING子句
  6、EXISTS、NOTEXISTS
  7、IN、NOTIN
  8、比较操作符
  9、分支语句
  10、窗口函数rank(expression)和rownumber(expression)
  引言:
  SQL对于现在的互联网公司生产研发等岗位几乎是一个必备技能,你可以把SQL当做是一个工具,利用它可以帮助你完成相应的工作,创造价值。当然啦,学习sql也是有规可循的
  openGauss数据库是国产数据库的佼佼者之一,其支持的SQL标准默认包含SQL2、SQL3和SQL4的主要特性。如何在openGauss数据库中使用SQL语句?接下来,我们将准备一些SQL经典练习题进行实践与测试。
  本次练习题将分为上下两部分。
  openGauss基础涉及到的常用数据类型和基础SQL语法,可参见前面的文章《openGauss数据库之SQL介绍》或者官方文档《开发者指南》。初始化4张基础表1、数据表介绍
  学生表:Student(SId,Sname,Sage,Ssex)
  SId学生编号,Sname学生姓名,Sage出生年月,Ssex学生性别
  课程表:Course(CId,Cname,TeId)
  CId课程编号,Cname课程名称,TId教师编号
  教师表Teacher(TeId,Tname)
  TId教师编号,Tname教师姓名
  成绩表:SC(SId,CId,score)
  SId学生编号,CId课程编号,score分数2、初始化(创建表并插入测试数据)
  学生表Student
  createtableStudent(SIdvarchar(10),Snamevarchar(10),Sbirthdaydate,Ssexvarchar(10));
  insertintoStudentvalues(01,赵雷,date19900101,男);
  insertintoStudentvalues(02,钱电,date19901221,男);
  insertintoStudentvalues(03,孙风,date19901220,男);
  insertintoStudentvalues(04,李云,date19901206,男);
  insertintoStudentvalues(05,周梅,date19911201,女);
  insertintoStudentvalues(06,吴兰,date19920101,女);
  insertintoStudentvalues(07,郑竹,date19890101,女);
  insertintoStudentvalues(09,张三,date20171220,女);
  insertintoStudentvalues(10,李四,date20171225,女);
  insertintoStudentvalues(11,李四,date20120606,女);
  insertintoStudentvalues(12,赵六,date20130613,女);
  insertintoStudentvalues(13,孙七,date20140601,女);
  课程表Course
  createtableCourse(CIdvarchar(10),Cnamevarchar(10),TeIdvarchar(10));
  insertintoCoursevalues(01,语文,02);
  insertintoCoursevalues(02,数学,01);
  insertintoCoursevalues(03,英语,03);
  教师表Teacher
  createtableTeacher(Teidvarchar(10),Tnamevarchar(10));
  insertintoTeachervalues(01,张老师);
  insertintoTeachervalues(02,李老师);
  insertintoTeachervalues(03,王老师);
  成绩表SC
  createtableSC(SIdvarchar(10),CIdvarchar(10),scoredecimal(18,1));
  insertintoSCvalues(01,01,80);
  insertintoSCvalues(01,02,90);
  insertintoSCvalues(01,03,99);
  insertintoSCvalues(02,01,70);
  insertintoSCvalues(02,02,60);
  insertintoSCvalues(02,03,80);
  insertintoSCvalues(03,01,80);
  insertintoSCvalues(03,02,80);
  insertintoSCvalues(03,03,80);
  insertintoSCvalues(04,01,50);
  insertintoSCvalues(04,02,30);
  insertintoSCvalues(04,03,20);
  insertintoSCvalues(05,01,76);
  insertintoSCvalues(05,02,87);
  insertintoSCvalues(06,01,31);
  insertintoSCvalues(06,03,34);
  insertintoSCvalues(07,02,89);
  insertintoSCvalues(07,03,98);
  全表显示:
  学生表Student
  课程表Course
  教师表Teacher
  成绩表SC
  SQL习题1、查询01课程比02课程成绩高的学生的信息及课程分数
  以学生id为主键,查找课程01比02分数高的结果信息作为主表,然后与学生表关联。
  2、查询同时存在01课程和02课程的情况
  以学生id为主键
  3、查询存在01课程但可能不存在02课程的情况(不存在时显示为null)
  以01课程为主表
  4、查询不存在01课程但存在02课程的情况
  5、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩
  根据学生ID把成绩分组,对分组中的score求平均值,最后在选取结果中AVG大于60的即可。然后关联学生信息表
  6、查询在SC表存在成绩的学生信息
  7、查询所有同学的学生编号、学生姓名、选课总数、所有课程的成绩总和
  8、查有成绩的学生信息(同问题6)
  EXISTS的参数是一个任意的SELECT语句,或者说子查询。系统对子查询进行运算以判断它是否返回行。如果它至少返回一行,则EXISTS结果就为真;如果子查询没有返回任何行,EXISTS的结果是假。这个子查询通常只是运行到能判断它是否可以生成至少一行为止,而不是等到全部结束。
  9、查询李姓老师的数量
  10、查询学过张老师授课的同学的信息
  11、查询没有学全所有课程的同学的信息
  12、查询至少有一门课与学号为01的同学所学相同的同学的信息
  13、查询和01号的同学学习的课程完全相同的其他同学的信息
  查询所选课程数量和01学生一样的学生,去掉所选课程中选了01学生未选课程的人
  14、查询没学过张老师讲授的任一门课程的学生姓名
  另一种解法也可以将教师表、课程表、成绩表先关联,然后再学生表中找到对应的学生信息
  15、查询两门及其以上不及格(小于60分)课程的同学的学号,姓名及其平均成绩
  16、检索01课程分数小于60,按分数降序排列的学生信息
  17、按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
  18、查询各科成绩最高分、最低分和平均分
  以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率
  及格为60,中等为:7080,优良为:8090,优秀为:90
  要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列
  openGauss数据库支持中文名称(字段名、表名),但不建议,当然了根据具体场景决定。
  19、按各科成绩进行排序,并显示排名,Score重复时保留名次空缺
  20、查询学生的总成绩,并进行排名,总分重复时不保留名次空缺
  实验小结(FAQ):
  关于openGauss数据库在使用SQL过程中需要注意的事项,总结如下(以下有SQL通用的,也存在数据库特性的,具体以实践经验为准):1、关键字Tid
  关键字Tid在openGauss数据库中被认定为关键字,不能作为字段被定义;2、数据(日期)类型datetime
  openGauss数据库中不存在类型3、round()函数使用
  round(x),描述:离输入参数最近的整数。返回值类型:与输入相同。
  round(vnumeric,sint),描述:保留小数点后s位,s后一位进行四舍五入。返回值类型:numeric。4、groupby子句
  GROUPBY语句和SELECT语句一起使用,用来对相同的数据进行分组。您可以对一列或者多列进行分组,但是被分组的列必须存在。5、HAVING子句
  HAVING子句可以让我们筛选分组后的各组数据。WHERE子句在所选列上设置条件,而HAVING子句则在由GROUPBY子句创建的分组上设置条件。6、EXISTS、NOTEXISTS
  EXISTS的参数是一个任意的SELECT语句,或者说子查询。系统对子查询进行运算以判断它是否返回行。如果它至少返回一行,则EXISTS结果就为真;如果子查询没有返回任何行,EXISTS的结果是假。
  这个子查询通常只是运行到能判断它是否可以生成至少一行为止,而不是等到全部结束。7、IN、NOTIN
  右边是一个圆括弧括起来的子查询,它必须只返回一个字段。左边表达式对子查询结果的每一行进行一次计算和比较。如果找到任何相等的子查询行,则IN结果为真。如果没有找到任何相等行,则结果为假(包括子查询没有返回任何行的情况)。
  表达式或子查询行里的NULL遵照SQL处理布尔值和NULL组合时的规则。如果两个行对应的字段都相等且非空,则这两行相等;如果任意对应字段不等且非空,则这两行不等;否则结果是未知(NULL)。如果每一行的结果都是不等或NULL,并且至少有一个NULL,则IN的结果是NULL。8、比较操作符
  操作符
  描述
  小于
  大于
  小于或等于
  大于或等于
  等于
  或!或
  不等于9、分支语句
  图1
  图2
  参数说明:
  caseexpression:变量或表达式。
  whenexpression:常量或者条件表达式。
  statement:执行语句。10、窗口函数rank(expression)和rownumber(expression)
  列存表目前只支持rank(expression)和rownumber(expression)两个函数。
  窗口函数与OVER语句一起使用。OVER语句用于对数据进行分组,并对组内元素进行排序。窗口函数用于给组内的值生成序号。
  说明:
  窗口函数中的orderby后面必须跟字段名,若orderby后面跟数字,该数字会被按照常量处理,因此对目标列没有起到排序的作用。
  RANK(),描述:RANK函数为各组内值生成跳跃排序序号,其中,相同的值具有相同序号。返回值类型:BIGINT
  ROWNUMBER(),描述:ROWNUMBER函数为各组内值生成连续排序序号,其中,相同的值其序号也不相同。返回值类型:BIGINT
  本期《SQL经典练习题(openGauss数据库)上》就到这里,下期再见!
  作者:酷哥,来源Gauss松鼠会
投诉 评论 转载

43岁奥运冠军陈艳青与64岁教练丈夫他住她买的别墅,孩子跟她阅读此文前,麻烦您点击一下关注,既方便您进行讨论与分享,又给您带来不一样的参与感,感谢您的支持。2010年,31岁的奥运冠军陈艳青选择嫁给了大自己21岁的恩师曹新民,并在……今起全面放开入境,跨境机票预订涨6倍,多国对中国旅客入境限制2023年1月8日0:17,自多伦多始发的南航CZ312航班落地广州白云机场,成为中国三年来首次全面放开入境限制后的首个入境航班,全体航班旅客无需再进行核酸检测和集中隔离。……时间,会留下最爱你的人路遥知马力,日久见人心。听过这样一段话:看人不要用眼睛去看,也不要用耳朵去听,只要用时间去证明,用心去感受就够了。因为时间虽然不语,却可以回答任何问题。只要时间走得……彻底乱了!詹姆斯用自己交易三分神射,只为重返幸运之地Skip:詹姆斯被时光老人打败了,他不在能带领球队赢球。帕金斯:詹姆斯需要提升他的比赛,这样才能够帮助到球队。杰威:詹姆斯已经掉出联盟前十,他没法扛起球队进攻。……银行股是价值投资的典范24家银行股要分红5300亿元,10余家银行股股息率超过5,这些银行股可以作为价值投资的核心资产,这才是价值投资的基础,也是A股市场持续发展的重要基石。在多数投资者看来,……小诗当想你的时候当想你的时候,我会把绵长的思念,揉进短短的诗行。你薄薄的红唇,轻吟、品尝我爱的篇章。当想你的时候,我任思维静静流淌。总会有一汪水……42天月子第25天营养食谱,开胃补虚,简单几步轻松搞定家常月今天为大家分享坐月子第25天功效营养餐,简简单单几步就可以搞定月子餐,虽然都是家常做法,却有不一样的营养效果。利尿消肿营养餐香菇瘦肉粥香菇瘦肉粥功效……有骑手高烧坚持送外卖?美团回应体温过高,系统将停止接单近日,有坐标广州网友在社交媒体发文称,自己外卖的配送骑手在平台上显示体温过高,质疑骑手是发烧送外卖。梳理发现,近期有多起网传消息称,外卖骑手或快递员带病上岗,引发网民讨论和质疑……超模VirginiaGallardo身穿超短比基尼大秀身材弗吉尼亚盖拉多(VirginiaGallardo)1987年9月25日出生,是一名阿根廷模特、职业舞者和演员。作为迷你泳衣的爱好者,近日弗吉尼亚盖拉多在社交平台上晒出了多……韩国为什么要在芯片问题上为中国出头?最近,美国签署了为中国量身定制的《芯片和科学法案》,一来为了打击封锁中国的高端半导体产能,二来希望这些产业和产能可以回流美国。而美国的小跟班韩国,这两天却派出外长朴振访华……SQL经典练习题(openGauss数据库)上目录引言:一、初始化4张基础表1、数据表介绍2、初始化(创建表并插入测试数据)二、SQL习题1、查询01课程比02课程成绩高的学生的信息及课……击中你的心!人情冷暖,各自知,来也罢,去也罢,在这个世界依旧坚强,留也好,走也好,此生不过是浮云。擦干眼泪,依旧向前。漫漫人生,得失难预,喜乐难言,没有谁样样可心,事事顺心。得失就是……
比Windows更好用!国产开源OS全新发布今年Win10最重要更新体验变化真不少iOS15最实用的神功能实况文本Windows10上Chrome遭遇Bug无法正常播放HDR机械硬盘真拖后腿!PS4Pro换SSD后游戏加载纹理绘制速度腾讯首款AR捉妖手游正式开测可充值全境封锁2本财年问世地铁一路向东延至明年帅呆!索尼发布全新限量版PS4售价心动iOS微信更新必升!四连败的勇士,输在了防守,但丢的是团队和牺牲旅游遇封路错失最美公路,旅行社该为此担责吗?作为第一批吃螃蟹的人,8年前花13万买哈弗H6的车主现状如何嗜赌的丈夫妲怎么读(李婉妲)格兰仕空调遥控器故障原因格兰仕空调遥控器故障解决方法详解《荔枝谱》主要内容简介及赏析黎智英等7人被拘捕什么牌子进口洗面奶荧光剂超标香樟树五年级作文合同总公司签收款分公司收可以吗?哪些内裤会影响女人性发育呢?贪吃的小狗陪伴

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形