1,设置主键的sql的三种方式

a、字段名 int primary key

b、字段名 int constraint 主键名 primary key clustered(字段名)

c、创建表是,后置一句:constraint 主键名 primary key clustered【聚集索引】(字段名)

2,给两个字段创建索引的语句

constraint 主键名 primary key clustered(字段名1,字段名2)---只要两个字段的值不相同即可

一个表只能创建一个主键,一个主键可以包含多个列,主键不能为null也不能重复,主键会自动创建为聚集索引。

3,一个数据库里的主键名不能相同

查看数据库主键的sql

select * from sys.Objects where type='pk'

---为已经存在的表增加主键 alter table 表名 add constraint 主键名 primary key clustered(列名)

---删除主键的sql alter table 表名 drop constraint  主键名

4,创建唯一键

a,创建表时,字段名 数据类型 后面跟 constraint uq_唯一键名 unique nonconstered【非聚集索引】(字段名)

注意的几点:唯一键允许一行数据的值为空,唯一键默认创建非聚集索引unique最多可以有249个。

查看数据库唯一键的sql

select * from sys.Objects where type='uq'

5,check约束

例如年龄大于0的约束:创建表时 列名 数据类型 constraint check_约束名 check(sage>0)

例如性别只能是男或女:constraint check_约束名 check (sex in('男','女'))

例如手机号码:constraint check_smobile check (smobileNO like '[1][34578][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')

---通配符

%表示可以匹配0个或多个字符

_表示匹配一个字符

例如是邮箱:constraint check_email check (semail like '%_[@]%_[.]%_')

[]这个包括的表示一个字符,其中有多个字符的话,只要是其中的一个字符就行

6,外键

创建外键的sql,先创建一个表的字段例如是sno

再创建另外一个表是,如果这个表的sno是第一个表的外键

sql:列名 数据类型 constraint fk_外键名 foreign key(sno)references 第一个表的(sno)

外键在主表中的数据不能重复,不管是主键还是唯一键都可以作为其它表的外键

sql server创建表相关的更多相关文章

  1. SQL Server 创建表分区

    原文:SQL Server 创建表分区 先准备测试表 CREATE TABLE [dbo].[Employee] ( EmployeeNo ,) PRIMARY KEY, EmployeeName ) ...

  2. SQL Server创建表超出行最大限制解决方法

    问题的现象在创建表A的时候,出现“信息 511,级别 16,状态 1,第 5 行  无法创建大小为 的行,该值大于允许的最大值 8060.”的信息提示.很奇怪,网上查了一下,是因为要插入表的数据类型的 ...

  3. SQL Server 创建表

    SQL Server 创建表 我们在上一节中完成了数据库的创建,在本节,我们要往这个新的数据库中加入点数据,要想将数据添加到数据库,我们就必须在数据库中添加一个表,接下来来看看具体的操作. 我们的数据 ...

  4. SQL Server 创建表 添加主键 添加列常用SQL语句

    --删除主键 alter table 表名 drop constraint 主键名 --添加主键 alter table 表名 add constraint 主键名 primary key(字段名1, ...

  5. SQL Server 创建表 添加主键 添加列常用SQL语句【转】

    --删除主键alter table 表名 drop constraint 主键名--添加主键alter table 表名 add constraint 主键名 primary key(字段名1,字段名 ...

  6. SQL SERVER创建表

    创建表 create table table_name ( column_name_1 data_type, column_name_2 data_type NOT NULL, column_name ...

  7. Sql Server 创建表添加说明

    http://bbs.csdn.net/topics/340184487 在此感谢 提供参考 CREATE TABLE ToPayFee (    Id INT IDENTITY(1,1) PRIMA ...

  8. SQL server 创建表,索引,主键,外键

    if object_id('student', 'U') is not null drop table student go create table student( sno varchar(20) ...

  9. sql server系统表和视图相关的语句

    一.系统表 数据字典的详细信息请查SQL SERVER BOL,这里仅列出一部分. 1.1.sysservers 1.查看所有本地服务器及链接服务器 select * from master..sys ...

随机推荐

  1. CSS去除链接虚线(兼容IE6、IE7)

    在css里加入以下代码: a{    hide-focus: expression( this.hideFocus=true );    outline: none;}

  2. Codeforces Round #253 (Div. 1) A. Borya and Hanabi 暴力

    A. Borya and Hanabi Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/442/p ...

  3. CSS Sprites图片处理

    简介: CSS Sprites是一个网页图片处理方式,在国内都叫CSS精灵,css Sprites允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像 ...

  4. windows 32位系统中进程最大可用内存空间为3GB (转)

    http://msdn.microsoft.com/zh-cn/library/ms189334.aspx 进程地址空间 所有 32 位应用程序都有 4 GB 的进程地址空间(32 位地址最多可以映射 ...

  5. Beautyacticle

    Original: https://github.com/rizhilee/Beautyacticle Backup: https://github.com/eltld/Beautyacticle

  6. iOS开发——开发必备OC篇&UITableView设置界面完整封装(三)

    UITableView设置界面完整封装(三) 简单MVC实现UITableView设置界面之界面跳转 创建一个需要调整的对应的控制器 在需要调整的类型模型中创建对应的属性用来实现调整类型控制器的设置 ...

  7. Perl 小知识之多行匹配

    如果想匹配多行文本(即文本中有换行符)中的内容,比如: aaa ... bbb ... 要匹配aaa和bbb之间的内容,我们可以使用 /aaa.*bbb/s 其中/s修饰符可以让.匹配任何字符,包括换 ...

  8. 好记心不如烂笔头之JQuery学习,第四章

    ---恢复内容开始--- JQuery中的事件和动画 JQuery中的事件: $(document).ready()该事件和JS中的window.load类似,但是window.load中需要等待所有 ...

  9. 23+ Useful HTML5 Open Source Online Video Players & Libraries,

    Akamai’s Open Video Player for HTML5 <video> Akamai has released a new Open Video Player for H ...

  10. ext3文件系统基础

    http://blog.csdn.net/haiross/article/category/1488205/2   block size: 是文件系统最小的单位,Ext2/Ext3/Ext4 的区块大 ...