一条关于mysql的SQL语句怎么写

一条关于mysql的SQL语句怎么写,第1张

哥子,你这个方法查出来的数据肯定要比你想要的结果多

得出来的不仅仅是每个年龄段身高最小的人的体重

id height age weight

1 165 2255

2167 2252

3167 2360

4169 2370

按你上面的SQL,会查出三条,其实你要的只是其中两件

用EXISTS如下实现

select weight form boy t1 where exists (select 1 from (select age,min(height) min_height from boy t2 group by age ) s where s.age=t2.age and s.min_height=t1.height)

我MYSQL用得少,大多是ORACLE,不知道合不合MYSQL的语法,不合的话你可以改下,大概意思还是这样的

一、修改表

二、复制表

三、表字段的数据类型

存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的。

mysql常用数据类型有:

数值类型

1、整数类型

TINYINT SMALLINT MEDIUMINT INT BIGINT

作用:存储年龄,等级,id,各种号码等

注意:为该类型指定宽度时,仅仅只是指定查询结果的显示宽度,与存储范围无关,存储范围如下

其实我们完全没必要为整数类型指定显示宽度,使用默认的就可以了

默认的显示宽度,都是在最大值的基础上加1

2、浮点型

定点数类型 DEC等同于DECIMAL

浮点类型:FLOAT DOUBLE

作用:存储薪资、身高、体重、体质参数等

3、日期类型

DATE TIME DATETIME TIMESTAMP YEAR

作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等

datatime与timestamp的区别

4、字符串类型

总结:

单从数据类型的实现机制去考虑,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。

但对于InnoDB数据表,内部的行存储格式没有区分固定长度和可变长度列(所有数据行都使用指向数据列值的头指针),因此在本质上,使用固定长度的CHAR列不一定比使用可变长度VARCHAR列性能要好。因而,主要的性能因素是数据行使用的存储总量。由于CHAR平均占用的空间多于VARCHAR,因此使用VARCHAR来最小化需要处理的数据行的存储总量和磁盘I/O是比较好的。

5、枚举类型和集合类型

字段的值只能在给定范围中选择,如单选框,多选框

enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female

set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...)


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存