前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sql server可以定义的约束_数据库常见约束

sql server可以定义的约束_数据库常见约束

作者头像
全栈程序员站长
发布2022-11-08 11:14:42
8930
发布2022-11-08 11:14:42
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

SQL server常见的约束条件

1.检查只能是男或者女

Sex in(‘男,女’)), Sex =‘男’ or sex =‘女’)

2.在一个范围中间

Sage>0 and sage<120 Sage between 12 and 30

3.长度大于某个值

len(pwd)>6) //pwd为密码字段

4.数大于某个值

Sage>1

5.只能是8位字符,前两位是 0 ,3~4位为数字,第 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.电子邮箱要含有@符号

字段like ‘%@%’

7.SQL中用check约束一列的首字母为’s’

c字段 like ‘s%’

8.检查约束前3位和后8位均为数字字符:

字段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 身份证号 from 表名

where len(身份证号) = 18 and (right(身份证号,17) like ‘[0-9]’or right(身份证号,17) like ‘x’)

10.如何设置区号由0-9之间的数字组成

字段 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]’的号码由表示n位从0到9中的数组成。

字段 LIKE ‘[0-9][0-9][0-9]’ 表示3位的区号,如北京010;字段 LIKE ‘[0-9][0-9][0-9][0-9]’表示4位的区号,如三门峡0398; 字段 LIKE ‘[0-9][0-9][0-9][0-9][0-9]’表示5位的区号,如香港00852

11.最后回复时间 TLastClickT 发贴时间 TTime

最后回复时间 必须晚于 发贴时间 并且小于等于当前时间 使用GetDate()函数获取当前时间

设计表

在TLastClickT上右击

选择约束,新建,填入

([TLastClickT] > [TTime] and [TLastClickT] < GetDate())

或者

TiastReply(回帖时间)大于Ttime(发帖时间)在创表的同时

创建表的时候应该还没有回帖吧,为什么要用默认值?

可以添加一个约束 alter table topic alter column add check(TlastReply is null or TlastReply > Ttime)

12.定义前八位为数字或者 –

一共是15位,为CHAR型

字段 like’[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%’) or len(字段)=15)

13.如何限制varchar字段不允许出现单引号的检查约束 !!!

设表为TALBENAME,不能有引号的字段为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字段不允许出现字符串的检查约束 !!!

设表名为TABLENAME,VARCHAR类型的字段为VAR_FIELD.则有:

ALTER TABLE [dbo].[TABLENAME] ADD CONSTRAINT [CK_TABLENAME] CHECK (isnumeric([VAR_FIELD]) = 1)

这样,在VAR_FIELD只要出现字段一旦出现非数字内容就会报告错误。

16.电话号码的格式必须为xxxx-xxxxxxxx或手机号11位

alter 表名 add constraint ck_字段名 check (字段 like ‘[0-9][0-9][0-9][0-9]_[0-9]…’ or len(字段)=11)

17.身份证号是18位且唯一的

alter 表名 add

constraint ck_字段名 check (len(字段名)=18 ),

constraint uk_字段名 unique(字段名)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182472.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL server常见的约束条件
    • 1.检查只能是男或者女
      • 2.在一个范围中间
        • 3.长度大于某个值
          • 4.数大于某个值
            • 5.只能是8位字符,前两位是 0 ,3~4位为数字,第 5 位为下划线,6~8位为字母
              • 6.电子邮箱要含有@符号
                • 7.SQL中用check约束一列的首字母为’s’
                  • 8.检查约束前3位和后8位均为数字字符:
                    • 9.如何建立检查身份证的约束,身份证是18位,最后一位还有可能是X
                      • 10.如何设置区号由0-9之间的数字组成
                        • 11.最后回复时间 TLastClickT 发贴时间 TTime
                          • 12.定义前八位为数字或者 –
                            • 13.如何限制varchar字段不允许出现单引号的检查约束 !!!
                              • 14.在表中的某列中通过检查约束,让其有某些固定的值
                                • 15.如何限制varchar字段不允许出现字符串的检查约束 !!!
                                  • 16.电话号码的格式必须为xxxx-xxxxxxxx或手机号11位
                                    • 17.身份证号是18位且唯一的
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档