新客网
首页 | 新闻 | 系统·网络·服务器·安全 | 工具·办公 | 编程·数据库 | 图象·网页·运营 | 硬件·存储 | 专题教程 | 论坛·old
 → 当前位置:首页 > 教程 > 数据库 > mysql > 正文

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

XKER.COM   2006-10-10 9:20:07  来源:新客整理  点击:


  
  mysql> SELECT species, sex, COUNT(*) FROM pet
    -> WHERE species = "dog" OR species = "cat"
    -> GROUP BY species, sex;
  +---------+------+----------+
  | species | sex | COUNT(*) |
  +---------+------+----------+
  | cat   | f  |    1 |
  | cat   | m  |    1 |
  | dog   | f  |    1 |
  | dog   | m  |    2 |
  +---------+------+----------+
  
  或,如果你仅需要知道已知性别的按性别的动物数目:
  
  mysql> SELECT species, sex, COUNT(*) FROM pet
    -> WHERE sex IS NOT NULL
    -> GROUP BY species, sex;
  +---------+------+----------+
  | species | sex | COUNT(*) |
  +---------+------+----------+
  | bird  | f  |    1 |
  | cat   | f  |    1 |
  | cat   | m  |    1 |
  | dog   | f  |    1 |
  | dog   | m  |    2 |
  | hamster | f  |    1 |
  | snake  | m  |    1 |
  +---------+------+----------+
  
  8.4.5 使用多个数据库表
  pet表追踪你有哪个宠物。如果你想要记录他们的其他信息,例如在他们一生中事件看兽医或何时后代出生,你需要另外的表。这张表应该像什么呢?
  
  它需要包含宠物名字因此你知道每个事件属于此动物。
  它需要一个日期因此你知道事件什么时候发生的。
  需要一个字段描述事件。
  如果你想要可分类事件,有一个事件类型字段将是有用的。
  给出了这些考虑,为event表的CREATE TABLE语句可能看起来像这样:
  
  mysql> CREATE TABLE event (name VARCHAR(20), date DATE,
    -> type VARCHAR(15), remark VARCHAR(255));www.xker.com(小新)
  
  就象pet表,最容易的示通过创建包含信息的一个定位符分隔的文本文件装载初始记录:
  
   象这样装载记录:
  
  mysql> LOAD DATA LOCAL INFILE "event.txt" INTO TABLE event;
  
  基于你从已经运行在pet表上的查询中学到的,你应该能执行在event表中记录的检索;原则是一样的。但是什么时候是event表本身不足以回答你可能问的问题呢?
  
  当他们有了一窝小动物时,假定你想要找出每只宠物的年龄。 event表指出何时发生,但是为了计算母亲的年龄,你需要她的出生日期。既然它被存储在pet表中,为了查询你需要两张表:
  
  mysql> SELECT pet.name, (TO_DAYS(date) - TO_DAYS(birth))/365 AS age, remark
    -> FROM pet, event
    -> WHERE pet.name = event.name AND type = "litter";
  +--------+------+-----------------------------+
  | name  | age | remark           |
  +--------+------+-----------------------------+
  | Fluffy | 2.27 | 4 kittens, 3 female, 1 male |
  | Buffy | 4.12 | 5 puppies, 2 female, 3 male |
  | Buffy | 5.10 | 3 puppies, 3 female     |
  +--------+------+-----------------------------+
  
  关于该查询要注意的几件事情:
  
  FROM子句列出两个表,因为查询需要从他们两个拉出信息。
  当组合(联结-join)来自多个表的信息时,你需要指定在一个表中的记录怎样能匹配其它表的记录。这很简单,因为它们都有一个name列。查询使用WHERE子句基于name值来匹配2个表中的记录。
  因为name列出现在两个表中,当引用列时,你一定要指定哪个表。这通过把表名附在列名前做到。
  你不必有2个不同的表来执行一个联结。如果你想要将一个表的记录与同一个表的其他记录进行比较,联结一个表到自身有时是有用的。例如,为了在你的宠物之中繁殖配偶,你可以用pet联结自身来进行相似种类的雄雌配对:

本新闻共12页,当前在第11页  
01  02  03  04  05  06  07  08  09  10  
11  12  

上一篇教程:MySQL服务器的启动与停止
下一篇教程:MySQL中文参考手册-- 获得数据库和表的信息
收藏本文】 【我要投稿】 【打印本文】 【论坛讨论】 【关闭窗口

相关文章
·MySQL数据导入导出方法与工具介绍三·MySQL数据导入导出方法与工具介绍二
·MySQL数据导入导出方法与工具介绍一·如何才能使图形化管理MySQL更轻松(二)
·如何才能使图形化管理MySQL更轻松(一)·MySQL管理员指南之--MySQL用户管理
·MySQL数据的导出和导入工具mysqldump·MySQL的管理工具:phpMyAdmin
·MySQL中文参考手册-- 常用查询的例子·MySQL中文参考手册-- 输入查询
·MySQL中文参考手册-- 连接与断开服务者·MySQL中文参考手册-- 获得数据库和表的信息
·MySQL服务器的启动与停止·MySQL中文参考手册--- 安装MySQL
·MySQL高级特性----对比与其他数据库·MySQL中文参考手册---MySQL 文件系统

学院文章搜索
  
推荐文章
·用CSS实现动态显示的五角星
·MySQL数据导入导出方法与工
·从网络设置着手 教你四招让
·制作正式版优化大师绿色免
·编程过把瘾:自己动手写操
·数据恢复指南 专题
·硬盘“逻辑锁”解决办法
·DOS使用中的常见问题解答
·DOS下常用的相关网络命令
·Win2000优化技巧篇之:硬件
阅读排行
·免费代理IP(每日更新)
·流氓网站招招看 详细剖析恶
·ghost教程 专题
·DB2 9数据库专题
·轻松恢复硬盘数据 EasyRec
·克隆软件Ghost初级使用教程
·DOS下对系统重新进行分区
·DOS常用命令
·Fdisk分区详解
·编程过把瘾:自己动手写操
专题教程
·数据恢复指南 专题
·Web服务器专题
·DB2 9数据库专题
·ghost教程 专题
·局域网技术专题
·虚拟机专题
·CDN加速技术专题
·注册表教程专题
·电脑技巧 专题
·Linux与虚拟化技术
最新文章
·用手机免费申请QQ号 既方便
·用CSS实现动态显示的五角星
·MySQL数据导入导出方法与工
·MySQL数据导入导出方法与工
·MySQL数据导入导出方法与工
·如何才能使图形化管理MySQ
·如何才能使图形化管理MySQ
·MySQL管理员指南之--MySQL
·MySQL数据的导出和导入工具
·MySQL的管理工具:phpMyAdm
设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003 - 2006 XKER Inc. All Rights Reserved
新客网 版权所有