SQL Server常見的約束條件用法及說明
SQL server常見的約束條件
1.檢查只能是男或者女
Sex in(‘男,女')), Sex =‘男' or sex =‘女')
2.在一個(gè)范圍中間
Sage>0 and sage<120 Sage between 12 and 30
3.長(zhǎng)度大于某個(gè)值
len(pwd)>6) //pwd為密碼字段
4.數(shù)大于某個(gè)值
Sage>1
5.只能是8位字符,前兩位是 0 ,3~4位為數(shù)字,第 5 位為下劃線,6~8位為字母
alter table 表名 字段 like ‘00[0-9][0-9]/_[a-z,A-Z][a-z,A-Z][a-z,A-Z]%' escape ‘/')and(len(字段)=8) 或者是 alter table 表名 字段 like '00[0-9][0-9][_][a-z,A-Z][a-z,A-Z][a-z,A-Z]%'and(len(字段)=8)
6.電子郵箱要含有@符號(hào)
字段like ‘%@%'
7.SQL中用check約束一列的首字母為’s’
c字段 like ‘s%'
8.檢查約束前3位和后8位均為數(shù)字字符:
字段like ‘[0-9][0-9][0-9]%[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
9.如何建立檢查身份證的約束,身份證是18位,最后一位還有可能是X
select 身份證號(hào) from 表名 where len(身份證號(hào)) = 18 and (right(身份證號(hào),17) like '[0-9]'or right(身份證號(hào),17) like ‘x')
10.如何設(shè)置區(qū)號(hào)由0-9之間的數(shù)字組成
字段 LIKE ‘[0-9][0-9][0-9]' or 字段 LIKE '[0-9][0-9][0-9][0-9]'or 字段LIKE ‘[0-9][0-9][0-9][0-9][0-9]'; 解釋: 其中字段 LIKE '[0-9]…[0-9]'的號(hào)碼由表示n位從0到9中的數(shù)組成。 字段 LIKE ‘[0-9][0-9][0-9]' 表示3位的區(qū)號(hào),如北京010;字段 LIKE '[0-9][0-9][0-9][0-9]'表示4位的區(qū)號(hào),如三門峽0398; 字段 LIKE '[0-9][0-9][0-9][0-9][0-9]'表示5位的區(qū)號(hào),如香港00852
11.最后回復(fù)時(shí)間 TLastClickT 發(fā)貼時(shí)間 TTime
最后回復(fù)時(shí)間 必須晚于 發(fā)貼時(shí)間 并且小于等于當(dāng)前時(shí)間 使用GetDate()函數(shù)獲取當(dāng)前時(shí)間
設(shè)計(jì)表
在TLastClickT上右擊 選擇約束,新建,填入 ([TLastClickT] > [TTime] and [TLastClickT] < GetDate())
或者
TiastReply(回帖時(shí)間)大于Ttime(發(fā)帖時(shí)間)在創(chuàng)表的同時(shí)
創(chuàng)建表的時(shí)候應(yīng)該還沒有回帖吧,為什么要用默認(rèn)值?
可以添加一個(gè)約束
alter table topic alter column add check(TlastReply is null or TlastReply > Ttime)
12.定義前八位為數(shù)字或者 -
一共是15位,為CHAR型
字段 like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%') or len(字段)=15)
13.如何限制varchar字段不允許出現(xiàn)單引號(hào)的檢查約束 !??!
設(shè)表為TALBENAME,不能有引號(hào)的字段為FIELDNAME 則:
ALTER TABLE tablename ADD CONSTRAINT CK_fieldname CHECK (not fieldname like ‘%''%')
14.在表中的某列中通過檢查約束,讓其有某些固定的值
check(sid like ‘bd[0-9][0-9][0-9][0-9][0-9][0-9]') add CONSTRAINT ck_num check(num like ‘[1][2] [4][_] [0-9][0-9] [0-9][a-z]')
15.如何限制varchar字段不允許出現(xiàn)字符串的檢查約束 ?。。?/h3>
設(shè)表名為TABLENAME,VARCHAR類型的字段為VAR_FIELD.則有:
ALTER TABLE [dbo].[TABLENAME] ADD CONSTRAINT [CK_TABLENAME] CHECK (isnumeric([VAR_FIELD]) = 1)
這樣,在VAR_FIELD只要出現(xiàn)字段一旦出現(xiàn)非數(shù)字內(nèi)容就會(huì)報(bào)告錯(cuò)誤。
16.電話號(hào)碼的格式必須為xxxx-xxxxxxxx或手機(jī)號(hào)11位
alter 表名 add constraint ck_字段名 check (字段 like ‘[0-9][0-9][0-9][0-9]_[0-9]…' or len(字段)=11)
17.身份證號(hào)是18位且唯一的
alter 表名 add constraint ck_字段名 check (len(字段名)=18 ), constraint uk_字段名 unique(字段名)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
世界杯猜想活動(dòng)的各類榜單的SQL語句小結(jié)
自己網(wǎng)站的世界杯猜想活動(dòng),整理了幾個(gè)排行榜。寫了半個(gè)小時(shí)的SQL,丟了多可惜,放在這里,反正是別人的地盤,不心疼。2010-07-07
什么是數(shù)據(jù)庫 SQL Execution Plan(簡(jiǎn)單介紹)
SQL Execution PlanSQL 執(zhí)行計(jì)劃是數(shù)據(jù)庫管理系統(tǒng)在執(zhí)行SQL語句時(shí),對(duì)如何高效檢索數(shù)據(jù)進(jìn)行的一系列優(yōu)化步驟的描述,這篇文章主要介紹了什么是數(shù)據(jù)庫 SQL Execution Plan,需要的朋友可以參考下2024-03-03
SQLServer 游標(biāo)的創(chuàng)建和使用基本步驟
游標(biāo)主要用于存儲(chǔ)過程、觸發(fā)器或T-SQL腳本中,當(dāng)需要遍歷查詢結(jié)果集中的每一行數(shù)據(jù)并進(jìn)行操作時(shí),游標(biāo)就顯得非常有用,本文給大家介紹SQLServer 游標(biāo)的創(chuàng)建和使用基本步驟,感興趣的朋友一起看看吧2024-08-08
SQLServer2005 按照日期自動(dòng)備份的方法
SQLServer2005如何備份,按照日期自動(dòng)備份2010-07-07
Spark SQL 2.4.8 操作 Dataframe的兩種方式
這篇文章主要介紹了Spark SQL 2.4.8 操作 Dataframe的兩種方式,方式一是通過dsl操作,方式二是利用sql方式操作,每種方式通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-10-10

