當前位置:首頁 » 編程語言 » sql約束只能是數字
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql約束只能是數字

發布時間: 2022-07-07 10:48:49

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))