PRIMARY KEY约束与 FOREIGN KEY约束创建

主键PRIMARY创建:

格式1:
CREATE TABLE <表名>
(
<列名1> 数据类型  PRIMARY KEY,
<列名2> 数据类型
)

如:创建表g1并且设置g_id为主键

CREATE TABLE g1(
g_id CHAR(6) PRIMARY KEY,
g_name VARCHAR(20)
)

格式2:

CREATE TABLE <表名>
(
<列名1> 数据类型  ,
<列名2> 数据类型 ,
.....,
CONSTRAINT 约束名 PRIMARY KEY(列或者列的组合)
)

如:创建表stu 定义主键为s_id

CREATE TABLE stu
(
s_id  CHAR(10) ,
s_name VARCAHR(30) ,
s_sex CHAR(2),
CONSTRAINT pk PRIMARY KEY(s_id)
)

FOREIGN KEY 约束
创建时的FOREIGN KEY约束:

CREATE TABLE <表名>
(
<列名> 数据类型 REFERENCES <被引用的表名> (被引用的列名)

例:

CREATE TABLE Types
(
t_id CHAR(2) PRIMARY KEY,
t_Name VARCAHR(2)
)
CREATE TABLE goods
(
g_id CHAR(6) ,
g_Name VARCHAR(30) ,
t_id CHAR(2) REFERENCES Types(t_id)
)
//goods的外键引用的Types的t_id必须为Types的主键,
一个表可以有多个外键,每个外键是每个引用表的主键。

修改添加外键约束:

ALTER TABLE <表名>
ADD CONSTRAINT <约束名> FOREIGN KEY (字段名) REFERENCES <被引用的表名> (被引用的列名)

例:

ALTER TABLE goods
ADD CONSTRAINT fg_t_id FOREIGN KEY (t_id)
REFERENCES Types(t_id)

CHECK例子:
关于LENGTH:
DataLength()函数返回的是字符串字节的长度,包含后缀空格。而Len()函数返回的是字符串的字符长度,不包含后缀的空格。
设置Customers表的c_CarID的长度只能为15或者18位

ALTER TABLE Customers ADD CONSTRAINT
ck_CarID CHECK(len(c_CarID)=15 OR len(c_CarID=18)) //限定了输入字符长度为15或者18

电子邮箱中(e-Email)必须包含“@”符号

ALTER TABLE Customers ADD CONSTRAINT
ck_email CHECK ([c_E-mail] LIKE '%@%')

UNIQUE 约束 : 确保列中不输入重复值来保证数据的完整性
创建UNIQUE

CREATE TABLE <表名>
(....
<列名> 数据类型 UNIQUE,
...)

修改设置UNIQUE约束

ALTER TABLE <表名>
ADD CONSTRAINT <约束名> UNIQUE (字段)

//使用sp_help <表名>查看到约束名

SQL约束名创建与修改添加相关推荐

  1. mysql中创建表并添加约束_创建表并添加约束

    --创建学生表并创建约束 create table Student ( StuNo int identity(1,1) primary key(StuNo),     --identity:自增列pr ...

  2. sqlsever2019:SQL视图的创建与修改

    一.前言 前面的基础造作我已经讲过用界面方式创建,这里主要是介绍SQL创建. ctrl+s保存: 二.创建视图 创建查询Student数据表中所有记录的视图view2: use db_Test go ...

  3. MySQL默认库可以删_个人总结:Sql(一:创建删除修改库表||附:mysql数据类型及默认值)...

    个人总结:Sql(一:创建&删除&修改库&表||附:mysql数据类型及默认值)createdatabasecreate tablealterdatabasealtertabl ...

  4. SQL Server语句创建表

    今天介绍一下如何使用SQL Server语句创建表并添加数据 首先先了解一下表的模式,在数据库中根据模式进行分组避免表名称的冲突 在SQL Server 2014中直接新建表是默认的前缀dbo 而命名 ...

  5. 数据库——MySQL(一)(数据库常用命令、数据类型、创建表与修改表结构、约束、约束修改添加)

    MySQL数据库的概述: MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库信息增.删.查.改管理 - ...

  6. 数据库(概念、语法、DBMS、SQL语言:创建数据库、表格,添加、修改、删除数据记录)...

    关系型数据库:以表作为实体,以主键和外键关系作为联系的一种数据结构. 主键:在关系型数据库中,用一个唯一的标识符来标志每一行,这个标识符就是主键.主键有两个特点:非空和不能重复. 外键:在关系型数据库 ...

  7. sql在已创建的表上添加约束

    有时候我们需要在创建好的sql表上对一些列添加约束,可以这么做: 在一个已创建的表的 "Age" 字段中添加 NOT NULL 约束如下所示: ALTER TABLE Person ...

  8. Mysql的基础使用之SQL原生语句的使用:表的 创建 删除 修改 (一)

    上一篇主要讲的是关于Mysql的分支MariaDB在Linux下的安装 顺利安装完成的小伙伴,就可以接着来试试SQL的魅力了 红色为命令 蓝色为自定义名 查看数据库 MariaDB [(none)]& ...

  9. SQL Server触发器创建、删除、修改、查看

    http://blog.csdn.net/tianwailaibin/article/details/8111766 本教程为大家介绍SQL Server触发器创建.删除.修改.查看方法. 一.触发器 ...

最新文章

  1. Centos7如何开启端口
  2. java mysql failover_MySQL MMM 双主在Failover时挂起
  3. 获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)
  4. python 用递归求质数_编写一个递归函数,它接受和整数,如果它的所有数字都是质数,则返回“True”...
  5. 数据结构与算法 / 霍夫曼树、霍夫曼编码和解码
  6. 从NetBeans运行和调试WildFly Swarm应用程序
  7. 影响PoE交换机不稳定的因素
  8. 根据id获取多维数组路径_程序员的进阶课-架构师之路(2)-数组
  9. C#任务调度——LimitedConcurrencyLevelTaskScheduler
  10. Custom Basic Authentication for IIS
  11. 数据结构折半查找例题_山东2011专升本计算机专业数据结构练习题 - 图文
  12. [AST实战]从零开始写一个wepy转VUE的工具
  13. 更快的 Chrome?谷歌正在测试“永不变慢”模式
  14. SCM供应链协同管理系统解决方案
  15. 消防工程师 10.1 火灾自动报警系统-组成和工作原理
  16. python字符串介绍_python字符串详解
  17. android 移动拼图效果实现
  18. JZOJ 1266. 玉米田
  19. 酷派大观4 8970 刷android 4.4,极速达百兆! 移动4G版酷派大观4网络体验
  20. php ssl 465,帝国CMS邮件无法发送 SSL465端口无法发送的问题解决办法

热门文章

  1. 知否?知否?顶尖券商这样应对数据挑战
  2. Java对象类型向上转型和向下转型
  3. 设置 电脑开机自启动 选中软件(CMD)
  4. java中如何启动一个新的线程三种方法
  5. 最新WordPress全开源艺术主题Artblog模板
  6. 轩辕传奇服务器合并信息,4月28日部分服务器数据互通公告
  7. C# Firebird SQL 语句带参数书写
  8. 京东数科确认陈生强将出任副董事长,李娅云接替其CEO职位
  9. 「造轮子」一个文件上传靶场知识总结记录
  10. 如何快速学习操作PS软件的高效技巧