新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > 数据库 > MySQL教程 > 正文:MySQL中文参考手册-- 创造并使用一个数据库

MySQL中文参考手册-- 创造并使用一个数据库

新客网 XKER.COM 2006-10-10 来源: 收藏本文

  | Buffy | Harold | dog   | f  | 1989-05-13 | NULL |
  +-------+--------+---------+------+------------+-------+
  
  你也可以使用“{n}”“重复n次”操作符重写先前的查询:
  
  mysql> SELECT * FROM pet WHERE name REGEXP "^.{5}$";
  +-------+--------+---------+------+------------+-------+
  | name | owner | species | sex | birth   | death |
  +-------+--------+---------+------+------------+-------+
  | Claws | Gwen  | cat   | m  | 1994-03-17 | NULL |
  | Buffy | Harold | dog   | f  | 1989-05-13 | NULL |
  +-------+--------+---------+------+------------+-------+
  
  8.4.4.8 行计数
  数据库经常用于回答这个问题,“某个类型的数据在一张表中出现的频度?”例如,你可能想要知道你有多少宠物,或每位主人有多少宠物,或你可能想要在你的动物上施行各种类型的普查。
  
  计算你拥有动物的总数字与“在pet表中有多少行?”是同样的问题,因为每个宠物有一个记录。COUNT()函数计数非NULL结果的数目,所以数你的动物的查询看起来像这样:
  
  mysql> SELECT COUNT(*) FROM pet;
  +----------+
  | COUNT(*) |
  +----------+
  |    9 |
  +----------+
  
  在前面,你检索了拥有宠物的人的名字。如果你想要知道每个主人有多少宠物,你可以使用COUNT()函数:
  
  mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner;
  +--------+----------+
  | owner | COUNT(*) |
  +--------+----------+
  | Benny |    2 |
  | Diane |    2 |
  | Gwen  |    3 |
  | Harold |    2 |
  +--------+----------+
  
  注意,使用GROUP BY对每个owner分组所有记录,没有它,你得到的一切是一条错误消息:
  
  mysql> SELECT owner, COUNT(owner) FROM pet;
  ERROR 1140 at line 1: Mixing of GROUP columns (MIN(),MAX(),COUNT()...)
  with no GROUP columns is illegal if there is no GROUP BY clause
  
  COUNT()和GROUP BY对以各种方式分类你的数据很有用。下列例子显示出实施动物普查操作的不同方式。
  
  每种动物数量:
  
  mysql> SELECT species, COUNT(*) FROM pet GROUP BY species;
  +---------+----------+
  | species | COUNT(*) |
  +---------+----------+
  | bird  |    2 |
  | cat   |    2 |
  | dog   |    3 |
  | hamster |    1 |
  | snake  |    1 |
  +---------+----------+
  
  每中性别的动物数量:
  
  mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex;
  +------+----------+
  | sex | COUNT(*) |
  +------+----------+
  | NULL |    1 |
  | f  |    4 |
  | m  |    4 |
  +------+----------+
  
  (在这个输出中,NULL表示“未知性别”。)
  
  按种类和性别组合的动物数量:
  
  mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;
  +---------+------+----------+
  | species | sex | COUNT(*) |
  +---------+------+----------+
  | bird  | NULL |    1 |
  | bird  | f  |    1 |
  | cat   | f  |    1 |
  | cat   | m  |    1 |
  | dog   | f  |    1 |
  | dog   | m  |    2 |
  | hamster | f  |    1 |
  | snake  | m  |    1 |
  +---------+------+----------+
  
  当你使用COUNT()时,你不必检索整个一张表。例如, 先前的查询,当只在狗和猫上施行时,看起来像这样:

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