Mysql数据库身份证统计sql数据库加密等操作

这篇博客介绍了如何在MySQL数据库中对重要字段进行加解密操作,特别是在处理身份证信息时。同时,文章还涉及根据时间戳进行数据分段统计的方法,满足特定用户需求,包括用户ID、注册信息、身份证性别判断等。
摘要由CSDN通过智能技术生成

时间:2020年8月18日16:46:52


select * from(

	-- 用户信息
	select * from(

	select u.id,from_unixtime(u.c_time),from_unixtime(u.last_login_time),
	ua.available_total_money,
	CASE WHEN p.is_novice = 1
		THEN up.money
		ELSE 0 end new_invest
	from sl_user u
	left join sl_user_account ua on u.id = ua.user_id
	left join sl_user_plan up on up.user_id = u.id
	left join sl_plan p on p.id = up.plan_id
	where p.is_novice = 1 and up.status > -1
	) dd

	left join 

	-- 充值-投资金额
	(
	select aa.user_id,aa.top_money,bb.plan_money from (
	select user_id,sum(money) top_money from sl_top_up
	where status = 2 and pay_type=9 
	group by user_id) aa

	left join 

	(select user_id,sum(money) plan_money from sl_user_plan
	where status > -1 
	group by user_id) bb on aa.user_id = bb.user_id
	)ee on dd.id = ee.user_id
) qq

right join 

-- 匹配
(
	select user_id,sum(ten),sum(ten1),sum(ten2),sum(ten3),sum(ten4) from
	(
	select uc.user_id,uc.coupon_id,uc.money,uc.sn,up.money invest_money,
	CASE WHEN coupon_id = 16
		THEN up.money
		end ten,
	CASE WHEN coupon_id = 17
		THEN up.money
		end ten1,
	CASE WHEN coupon_id = 18
		THEN up.money
		end ten2,
	CASE WHEN coupon_id = 19
		THEN up.money
		end ten3,
	CASE WHEN coupon_id = 20
		THEN up.money
		end ten4
	from promote_user_coupon uc
	left join sl_user_plan up on uc.sn = up.sn
	where uc.is_avail= 2 and uc.coupon_id in (16,17,18,19,20)
	)bb group by user_id
)ww on qq.user_id = ww.user_id


-- ----------------------------------------------------------------------
-- 1.红包

select user_id,sum(ten),sum(ten1),sum(ten2),sum(ten3),sum(ten4) from
	(
	select uc.user_id,uc.coupon_id,uc.money,uc.sn,up.money invest_money,
	CASE WHEN coupon_id = 16
		THEN up.money
		end ten,
	CASE WHEN coupon_id = 17
		THEN up.money
		end ten1,
	CASE WHEN coupon_id = 18
		THEN up.money
		end ten2,
	CASE WHEN cou
SQL中,创建视图通常用于组织数据、简化复杂的查询或隐藏部分细节。以下是创建视图的基本步骤,并简要说明如何在MySQL中对敏感信息如身份证字段进行加密: **创建视图(View)步骤:** 1. 使用 `CREATE VIEW` 语句,语法如下: ```sql CREATE VIEW view_name AS SELECT column1, column2, ..., column_n FROM table_name [WHERE condition] [GROUP BY column] [HAVING condition] [ORDER BY column]; ``` 这里,`view_name` 是你要创建的视图名称,`table_name` 是基础表名,你可以选择需要展示的列。 **对身份证字段加密(示例以MySQL为例):** 在MySQL中,数据库本身并不直接提供对单个字段的加密功能。通常,数据存储在加密后的形式(如哈希)上,查询时不再显示明文。对于身份证这样的敏感信息,一种常见的做法是在插入时将其转换为哈希值并存储,查询时也只返回哈希结果。这涉及到两个操作加密和储存。 ```sql -- 创建一个包含哈希函数的字段 ALTER TABLE table_name MODIFY COLUMN id_column_hash CHAR(64) NOT NULL; -- 插入数据时进行哈希处理 INSERT INTO table_name (id_column, id_column_hash) VALUES ('your_id', MD5('your_id')); -- 查询时不直接显示明文ID,只显示哈希值 SELECT id_column_hash FROM table_name; ``` 注意:这种操作仅能保证数据传输过程中的安全性,如果要在应用层面解密,就需要保存一个对应的安全密钥或算法,而这不是标准的SQL操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值