Mysql日常sql语句整理(一)

use databasename;

 

去重复并求和use waystime;

select CreateDate,sum(ChangedWeight)chargedw

from waystime

group by  CreateDate

复制表insert into shijianxulie(id,CityStart,CtityEnd,ChargedWeight,CreateDate,chargedw) select id,CityStart,CtityEnd,ChargedWeight,CreateDate,chargedw from waystime;

删除列Alter table shijianxulie drop column chargedw

创建空表create table shouyi like waybills

MySQL 数据类型

MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。

Text 类型:

数据类型

描述

CHAR(size)

保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。

VARCHAR(size)

保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。

注释:如果值的长度大于 255,则被转换为 TEXT 类型。

TINYTEXT

存放最大长度为 255 个字符的字符串。

TEXT

存放最大长度为 65,535 个字符的字符串。

BLOB

用于 BLOBs (Binary Large OBjects)。存放最多 65,535 字节的数据。

MEDIUMTEXT

存放最大长度为 16,777,215 个字符的字符串。

MEDIUMBLOB

用于 BLOBs (Binary Large OBjects)。存放最多 16,777,215 字节的数据。

LONGTEXT

存放最大长度为 4,294,967,295 个字符的字符串。

LONGBLOB

用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。

ENUM(x,y,z,etc.)

允许你输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。如果列表中不存在插入的值,则插入空值。

注释:这些值是按照你输入的顺序存储的。

可以按照此格式输入可能的值:ENUM('X','Y','Z')

SET

ENUM 类似,SET 最多只能包含 64 个列表项,不过 SET 可存储一个以上的值。

Number 类型:

数据类型

描述

TINYINT(size)

-128 127 常规。0 255 无符号*。在括号中规定最大位数。

SMALLINT(size)

-32768 32767 常规。0 65535 无符号*。在括号中规定最大位数。

MEDIUMINT(size)

-8388608 8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。

INT(size)

-2147483648 2147483647 常规。0 4294967295 无符号*。在括号中规定最大位数。

BIGINT(size)

-9223372036854775808 9223372036854775807 常规。0 18446744073709551615 无符号*。在括号中规定最大位数。

FLOAT(size,d)

带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。

DOUBLE(size,d)

带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。

DECIMAL(size,d)

作为字符串存储的 DOUBLE 类型,允许固定的小数点。

* 这些整数类型拥有额外的选项 UNSIGNED。通常,整数可以是负数或正数。如果添加 UNSIGNED 属性,那么范围将从 0 开始,而不是某个负数。

Date 类型:

数据类型

描述

DATE()

日期。格式:YYYY-MM-DD

注释:支持的范围是从 '1000-01-01' '9999-12-31'

DATETIME()

*日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS

注释:支持的范围是从 '1000-01-01 00:00:00' '9999-12-31 23:59:59'

TIMESTAMP()

*时间戳。TIMESTAMP 值使用 Unix 纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS

注释:支持的范围是从 '1970-01-01 00:00:01' UTC '2038-01-09 03:14:07' UTC

TIME()

时间。格式:HH:MM:SS 注释:支持的范围是从 '-838:59:59' '838:59:59'

YEAR()

2 位或 4 位格式的年。

注释:4 位格式所允许的值:1901 21552 位格式所允许的值:70 69,表示从 1970 2069

* 即便 DATETIME TIMESTAMP 返回相同的格式,它们的工作方式很不同。在 INSERT UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSSYYMMDDHHMMSSYYYYMMDD YYMMDD

 

 

 

 

.bak文件:数据库备份,系统数据库的还原数据库

sqlserver

复制另外一个数据库中的表

select * into [处理表].[dbo].[WaybillsBak1] from [datian].[dbo].[WaybillsBak]

删除冗余运单字段

select *

from WaybillsBak1

Alter table WaybillsBak1 drop column HlFlag,StationStart,StationEnd,CityStart,CtityEnd,DateSign,TransportType,WaybillType,SettleType,ShipperName,StationRevenue,CreateStation,NewCityEnd

改变日期格式alter table WaybillsBak2 alter column CreateDate date;

去重复求和

select RevenueMonth,sum(ChargedWeight)ChargedWeight

from 月收益和业务量

group by  RevenueMonth

插入insert into 月收益 (ChargedWeight)

select sum(ChargedWeight)ChargedWeight

from 月收益和业务量

