特定SQL语句记录

本文介绍了一系列SQL实用操作,包括获取表的主键、查询表的字段总数、筛选特定时间段内的数据等。此外还介绍了如何使用group by进行数据聚合,以及union和union all的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一些特定条件下的SQL操作记录,不定时添加。。

1.通过sql语句得到某张特定的表的主键:

利用系统表INFORMATION_SCHEMA.KEY_COLUMN_USAGE 的方法

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
WHERE TABLE_NAME='表名'


2.通过sql语句查询某张表的字段总数

select count(1) from information_schema.columns where table_schema='数据库名' and table_name='表名'; 




3.通过sql语句查询某个字段中不重复的所有数据

select distinct FieldName from tableName


4.通过sql语句获取时间格式后面截取的时间值(不要前面的年月日)

SELECT * FROM (select date_format(AlarmTime,'%T') _AlarmTime from alarm_record ) a 
where a._AlarmTime >'08:00:00' and a._AlarmTime <'20:00:00'

//其中 _AlarmTime是把日期格式截取了后面的时间的新列,这里是指把大于8点,小于20点的数据筛选出来。

如果这样写的话:

SELECT * FROM (select *,date_format(AlarmTime,'%T') _AlarmTime from alarm_record ) a 
where a._AlarmTime >'08:00:00' and a._AlarmTime <'20:00:00'

是指把所有列的数据筛选出来


5.通过sql语句查询某张表中所有数据的数量

select count(*) from tableName //结果如下


为了减轻数据库引擎的负担可以这样写

select count(id) from tableName //结果如下

6.拿一组数据的某个数据最大值,不用limit的时候可以在里面先用max(字段名)筛选,可以选出某字段最大的值,不是整条数据拿,只是拿那个字段的值。

7.Group by +字段名的使用

使用Group by 可以把数据中有相同。。。。

8.把数据按保留小数点后两位输出

format(23456.789,2) 这个函数会把23456.789对小数部分进行四舍五入操作,整数部分从右向左每3位一个逗号进行格式化输出,结果为23,456.79 这是个字符串型的数据,一般情况下不用,因为有','.

convert(23456.789,decimal(10,2)) 这个函数同样是以四舍五入进行截取,获得的数字是23456.19,一般情况下用这个函数,如果是整数的话就会显示整数。

truncate(23456.789,2)  这个函数直接把小数点两位以后的数字去掉,显示结果是23456.78


9.union 和union all的用法

union是把多个sql语句结果组合到一个结果集中,要求所有组合的结果集的结果字段名字一样,类型相同,而且,位置顺序应该一一对应,如果第一个结果集和第二个结果集的顺序不一致的话,以第一个结果集为准(虽然不会报错,但是对数据的影响很大,当用函数max(field)操作总结果集的时候,会发生数据对应不上的情况,顺序取值)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值