SQL基础教程

查询基础

基础语法
select  
		列名1,
		列名2
from 
		表名
-- 查询多例用逗号分隔 
-- 查询结果的列的顺序和select 子句中的顺序相同 

-- 查询表中所有的列  
select 
			*
from 
			表名
-- 使用 * 无法设定列的显示顺序, 会按照 create table 语句的定义对列进行排序
  

起别名 AS

一般用来简化书写, 可以给列, 表, 起别名 关键字 as , as 可以省略
当别名为中文时 注意用 双引号("")

常数的查询

select 子句中可以 写常数信息, 他将与查询结果一起被查询出来 

在这里插入图片描述

查询删除重复记录

我们发现在订单表中, 好多商品的类别重复, 所以我们在select 子句中使用 distinct 但是要注意distinct 只能用在第一列名之前 , 而且在使用distinct 时, null 数据也会被当成一行
如下图:
在这里插入图片描述
在这里插入图片描述

使用Where选择查询的记录

select 子句需要通过where子句查询特定条件的记录,

select 列名1, ...
from 表名
where 条件表达式

查询结果0,1 显示是, 否

SELECT
	id,
	case_name AS caseName,
IF
	( CAST( show_home AS CHAR ) = '1', '是', '否' ) AS showHome,
	img_url AS imgUrl,
	case_detail AS caseDetail,
	create_time AS createTime,
	modify_time AS modifyTime,
	create_user_id AS createUserId,
	modify_user_id AS modifyUserId,
	sort 
FROM
	portal_case_info 
WHERE
	1 = 1

行列转换

说明

SELECT
	tmm.id,
	tmm.project_id AS projectId,
	tmm.company_id AS companyId,
	GROUP_CONCAT( mm.id SEPARATOR ',' ) AS maintainId,
	GROUP_CONCAT( mm.maintain_name SEPARATOR ',' ) AS maintainName,
	tpi.project_name AS projectName,
	tfc.company_name AS companyName,
	tmm.maintain_remark AS maintainRemark,
	tmm.maintain_people AS maintainPeople,
	tmm.equipment_id AS equipmentId,
	tei.equipment_name AS equipmentName,
	DATE_FORMAT( tmm.maintain_time, '%Y-%m-%d %H:%i:%s' ) AS maintainTime 
FROM
	t_maintain_info AS tmm
	LEFT JOIN t_formal_company_info AS tfc ON tmm.company_id = tfc.id
	LEFT JOIN t_project_info AS tpi ON tmm.project_id = tpi.id
	LEFT JOIN t_maintain AS mm ON FIND_IN_SET( mm.id, tmm.maintain_id )
	LEFT JOIN t_equipment_info AS tei ON tmm.equipment_id = tei.id 
GROUP BY
	tmm.id

筛选过滤条件

不要空的结果

        and trail.lon is not null
        and trail.lon != ''

距离当前时间2分钟设置离线

SELECT
IF
	( CURRENT_TIMESTAMP < DATE_ADD( ths.last_update_time, INTERVAL '2' MINUTE ), "在线", "离线" ) AS STATUS 
FROM
	t_device device
	LEFT JOIN t_helmet_status ths ON device.device_num = ths.terminal_num 
WHERE
	device.device_num = '7758521';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值