㈠ 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—Server中设置一个列的约束只能是八位字符,前两位是0,3-4为数字,第五位是下划线,6-8位是字母。
看图~~~~
㈢ SQL中规定某列值只能是0或者1的约束该怎么写
SQL CHECK约束。
CHECK约束用于限制列中的值的范围。
如果对单个列定义CHECK约束,那么该列只允许特定的值。
如果对一个表定义CHECK约束,那么此约束会在特定的列中对值进行限制。
--删除表
drop table temp;
--创建表
CREATE TABLE temp (flag NUMBER(1));
--增加约束
ALTER TABLE tempADDCONSTRAINTck_temp_flag CHECK
(flag=1 or flag=0);
--测试效果版
insert into temp values(1);
insert into temp values(0);
insert into temp values(1);
--测试效果(约束禁止插入数据),提示权:违反检查约束条件
insert into temp values(2);
insert into temp values(3);
SQL CHECK Constraint on CREATE TABLE。
下面的SQL在"Persons"表创建时为"Id_P"列创建CHECK约束。CHECK约束规定"Id_P"列必须只包含大于0的整数。
My SQL:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)
(3)sql约束只能是数字扩展阅读:
不同数据库的约束写法:
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULLCHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如果需要命名CHECK约束,以及为多个列定义CHECK约束,请使用下面的SQL语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)
SQL CHECK Constraint on ALTER TABLE.
如果在表已存在的情况下为"Id_P"列创建CHECK约束,请使用下面的SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Id_P>0)
如果需要命名CHECK约束,以及为多个列定义CHECK约束,请使用下面的SQL语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
撤销CHECK约束。
如需撤销CHECK约束,请使用下面的SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT chk_Person
㈣ sql server 账户设置检查约束只允许输入数字字符和" -"号 怎样写
这种设置最好在客户端做,
在服务器做,客户端出错的时候,你还要做处理,倒不如做在客户端
㈤ SQL利用check约束语句编写ZIP列 只能是6位的字符数字(邮编必须6位) 请教
在"约束表达式"框中,为
CHECK
约束键入
SQL
表达式。例如,若要将
authors
表中
state
列的输入在数据库关系图中,右击包含约束的表,然后从快捷菜单中选择"约束"命令。
-或-
为将包含约束的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"约束"命令。
选择"新建"命令。"选定的约束"框显示由系统分配的新约束名。系统分配的名称以"CK_"开始,后跟表名。
在"约束表达式"框中,为
CHECK
约束键入
SQL
表达式。例如,若要将
authors
表中
state
列的输入项限制为
New
York,请键入:
state
=
'NY'
或者,若要要求
邮编
列中的输入项为
5
位数字,请键入:
邮编
LIKE
'[0-9][0-9][0-9][0-9][0-9][0-9]'
中间不能有空格
㈥ sql政治面貌要求约束只能填入123
没说明白,123是可以填1或者2或者3,还是只能填123?
如果只能填123很简单,直接把字段默认值为123,比约束更简单和高效
如果是3个数字中的某一个数字,那就只能约束了
最简单的方法,在表设计那里,在相应字段上右键
选择约束,新建,CHECK里填:sex in (1,2,3)
另外注意字段格式,如果是以字符的形式这样('1','2','3')
㈦ 请问SQL语言中 如何限制表格数据字符型 只能出现数字
1.在存插入存储过程中进行校验。
这样,使用存储过程插入数据,这里最常用的方法,可以最大限度地加入限制,报错和纠错功能以及完成其它表的关联操作。
使用起来也很方便:
EXEC TABLENAME_PROC '123456'
--以下是存储过程脚本
create tablename_proc
@field1 varchar(6)
as
if @field1 not like [0-9][0-9][0-9][0-9][0-9][0-9]
begin
reserror('必须是六位数字',16,1
return
end
insert into tablename(field1) values(@field1)
go
2.建表时加入约束:
create tablename(field1 CHECK (FIELD1 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]')
3.建表后给已存在字段添加约束
alter table TABLENAME
with nocheck add constraint TABLENAME_check
check(FIELD1 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]')
㈧ sql2008如何约束指定三个数字,只能输入0.1.2这三个数
建表时直接创建约束
createtable表名
(字段名intcheck(字段名in(0,1,2)))
表已存在后创建
altertable表名addconstraint约束名check(字段名in(0,1,2))