在数据库(Sql)中要check 约束一个密码的长度表达式怎么写的?

如题所述

数据库中约束一个密码的长度分两种情况,一种是表还未建,在建立过程中约束;另一种是表已存在,在此基础上约束。

工具:sqlserver 2008 R2

第一种情况(创建表过程中创建约束):

1、语句如下:

create table [user]
(id int,
pwd varchar(20) check (len(pwd) between 6 and 20),--代表密码长度最短为6,最长为20
name varchar(20));

2、创建后,可用长度短于6位的密码,长度在6-20位之间的密码,长度大于20位的密码分别验证。

密码短于6位(报错):

密码在6-20位之间(正常录入):

密码在20位以上(报错):

第二种情况(表已存在,但密码字段上没有约束):

1、用如下语句给表添加密码字段长度约束:

alter table [user] with nocheck add constraint CK_pwd check (len(pwd) between 6 and 20);

2、创建后,可用长度短于6位的密码,长度在6-20位之间的密码,长度大于20位的密码分别验证。

密码短于6位(报错):

密码在6-20位之间(正常录入):

密码在20位以上(报错):

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-31

数据库中约束一个密码的长度分两种情况,一种是表还未建,在建立过程中约束;另一种是表已存在,在此基础上约束。 工具:sqlserver 2008 R2 第一种情况(创建表过程中创建约束): 1、语句如下: create table [user](id int,pwd varchar(20) ch...

什么数据库? 普通的 Oracle , DB2, SQL Server 的话, 简单。 例如: CHECK ( 性别 IN ( '男' , '女', '不明' ) ) 如果是 Mysql 的话, 使用 enum 也就是建表的时候指定。 例如: mysql> CREATE TABLE test_create_tab5 ( -> id INT PRIMARY KEY...

可用check约束来实现。 如,创建测试表: create table test(id varchar(10) check (len(id)>=6));测试方法: 1、插入一个不足6位长的字符,会报如下错误: 2、插入一个大于等于6位长的字符,会提示成功:

ALTER TABLE 表名 ADD CONSTRAINT CK_约束名 CHECK(len(列名)>=6)

年龄 > 18

只能约束位数 CONSTRAINT cCusAbbName CHECK (cCusAbbName LIKE '%[a-zA-Z]%') and LENGTHB(cCusAbbName) > 6)

alter table Table add constraint CN_Column1 check (len(Column1)>6) 替换掉Table和Column1即可

check 约束里面 设置 一般是在表设置列名 后面 写上 check(len(Password)>=6 and len(Password)

检查约束首字母为s: check(col1 like 's%') 检查约束前3位和后8位均为数字字符: check(col2 like '[0-9][0-9][0-9]%[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')

create table aa( ..., pwd varchar(32), ..., check(len(pwd) > 6) --用check约束,pwd字段长度必须要6位以上)

本回答被网友采纳
第2个回答  2013-06-11
举个例子
create table test (pwd int not null);

alter table test
add constraint test_pwd_ck check((len)pwd>6 and (len)pwd<12);

差不多就这样吧 ,不同数据库有点细微的差别 ,仅供参考。
第3个回答  2019-09-28
在数据库中怎样用Check约束int型的4位年份
相似回答