group by  RevenueMonth

 

创建表

create table 月业务量(

RevenueMonth date ,

ChargedWeight decimal(18,4)

)

插入删除记录Alter table 月收益 add ChargedWeight decimal(18,4) 

Alter table 月收益 drop column ChargedWeight

 

从另一个表中复制记录

insert into月收益(ChargedWeight) select ChargedWeight,,, from月业务量

 

表之间的连接select * from 月收益 left join  月业务量 on 月收益.RevenueMonth=月业务量.RevenueMonth

计数select ShipperAccount,count(1) from 客户信息1 group by ShipperAccount

时间运算Create table 流失客户(

ShipperAccount nvarchar (50)

)

insert into  流失客户

SELECT  ShipperAccount 

FROM 最后交易时间

WHERE ShipperAccount IN

(SELECT ShipperAccount

FROM 最后交易时间

WHERE CreateDate <'2016-01-01' )

根据表查询表

insert into 流失客户详细信息 

select *

from 客户详细信息,流失客户

where 客户详细信息.ShipperAccount =流失客户.ShipperAccount

添加字段

alter table 流失客户全部信息 add 客户类型 nvarchar(50)

update 流失客户全部信息 set 客户类型='流失' 

最后时间

select f. kehu, f.riqi , A.jine from ( select kehu, max(riqi) riqi from A group by kehu ) f, A where f.kehu = A.kehu and f.riqi = A.riqi

创建表select * into 新表 from 旧表 where 1<>1;

时间运算

insert into 表一城市1

select CityStart,CtityEnd,sum(ChargedWeight)ChargedWeight, 

convert(varchar, convert(datetime, datediff(SS, DateSign,CreateDate )/convert(decimal,86400)), 8),

count(1),sum(RevenueAmount )RevenueAmount 

from WaybillsBak0 

group by CityStart,CtityEnd, DateSign,CreateDate

?替换 Update 客户行为 SET 客户类型 = REPLACE(客户类型, 'NULL', '未流失') 

时间戳select  ( DATEDIFF(S,'1970-01-01 00:00:00', ArriveDatetime) - 8 * 3600  )- (DATEDIFF(S,'1970-01-01 00:00:00',PlanDatetime) - 8 * 3600)  

from Transport1

时间差select cast(floor(datediff(minute,PlanDatetime ,ArriveDatetime) / 1440) as varchar)+'天'+

       cast(floor((datediff(minute,PlanDatetime ,ArriveDatetime) % 1440)/60) as varchar)+'小时'+ 

       cast(((datediff(minute,PlanDatetime ,ArriveDatetime))-

           (floor(datediff(minute,PlanDatetime ,ArriveDatetime) / 1440) *1440)-

           (floor((datediff(minute,PlanDatetime ,ArriveDatetime) % 1440)/60)*60)) as varchar)+'分'

 from Transport1

在一个字段中存在但另一个字段中没有insert into 新增

select * from 客户信息  where  not exists (select * from 未流失客户 where 客户账号=未流失客户.ShipperAccount )

根据条件改变字段值

update 客户展示信息 set 客户展示信息.流失情况 = 未流失客户.流失情况

 from 客户展示信息 inner join 未流失客户 on 客户展示信息.ShipperAccount = 未流失客户.ShipperAccount

汇总出现次数select distinct count(*) ,重泡标识,客户账号

from 客户流失预测 group by 客户账号,重泡标识 order by 客户账号

取最大select  max(汇总),客户账号

from 重泡标识 group by 客户账号

字段中重复值取一个

select *  

from ( 

    select *, row_number() over (partition by [客户账号] order by [客户账号]) as group_idx  

    from 重泡标识2

) s

where s.group_idx = 1

替换空值

select *,isnull(站点类型,'其他') from 站点展示信息

清除内容

truncate table 月收益和月业务量

修改列名

alter table gps_data2 change i NO double DEFAULT NULL;

添加ID号(非序号)

set @a=0;

select *, @a:=@a+1 as ID

FROM `gps_data2`;

日期转时间戳

SELECT *,UNIX_TIMESTAMP(a.LocationTime) as Time

 FROM `gps_data3` a;

转换数据类型

select a.NO,a.LocationTime,

 CAST(Time AS decimal(10,0))as LocationTime1,a.Longitude,a.Latitude,a.Distance

FROM gps_data_0 a

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值