SQL语句随笔记录

SQL基础语句

	根据列名插入
INSERT INTO 表名称 (1,2,...) VALUES (1,2,....)
	插入值与表设计字段顺序一致
INSERT INTO 表名称 VALUES (1,2,....)
	从A表数据插入到B表
insert into B (字段1,字段2)  select 字段1,字段2 from A
	修改表字段
UPDATE 表名称 SET 列名称1 = 新值1,列名称2 = 新值2,…… WHERE 列名称 = 某值
	删除数据
DELETE FROM 表名称 WHERE 列名称 =

Sqlserver

  • 列转行:为转换前
select * from V_WATER_ZX_AUTOMONI_WATERDATA_MONTH

在这里插入图片描述

  • 列转行后
  • 关键字:unpivot
  • POLLUTE_NAME :需要列转行的字段
  • in(TN,TP,NH3_N,COD):列转行需要包括的值
  • POLLUTE_VALUE :转换前的值,可随意命名,取值时保持一致即可
 select POINT_NAME,a.POLLUTE_NAME,a.POLLUTE_VALUE
 from BYNEDC_SHARE.dbo.V_WATER_ZX_AUTOMONI_WATERDATA_MONTH 
 unpivot(POLLUTE_VALUE for POLLUTE_NAME in(TN,TP,NH3_N,COD))a

在这里插入图片描述

MD5加密字段

Select upper(SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES('MD5',加密字段)),3,32))

关联表update 字段值

Update1 set name=L.name,
	BCRQ=l.BCRQ,sjnf=l.SJNF from1
inner join2 L on iid=L.bimid

根据某个特定字符的位置截取

  • 关键字:charindex
  • charindex(‘元’,字段):‘元’这个字段出现的索引位置
  • substring(字段,开始位置,截取的长度)
select substring(字段,charindex('元',字段)+1,
				charindex('室',字段)-charindex('元',字段)-1) 
fromwhere 字段like '%单元%室%'

删除重复数据,保留ID最小的那条

delete fromwhere MATCH_NAME in (
	--查询出重复数据
	select MATCH_NAME fromwhere MATCH_TYPE ='hbsp' 
	group by MATCH_NAME having count(*) > 1
) 
--过滤掉这条数据
and MATCH_CODE not in (
	--查询重复数据中 ID  最小的那条
	select min(MATCH_CODE) fromwhere MATCH_TYPE ='hbsp' 
	group by MATCH_NAME having count(*)>1
)
and MATCH_TYPE ='hbsp'

Oracle

科学计数法转化为数值型

select to_char( to_number(字段)) from 表名

查询数据库的使用记录

select * from v$sql_history

MySQL

创建用户并开通相关权限

ahld:用户名
ahld_123:用户密码
%:可连接IP地址,%表示任意IP地址
testdb.*:testdb库下的所有表

*.*:所有库的所有表
create user 'ahld'@'%' identified by 'ahld_123'; 

仅开通表的查询权限给’ahld’ 用户
select 可替换成其他权限:insert, update, delete,create ,alter ,drop
全部权限:all
也可一次性给多个权限

grant select on 表名 to 'ahld'@'%';  
grant select, insert, update, delete on testdb.* to 'ahld'@'%'

关于grant权限总结的很好的文章,借鉴学习下:https://www.cnblogs.com/yunfeioliver/p/7887676.html

表关联update字段

update1,2
set1.字段=2.字段
where1.字段=2.字段

日期处理函数

YEAR(日期字段):获取日期字段中的年

concat(字段1,字段2):合并两个字段成一个字段

datediff(日期1,日期2):计算2个日期间相差的天数

date_format(日期,'%Y-%m-%d'):格式化日期为 2020-10-10形式

TIMESTAMPDIFF(hour, b.data_time, a.data_time)=60:计算2个时间之间的差数
			  hour 可换成:day/month/minute/year
			  
DATE_SUB(日期,interval 24 hour):获取日期的前 24小时 
						  hour可换成:day/month/minute/year
						  
DATE_FORMAT(date_sub( 字段, INTERVAL dayofweek(字段)- 2 DAY ),
			'%Y-%m-%d') :获取该日期 所在周的第一天日期

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值