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