为什么select count(*) from baisoft就是统计表中的记录个数呢?

解决方案 »

  1.   

    COUNT(expr) 
    返回SELECT语句检索到的行中非NULL值的数目。   若找不到匹配的行,则COUNT() 返回 0 。 mysql> SELECT student.student_name,COUNT(*)    ->        FROM student,course    ->        WHERE student.student_id=course.student_id    ->        GROUP BY student_name; COUNT(*) 的稍微不同之处在于,它返回检索行的数目, 不论其是否包含 NULL值。SELECT 从一个表中检索,而不检索其它的列,并且没有 WHERE子句时, COUNT(*)被优化到最快的返回速度。例如:mysql> SELECT COUNT(*) FROM student;这个优化仅适用于 MyISAM表, 原因是这些表类型会储存一个函数返回记录的精确数量,而且非常容易访问。对于事务型的存储引擎(InnoDB, BDB), 存储一个精确行数的问题比较多,原因是可能会发生多重事物处理, 而每个都可能会对行数产生影响。COUNT(DISTINCT expr,[expr...]) 
    返回不同的非NULL值数目。若找不到匹配的项,则COUNT(DISTINCT)返回 0 。mysql> SELECT COUNT(DISTINCT results) FROM student;在MySQL中, 你通过给定一个表达式列表而获取不包含NULL 不同表达式组合的数目。在标准 SQL中,你将必须在COUNT(DISTINCT ...)中连接所有表达式
      

  2.   

    先读三遍《数据库系统概论(第四版)》 王珊 萨师煊   高等教育出版社 (掌握基础知识和概念) 然后再粗略浏览一遍MYSQL的官方手册。(方便以后查找,避免类似于考试的时候,给你本政治书也不知道答案在第几章,第几页)MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  3.   


    sql规范里面是这么定义的。
      

  4.   

    count(*) 的意思就是计算有多少条数据啊