当前位置:首页 » 编程语言 » sql联系电话如何限制11位
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql联系电话如何限制11位

发布时间: 2023-07-14 03:16:07

‘壹’ sql server 定义电话号码在0-9之间

使用sql语句。
使用sql语句能实现电话号码限制在数字0-9。
在SQL Server 中,对于基本表的约束分为列约束和表约束。列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其它定义之后,用空格分隔,不必指定列名;表约束与列定义相互独立,不包括在列定义中,通常用于对多个列一起进行约束,与列定义用“,”分隔,定义表约束时必须指出要约束的列的名称。

‘贰’ sql的几个检查约束

电话号码的格式必须为xxxx-xxxxxxxx或手机号11位
alter 表名 add constraint ck_字段名 check (字段 like '[0-9][0-9][0-9][0-9]_[0-9]......' or len(字段)=11)
银行卡前 8位 1010 357 xxxx xxxx 每格4个空一个格
alter 表名 add constraint ck_字段名 check (字段 like '1010 357 [0-9][0-9]...' )
身份证号是18位且唯一的
alter 表名 add
constraint ck_字段名 check (len(字段名)=18 ),
constraint uk_字段名 unique(字段名)
开始开户密码默认为6个8
alter 表名 add constraint df_字段名 default(‘888888’)for 字段名
卡号,外键,可重复索引
开户日期默认为当前日期`
alter 表名 add constraint df_字段名 default(getdate())for 字段名
货币默认为人民币
alter 表名 add constraint df_字段名 default(‘RMB’)for 字段名
余额不能少1元,否则销户
alter 表名 add
constraint ck_字段名 check (字段名>1)
//给你写这么多,可一分都没有???

‘叁’ sql 2000,要求限制电话号码十一位,只能是数字~数据类型char(12),约束表达式怎么写

SQL Server 2000 没有, 就拿个 SQL Server 2005 的来凑个数。
不大清楚 SQL Server 2000 里面,有没有 PATINDEX 函数了。

CREATE TABLE #temp(
test char(12)
CONSTRAINT chk_test
CHECK (
LEN(RTRIM(test)) = 11 AND
PATINDEX('%[^0-9]%', RTRIM(test)) = 0)
);

-- 失败 长度不符合,且是英文
INSERT INTO #temp VALUES ('a');

-- 失败 长度不符合
INSERT INTO #temp VALUES ('1');

-- 失败 长度不符合
INSERT INTO #temp VALUES ('123456789012');

-- 失败 长度符合 但是英文
INSERT INTO #temp VALUES ('1234567890a');

-- 成功
INSERT INTO #temp VALUES ('12345678901');

‘肆’ 利用sql 写一个正则表达式 判断 是否为手机号码 11 位 + 数字... 变量@TelNo

在数据表中加需要约束的那一列的一个约束就行了!表达式如下:
CHECK=([列名] like '13[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
希望我的回答对你有所帮助,谢谢采纳!!

‘伍’ 我现在有一堆电话号码,但是前面都多了几位,我只要保留后11位,在用sql语句怎么做

截取字符啊 subStr(),各种数据库的sql都有这个函数,但函数名字会有差异,自己查一下