sql查询每科成绩的最高分_第五章 数据分析必备的SQL技能

写在前面

从之前做开发,到现在转做运营、数据分析。SQL一直都是至关重要的。做开发或者做数据分析,需要的SQL技能点,都不完全相同。本篇主要偏向于数据分析必备的SQL技能。

Excel数据分析暂告一段落了,现在开始整理SQL笔记了。

已知有如下4张表:

学生表:student(学号,学生姓名,出生年月,性别)

成绩表:score(学号,课程号,成绩)

课程表:course(课程号,课程名称,教师号)

教师表:teacher(教师号,教师姓名)

根据以上信息按照下面要求写出对应的SQL语句。

a4414272ae08cb5fcd3862ac3ad4f773.png

一、简单入门介绍

SQL,即Structured Query Language的缩写,意思是:结构化查询语言,是一种在数据库管理系统(Relational Database Management System, RDBMS)中查询数据,或通过RDBMS对数据库中的数据进行更改的语言。

常见的RDBMS有:

  • Oracle Database:甲骨文公司的RDBMS
  • SQL Server :微软公司的RDBMS
  • DB2:IBM 公司的RDBMS
  • PostgreSQL:开源的RDBMS
  • MySQL :开源的RDBMS

RDBMS不同RDBMS的SQL语言略微有所不同,由于MySQL是开源、免费的,国内很多公司用的都是MySQL,所以本篇文章汇总的主要是MySQL的SQL语言。

根据对RDBMS 赋予的指令种类的不同,SQL 语句可以分为以下三类:

1bb0adde2fda0998296b0cad9a6d84fd.png

提到数据库,就不得不提到“增、删、改、查”。作为数据分析师,大多数公司,出于安全的考虑,一般只会给数据分析师 查询数据 的权限,不会开放其他诸如“增、删、改”的操作权限,基于此,我们着重学习 select查询 语句即可,故本文以 select查询 为主。

二、简单查询

(一)基本规则

SQL语言以英文分号(;)结尾;

SQL语句不区分关键字的大小写;如:SELECT 同 select;

输入符号只能使用 英文状态 ;如:逗号(,)、点号(.);

/* */ 可以用于插入多行注释;

(二)基础查询

1、基本语法:

  • 列的基本查询
select <列名> from <表名>;
  • 查询表中所有的列

该语句的显示结果为每条数据的顺序随机。

select * from <表名>;

注:星号(*)是选取所有列的快捷方式;

  • 为列设定别名
select <列名> as <新列名> from <表名>;
  • 常数的查询
select <常值> as <新列名> from <表名>;
  • 结果中删除重复行

关键词 distinct 用于返回唯一不同的值。null数据会合并为一条,distinct 只能 用在第一个列名之前。

select distinct <列名> from <表名>;
  • where条件查询
select <列名> from <表名> where <列 运算符 值>;

注:where 只能指定行的条件,不能指定组的条件。对于分组后的筛选,需用 having 子句。

  • 模糊查询
select <列名> from <表名> where <列名> like 条件

其中关于 like 条件,SQL提供了四种匹配模式,本文介绍常用的两种:

% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

select * from user where u_name like '%三%'
'孟%';:表示以"孟"开头的;
'%孟%';:表示带"孟"的;
'%孟';:表示以"孟"结尾的;
  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值