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. .net MVC 碰到的问题

    1:问:回车会默认会触发页面从左边至右,从上到下索引位置第一的按钮事件.如何取消? 答:在不需要触发按钮事件的按钮中加一个属性:UseSubmitBehavior="false" ...

  2. 搭建Spring + SpringMVC + Mybatis框架之三(整合Spring、Mybatis和Spring MVC)

    整合Spring和SpringMVC 之前已经整合了spring和mybatis,现在在此基础上整合SSM. 项目目录: 思路:SpringMVC的配置文件独立,然后在web.xml中配置整合. (1 ...

  3. 一款基于jQuery的仿百度首页滑动选项卡

    今天给大家分享一款基于jQuery的仿百度首页滑动选项卡.这款选项卡适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览   ...

  4. paip.android 手机输入法制造大法

    paip.android 手机输入法制造大法 作者Attilax ,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/at ...

  5. 关于android:inputType属性的说明

    <EditText android:layout_width="fill_parent" android:layout_height="wrap_content&q ...

  6. jquery的学习

    可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"."fast" 或毫秒.可选的 callback 参数是动画 100% 完成后所执行的函 ...

  7. 【Android 界面效果41】Matrix 与 ColorMatrix

    Matrix: 简单用法就是直接使用它的setXX()方法 而高级一点来理解他就是去理解一个线性矩形 首先我们来认识线性矩形:(用画图粗略地画不要见怪) 分析: 那还有一组 MRERSP_0 MRER ...

  8. Jqeury获取table当前行与指定列

    今天遇到了一个Jqeury获取table当前行与指定列的问题: 大概的实现要求是一个页面中,上面有几个input输入框,下面有一个table,当在输入框中输入内容的时候,点击添加按钮的时候,在下面ta ...

  9. iOS - UI - UISlider

    6.UISlider //滑块   设置高度 UISlider * slider = [[UISlider alloc] initWithFrame:CGRectMake(20, 100, CGRec ...

  10. Oracle基础 存储过程

    一.子程序 子程序是已命名的PL/SQL块,它们存储在数据库中,可以Wie它们指定参数,可以从任何数据库客户端和应用程序中调用它们.子程序包括存储过程和函数. 子程序包括: 1.声明部分:声明部分包括 ...