mysql数据库查询

这篇博客详细介绍了MySQL数据库的查询操作,包括聚合函数的使用、联合查询、视图表的创建以及外键的概念。内容涵盖where和having条件判断、字段别名、正则表达式查询、排序与分页,同时探讨了不同类型的JOIN操作以及子查询和视图的运用。

查看数字n1是否在n2和n3中间

select n1 between n2 and n3

数据比较:

= > < != <>

null比较:

12 is null  ---->  0
32 is not null  ----> 1
23 = null   ---->  null
null = null ---->  null
null <=> null  ---->  1
null is null   ---->  1

模糊比较:

select 'helloworld' like 'hello%';
select 'goodhelloworld' like '%hello%';
%代表任意字符出现任意次数
_代表任意字符出现一次
要根据你要查找的内容位置来配置

逻辑运算符:

and or not

sql注释:

单行注释:-- 注释
多行注释:/* 注释 */
MySQL独有的单行注释: # 注释

where条件判断:只返回验证结果为True的数据
having条件判断:与where类似

条件判断的字段使用having使用where
字段未在select时选择×
字段在select时选择
条件判断用别名×
条件判断用原名
聚合函数×

筛选时给字段起别名

select 字段 as 别名

char_length(字段名):获取该字段内数据的长度

根据正则表达式来查找内容

regexp '正则表达式'

取对应字段的前n个字符

left(字段,n)

按组筛选

group by 

按字段排序:默认升序asc desc表示降序排序

order by 字段 desc

限制取出数量:limit

select * from table limit n 查看n行
select * from table limit m,n 跳过前m行,查看n行

offset n 跳过n行,从n+1行开始查看

select * from table limit n offset m 跳过前m行,查看n行

聚合函数

select city as 城市,group_concat(name) as 姓名,count(name) as 人数,sum(money) as 总金额,avg(money) as 平均金额 from students group by city

查询结果:
在这里插入图片描述

合并:group_concat():
计数:count(),count(distinct)
求和:sum()
平均值:avg()
虚拟表,不存在的表 用来满足语法结构:dual
取绝对值:abs()
去除小数位取整:float()
进一法取整:ceil()
取1以内的随机数:rand()
将数字m四舍五入保留小数点后的第n位round(m,n)
当前时间:now()
计算date1和date2之间相差的天数datediff(date1,date2)
计算当前是当前年份的第几周,每周日开始为新的一周 1月1号一般为第0周week()
计算是当天的第几个小时/分/秒hour(time),minute(time),second(time)
月份英文名字monthname()
转换字母大小写lower() upper()
取字符串s里的从左往右n位字符left(s,n)
取字符串s里的从右往左n位字符right(s,n)
取字符串s的加密版本,加密方式mysql5:在mysql8.0版本以后此函数被移除password(s)

联合查询:

union 联合查询要求:

1.两个table的字段数量必须一样
2.两个table的字段可以有不同的数据类型
3.字段名取第一个table的字段
select * from table1 union select * from table2;

inner join :
select 字段时,若两张表里有重名的字段,需要用‘表名.字段’来表示要获取的字段具体时间哪一个表的字段,结果只显示符合组合条件的数据,不符合的数据不显示

select 字段1,字段2,字段3,... from tables inner join table2 on 组合条件;
select id,name,city,math,english from students inner join score on students.id=score.id;

left join :
组合时除了符合组合条件的数据之外,还会列出table1的其余所有数据

select 字段1,字段2,字段3,... from table1 left join table2 on 组合条件;

right join :
组合时除了符合组合条件的数据之外,还会列出table2的其余所有数据

select 字段1,字段2,字段3,... from table1 right join table2 on 组合条件;

子查询语句:查询语句套查询语句

视图表:

视图是数据的特定子集,是从其他表里提取出来数据而形成的虚拟表,或者说临时表
创建视图表依赖一个查询
视图是永远不会消失的除非你主动删除它
视图有时会对提高效率有帮助,临时表不会对性能有帮助,是资源消耗者
视图一般随该数据库存放在一起,临时表永远都是在tempdb里的
视图适合于多表连接浏览时使用;不适合增删改,这样可以提高执行效率
一般视图表的名称以v_为前缀,用来与正常表进行区分
对原表的修改会影响到视图表中的数据

视图表是否可修改取决于建表时的算法值ALGORITHM有三个可选值:

UNDIFINED、MERGE、TEMTABLE

默认值是undefined,效果是允许修改
merge和defined效果一致
temptable是不允许修改

创建视图表语句格式:

create view 视图表名 as 查询语句

外键

表之间建立关系可以使用外键建立
外键是一种约束,可以保证数据的一致,但是不会对性能带来任何的好处:

alter table 从表名 add constraint fk_uid foreign key(从表字段) references 主表(主表字段);

建表时的语句:

constraint 外键名 foreign key(从表字段) references 主表(主表字段);

删除外键:

alter table tablename drop forieign key 外键名
本课题设计了一种利用Matlab平台开发的植物叶片健康状态识别方案,重点融合了色彩与纹理双重特征以实现对叶片病害的自动化判别。该系统构建了直观的图形操作界面,便于用户提交叶片影像并快速获得分析结论。Matlab作为具备高效数值计算与数据处理能力的工具,在图像分析与模式分类领域应用广泛,本项目正是借助其功能解决农业病害监测的实际问题。 在色彩特征分析方面,叶片影像的颜色分布常与其生理状态密切相关。通常,健康的叶片呈现绿色,而出现黄化、褐变等异常色彩往往指示病害或虫害的发生。Matlab提供了一系列图像处理函数,例如可通过色彩空间转换与直方图统计来量化颜色属性。通过计算各颜色通道的统计参数(如均值、标准差及主成分等),能够提具有判别力的色彩特征,从而为不同病害类别的区分提供依据。 纹理特征则用于描述叶片面的微观结构与形态变化,如病斑、皱缩或裂纹等。Matlab中的灰度共生矩阵计算函数可用于提对比度、均匀性、相关性等纹理指标。此外,局部二值模式与Gabor滤波等方法也能从多尺度刻画纹理细节,进一步增强病害识别的鲁棒性。 系统的人机交互界面基于Matlab的图形用户界面开发环境实现。用户可通过该界面上传待检图像,系统将自动执行图像预处理、特征抽与分类判断。采用的分类模型包括支持向量机、决策树等机器学习方法,通过对已标注样本的训练,模型能够依据新图像的特征向量预测其所属的病害类别。 此类课题设计有助于深化对Matlab编程、图像处理技术与模式识别原理的理解。通过完整实现从特征提到分类决策的流程,学生能够将理论知识与实际应用相结合,提升解决复杂工程问题的能力。总体而言,该叶片病害检测系统涵盖了图像分析、特征融合、分类算法及界面开发等多个技术环节,为学习与掌握基于Matlab的智能检测技术提供了综合性实践案例。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值