check约束表达式怎么写

1.数据库中的CHECK约束的表达式怎样写才能使表中的一列只能取3个值什么数据库?
普通的 Oracle , DB2, SQL Server 的话,简单 。
例如:
CHECK ( 性别 IN ( '男','女','不明' ) )
如果是 Mysql 的话,使用 enum
也就是建表的时候指定 。
例如:
mysql> CREATE TABLE test_create_tab5 (
-> id INT PRIMARY KEY,
-> val VARCHAR(10) NOT NULL,
-> val2 enum ('1', '2', '3', '4', '5')
-> );
Query OK, 0 rows affected (0.08 sec)
mysql> INSERT INTO test_create_tab5(id, val, val2)
-> VALUES(1, 'ERR', 1);
Query OK, 1 row affected (0.03 sec)
mysql>
mysql> INSERT INTO test_create_tab5(id, val, val2)
-> VALUES(8, 'ERR', 8);
ERROR 1265 (01000): Data truncated for column 'val2' at row 1
2.在数据库(Sql)中要check 约束一个密码的长度表达式怎么写的数据库中约束一个密码的长度分两种情况,一种是表还未建,在建立过程中约束;另一种是表已存在,在此基础上约束 。工具: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位以上)
3.sql check 约束 表达式你的语句有问题,首先用like不是这样用的,应该是:check(chk_id like ' 。' or chk_id like ' 。'),其次你不能用like控制长度的吧,like是匹配字符的,不是匹配长度,长度用len,你把这列属性设置为 int,然后check(len(chk_id) in ('18','15'))
具体如下:
create table a_test
(
id int null ,
chk_id int null check(len(chk_id) in ('18','15'))
)
【check约束表达式怎么写】

check约束表达式怎么写

文章插图