深入浅出举例应用 SQL数据库使用系列

DH2R4P

DH2R4P

2016-01-29 13:46

深入浅出举例应用 SQL数据库使用系列,深入浅出举例应用 SQL数据库使用系列

SQL是结构化查询语言(Structured Query Language)的缩写。这种语言允许我们对数据库进行复杂的操作。SQL语言的使用范围非常广泛。许多数据库产品都支持SQL语言,这意味着如果我们学会了SQL语言,我们可以把这种知识运用到MS Access 或 SQL Server, Oracle, DB2以及非常多的其它数据库中。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/php/)

  SQL语言运用在关系型数据库中。一个关系型数据库把数据存储在表(也称关系)中。每个数据库的主要组成就是一组表。每个表又由一组记录组成--每条记录在表中有相同的结构,包含固定数量的具有一定类型的字段。
  
  下面我们来看一个实际的数据库中的表。该表的表名为cia,包含250多条记录,每个记录代表一个国家。表由5个字段组成,字段的值有的是字符串类型,有的是数字类型。

name region area population gdp
---- ------ ------ ---------- -----------
Yemen Middle East 527970 14728474 23400000000
Zaire Africa 2345410 44060636 18800000000
Zambia Africa 752610 9445723 7900000000
Zimbabwe Africa 390580 11139961 17400000000

  下面我们可以用一些SQL语句来查询这个表中我们该兴趣的数据。

  1. 中国的GDP是多少?

  查询用的SQL语句为:

select gdp from cia where name='china'

  查询结果为:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/php/)

4800000000000

  2. 给出每个地区的国家数和人口总数。并且按地区的人口数从多到少排序。

  查询用的SQL语句为:

SELECT region, COUNT(name), SUM(population)
FROM cia
GROUP BY region
ORDER BY 3 DESC

  查询结果为:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/php/)

region COUNT(name) SUM(population)
------ ----------- ---------------
Asia 14 2963031109
Africa 59 793382933
Europe 43 580590872
....

  怎么样,对SQL语言有了基本的了解了吧,同时对数据库,表,记录,字段等一系列在SQL语言中常用的感念也有大概的认识吧。如果不是很清楚也没关系,在接下来的内容中我们从SQL语言中最简单的内容逐步给大家作介绍,并提供丰富的练习让大家实际操作。相信学完本系列教程,你可以成为一个SQL语言的高手。

在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。

SELECT SUM(population) FROM bbc

  这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数。

  通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。当你指定 GROUP BY region 时, 属于同一个region(地区)的一组数据将只能返回一行值,也就是说,表中所有除region(地区)外的字段,只能通过 SUM, COUNT等聚合函数运算后返回一个值。

  HAVING子句可以让我们筛选成组后的各组数据,WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前.
而 HAVING子句在聚合后对组记录进行筛选。

  让我们还是通过具体的实例来理解GROUP BY 和 HAVING 子句,还采用第三节介绍的bbc表。

  SQL实例:

  一、显示每个地区的总人口数和总面积:

SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region

  先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中的不同字段(一或多条记录)作运算。

  二、 显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。

SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
HAVING SUM(area)1000000

  在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。

  相反,HAVING子句可以让我们筛选成组后的各组数据.

在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。

SELECT SUM(population) FROM bbc

  这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数。

  通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。当你指定 GROUP BY region 时, 属于同一个region(地区)的一组数据将只能返回一行值,也就是说,表中所有除region(地区)外的字段,只能通过 SUM, COUNT等聚合函数运算后返回一个值。

  HAVING子句可以让我们筛选成组后的各组数据,WHERE子句在聚合前先筛选记录.也就是说作用在GROUP

展开更多 50%)
分享

猜你喜欢

深入浅出举例应用 SQL数据库使用系列

PHP
深入浅出举例应用 SQL数据库使用系列

深入浅出SQL系列教程之SQL语言简介

SQLServer
深入浅出SQL系列教程之SQL语言简介

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

深入浅出SQL系列教程之基本SELECT命令

SQLServer
深入浅出SQL系列教程之基本SELECT命令

深入浅出 CPropertySheet

C语言教程 C语言函数
深入浅出 CPropertySheet

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Singleton深入浅出

电脑网络
Singleton深入浅出

深入浅出SQL教程之子查询语句

SQLServer
深入浅出SQL教程之子查询语句

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

MySQL手册版本 5.0.20-MySQL优化(四) (1)(5)

MySQL手册版本 5.0.20-MySQL优化(四)  (1)(5)

《天天酷跑》百变萝莉怎么样

《天天酷跑》百变萝莉怎么样
下拉加载更多内容 ↓