SQL必知必会 | 3

一、什么是SQL函数?为什么使用SQL函数可能会带来问题?

SQL语言中也包括内置函数(系统内置的通用函数)和自定义函数。
SQL函数一般在数据上执行,可以很方便转换和处理数据。

内置函数:

  • 算术函数
  • 字符串函数
  • 日期函数
  • 转换函数

只有很少的函数是被DBMS同时支持的。不同的平台下对大小写有不同的规范。
在这里插入图片描述

二、什么是SQL的聚集函数,如何利用它们汇总表的数据?

聚集函数:

函数 说明
COUNT() 总行数
MAX() 最大值
MIN() 最小值
SUM() 求和
AVG 平均值

SELECT COUNT(*) FROM heros WHERE hp_max > 6000

按照英雄的主要定位、次要定位进行分组,并且筛选分组中英雄数量大于5的组,最后按照分组中的英雄数量从高到低进行排序。

SELECT COUNT() as num, role_main, role_assist FROM heros GROUP BY role_main, role_assist HAVING COUNT() > 5 ORDER BY num DESC

SELECT查询中关键字顺序不能颠倒:
SELECT…FROM…WHERE…GROUP BY…HAVING…ORDER BY…LIMIT
在这里插入图片描述

三、子查询:子查询的种类有哪些,如何提高子查询的性能?

  • 非关联子查询:子查询从数据表中查询了数据结果,如果只执行一次然后作为主查询的条件执行。
  • 关联子查询:如果子查询需要执行多次,先从外部查询开始,每次都传入子查询进行查询,然后再将结果反馈给外部。

我们想要知道哪个球员的身高最高,最高身高是多少,就
可以采用子查询的方式:
SELECT player_name, height FROM player WHERE height = (SELECT max(height) FROM player)

我们想要看出场过的球员都有哪些,并且显示他们的姓名、球员 ID 和球队 ID:
SELECT player_id, team_id, player_name FROM player WHERE EXISTS (
SELECT *
FROM 出场表
WHERE player.player_id = 出场表.球员ID
);

在这里插入图片描述

四、常用的SQL标准有哪些,在SQL92中是如何使用连接的?

SQL是一种建立在关系型数据库基础上的语言。我们能使用SQL语言对各个数据表进行复杂查询,其核心就在于连接。

SQL有两个主要的标准:SQL92和SQL99。

笛卡尔积
SELECT * FROM player, team

等值连接
SELECT player.player_id, player.team_id, player.player_name, team.team_name
FROM player, team
WHERE player.team_id = team.team_id

非等值连接:如果连接多个表的条件不是等号,连接就是非等值查询

外连接(左连接、右连接)
左外连接就是左边的表是主表,需要显示全部行,右边的表是从表,(+)表示那个是从表
SELECT * FROM player, team WHERE player.team_id = team.team_id(+)

自连接
SELECT player_name, height
FROM player
WHERE height > (
SELECT height
FROM player
WHERE player_name = ‘布雷克·格里芬’
);

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/itsxwz/article/details/132671749