SQL 子查询,常用函数,时间格式

本文详细介绍了SQL中的子查询概念及应用技巧,包括不同类型的子查询、如何与聚合函数结合使用,以及子查询在INSERT、DELETE和UPDATE语句中的嵌套应用。

子查询

【注意】

1.必须用括号包起来

2.order by 不能用于子查询,可以一用group by

3.子查询返回多行的情况,只能用多数据操作符,比如in

4.between操作符不能连接子查询,但是可以在子查询语句里面使用between

第一类:select 语句嵌套select语句

select 列名或者表达式 from 表名

where 表达式 比较操作符 (子查询语句);

返回单值的子查询:

select 列名 from 表名1

where 表名1.列名 = (select 列名 from 表名2 where 筛选条件);

返回多值子查询:

select 列名 from 表名1

where 表名1.列名 in (select 列名 from 表名2 where 筛选条件);

子查询与聚合函数:

select 列名 from 表名 

where 表名1.id =[in] (select 列名 from 表名 where 列名 = (select 聚合函数 from 表名));

[]表示选填

insert 语句嵌套select语句:

insert into 表名1

select 列名1, 列名2,列名n from 表2

where 条件;

delete 语句嵌套select语句:

delete from 表名1

where 列名 操作符

(select 列名 from 表名2 where 条件)

【注意】

delete 与 update语句嵌套子查询时,子查询中涉及的表不同于主句中的表

update 语句嵌套select语句

update 表名1

set 列名 操作符 新的值

where 列名 操作符

(select 列名 from 表名2 where 条件)

mid(列名,起始位置,长度)

substring(列名,起始位置,长度)

【注意】

起始位置为1

ucase():转为大写字母

lcase():转为小写字母

length():求长度

round(列名,位数):对某个数值字段进行指定小数的四舍五入

concat(列名1,列名2):合并两个或多个字符串,称为一个字符串

replace():搜索和替换一个字符串中的子字符串

update 表名

set 列名 = replace(列名, 需要被替换的子字符串,用来代替的新的子字符串)

where 条件;

trim():去掉字符串中不要的空字符

ltrim():去掉左边不要的空字符

rtrim():去掉右边不要的空字符

format(要格式化的数字,需要保留的小数点位置):格式化某个字段显示方式

SQL 时间,日期函数

curdate():返回当前时间

datediff():计算两日期相差天数

data_add(起始日期,interval 表达式 单位):添加一个时间值

例:select data_add(‘2018-05-21 00:55:55’ interval 1 second) result;

data_sub():减少一个时间值

例:select data_sub(‘2018-05-21 00:55:55’ interval 1 second) result;

str_to_date(日期,格式):将字符串转为日期类型

%Y 年 大写

%m 月

%d 日

%H 小时

% i 分

%T 时间

%W 星期


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值