sqlserver 电话号3-8位用*号代替

需求:系统在显示的时候需要将用户的手机号码对应位数进行“*”替换,防止非权限用户获取完整的手机号码。

SELECT Phone,REPLACE(Phone,SUBSTRING(Phone,3,6),'******'),SUBSTRING(Phone,3,6),* FROM dbo.ZHKJ_Students WHERE LEN(Phone)=11
在SQL Server中,维护数据的完整性是数据库管理的核心任务之一。为了实现这一点,可以通过定义规则和约束来确保数据满足特定的要求。使用Transact-SQL语句创建规则并应用到表列,可以有效地控制数据的输入格式。 参考资源链接:[SQL Server数据库实验:数据完整性和约束管理](https://wenku.youkuaiyun.com/doc/7f8bafsrwd?spm=1055.2569.3001.10343) 首先,创建规则的目的是为了限制表列中可以接受的数据类型和格式。例如,如果你需要确保某个列只接受特定格式的电话号码,可以使用CREATERULE语句来定义一个规则。以下是创建规则的示例代码: ```sql CREATE RULE phone_rule AS @电话号码 like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' ``` 创建规则后,需要使用sp_bindrule存储过程将规则应用到具体的列上: ```sql EXEC sp_bindrule 'phone_rule', 'stu_phone.电话号码' ``` 这样一来,任何尝试插入或更新`stu_phone`表中的`电话号码`列的操作,都将受到`phone_rule`规则的约束,只有符合规则的数据才能被接受。 然而,规则已被微软官方标记为已弃用,建议使用CHECK约束来代替规则,因为CHECK约束提供了更为强大和灵活的数据校验功能。以下是如何使用CHECK约束来维护数据完整性的示例: ```sql ALTER TABLE stu_phone ADD CONSTRAINT CHK_Phone CHECK (电话号码 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]') ``` 在这个示例中,我们为`stu_phone`表中的`电话号码`列添加了一个CHECK约束,确保该列的值必须符合7的格式。如果有不符合条件的数据尝试插入,SQL Server将拒绝该操作,并返回一个错误。 约束的类型还包括PRIMARY KEY、FOREIGN KEY、UNIQUE和DEFAULT等,它们各有用途,共同作用于数据完整性的维护。例如,PRIMARY KEY约束确保了列中数据的唯一性和非空性,而DEFAULT约束则为列提供了一个默认值,以防未明确提供值。 了解和掌握如何使用这些规则和约束,将帮助你有效地管理SQL Server数据库中的数据完整性。为了深入理解和实践这些概念,建议参考《SQL Server数据库实验:数据完整性和约束管理》一书,其中包含了丰富的实验操作和案例分析,有助于你将理论知识转化为实际操作能力。 参考资源链接:[SQL Server数据库实验:数据完整性和约束管理](https://wenku.youkuaiyun.com/doc/7f8bafsrwd?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值