
数据库中约束一个密码的长度分两种情况,一种是表还未建,在建立过程中约束;另一种是表已存在,在此基础上约束。 工具: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位以上)
给这个表添加一个触发器,触发器类型为插入和更新事务的(inserted|updated),
Create Trigger 触发器名
On 表
For {insert,update}
As
Begin
SQL语句块
End
SQL语句块的基本思想是:
用charindex()函数检查字段里是否包含单引号('),若包含,则事务回滚(rollback),并提示(print……);若不包含,则提交事务(commit)。
比如insert事务:
If(select charindex("'",字段) From 表,inserted
Where 表字段编号=inserted字段编号) > 0
Begin
Rollback
Print “要显示的提示”
End
Else
commit
只是粗略写了一下,完整结构你自己丰富一下吧
数据库中约束一个密码的长度分两种情况,一种是表还未建,在建立过程中约束;另一种是表已存在,在此基础上约束。
工具: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位以上(报错):
定义为char(6),最大容量是为6,不过要求是一定得输入6个数字才行
可以定义check约束为:
(字段名 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]')
列的取值约束为第一个字符为字母可以定义check约束为:
(字段名 LIKE '[A-Z,a-z]%')
如果在查询分析器中可以用:
alter table 表名
add check (字段名 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]')
和
alter table 表名
add check (字段名 LIKE '[A-Z,a-z]%')
T-SQL代码:
ALTER TABLE 表名
ADD CONSTRAINT 约束名 CHECK(列名 LIKE '020%')
例如:
CREATE TABLE Persons
(
P_Id varchar(255) NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Left(P_Id,3)='030')
)
扩展资料:
由于Internet的出现而带来的全球数据访问也同时增加了潜在的安全危险。对于数据库的安全要求决不会比以前更高,而SQL Server70还没有获得任何类型的安全证书。相比之下,Oracle是唯一获得最高认证级别的ISO标准认证的数据库。
Oracle高级的安全特性考虑了强制实施的细小权限,先进的审查,增强的访问控制,安全的分布是处理与复制,以及使用附加的外部签发机制的能力。SQL Server70没有这些特性。
参考资料来源:百度百科-Microsoft SQL Server
以上就是关于在数据库(Sql)中要check 约束一个密码的长度表达式怎么写的全部的内容,包括:在数据库(Sql)中要check 约束一个密码的长度表达式怎么写的、如何给数据库中表的字段添加约束使该字段不存在单引号、在数据库(Sql)中要check 约束一个密码的长度表达式怎么写的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)