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

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

数据库中约束一个密码长度分两种情况,一种是表还未建,在建立过程中约束;另一种是表已存在,在此基础上约束。 工具: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 约束一个密码的长度表达式怎么写的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9763530.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存