mysql单表最多能记录多少条数据

mysql单表最多能记录多少条数据,第1张

实这个问题要拆分成两个问题。

第一是 *** 作系统所采用的文件系统能支持的单个文件大小,比如:

linux 2.2-intel 32-bit (ext2文件系统) 最大支持2GB

linux 2.4+ (ext3文件系统) 支持4TB

win32 (fat32文件系统) 4GB

win32 (ntfs文件系统) 2TB

第二是存储引擎本身能支持的最大空间大小。比如

InnoDB存储引擎的表空间最大容量为64TB,不具体限制单表的大小,但受限于表空间。

MyISAM

最大表尺寸为65536TB,但是在 MySQL5.0版本之前,默认情况下,MyISAM单个表允许的最大尺寸为4GB,你可以通过 SHOW

TABLE STATUS 语句或 myisamchk -dv tbl_name 检查表的最大尺寸,如果是4G,可以通过修改

AVG_ROW_LENGTH 和 MAX_ROWS 选项的值来达到目的。MySQL5.0版本后,默认MyISAM表的限制是256TB。

ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'alpha.employee.id' which is not functionally dependent on columns in GROUP BY clausethis is incompatible with sql_mode=only_full_group_by

原因:因为group by分组之后不能访问分组字段之外的字段,所以以下的select * 会报错. 换成 select dep_id from employee group by dep_id

但是又无意义,所以此时需要用到聚合函数或者group_concat()函数

聚合函数聚合的是组的内容,若是没有分组,则默认是一组。聚合函数有:

count():取个数

max():取最大值

min():取最小值

avg():取平均值

sum():求和

例如:

如果觉得count(dep_id)展示不友好,可以使用as关键字给该字段起别名

查询各部门员工个数小于3的部门id、部门员工姓名、员工个数

查询各部门平均工资大于10000的部门id、部门平均工资

查询各部门平局工资大于10000且小于10000000的部门id、部门平均工资

HAVING与WHERE不一样的地方在于!!!!!!

1. Where 发生在分组group by之前,因而Where中可以有任意字段,但是绝对不能使用聚合函数。

2. Having发生在分组group by之后,因而Having中可以使用分组的字段,无法直接取到其他字段,可以使用聚合函数

排序分为升序ASC和降序DESC

查询所有员工信息,先按照部门id升序,如果id相同则按照年龄降序

查询各部门平均工资大于100000的部门id、平均工资,结果按平均工资升序

limit限制查询的记录条数

查询工资大于10000的 的前三名员工信息,并按降序排列

每页3条,查询第一页:

每页三条,查询第二页:

每页3条,查询第三页:

查询所有员工中以em开头的员工信息:

^代表开头

查询所有员工中以ck结尾的员工信息:

$代表结尾

查询所有员工姓名包含2个连续m的员工信息:

查询所有员工中姓名以emm开头且已y结尾的员工信息:

查询所有员工中姓名以emm开头且已i或y结尾的员工信息:

另外还有一个模糊查询:like 但是like只有下划线_和百分号%

Like关键字模糊匹配姓名以emm开头的记录

重点中的重点:单表查询关键字的执行顺序(优先级)

from

where

group by

having

select

distinct

order by

limit


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7355166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存