SQLServer:表结构、主码、外码、完整性约束和课程作业

表和完整性约束

  • 表的定义以及完整性约束的定义
    • 定义列
    • 定义计算列
    • 定义主关键字(实体完整性约束)
    • 定义外部关键字(参照完整性约束)
      • 删除约束 、更新约束
    • 定义普通约束(用户定义完整性)
    • 表级约束

主码

主码(主关键字,PRIMARY KEY__PK),在码中选择的一个代表,被定义为主码
主码的特点:
1、主码value不得为空
2、构成主码的每个字段不得重复
主属性是构成码的属性
主码属性是构成主码的属性

外码

外码(Foreign key__FK),设有关系表R和W,R中的某个字段FK与W中的主码PK对应,则FK成为W的外码。
外码定义了两个表之间的约束关系,W为主表(被参照表),R为从表(参照表)。

范式描述

1.关键字
2.语法概念
3.元语言符号:[] {} |
4.() 实际符号

表的定义

  • 定义表时,约束条件(完整性约束)分为两种:
    • 对某个字段的约束,成为字段的完整性约束
    • 对整个表的约束,被称为整个表的完整性约束

字段的完整性约束也可以定义成表的完整性约束

  • 一个表由若干列构成,在SQL Server中可以
    • 定义实列(简称列,column_definiton)
    • 定义虚列(即计算列,computed_column_definition)

列的定义

UNIQUE :唯一
若一个字段定义了UNIQUE字段,该字段值不允许重复,但可以为多个null

CHECK
如:CHECK(grade>=0 AND grade<=100)

DEFAULT
设置默认值

ON DELETE CASCADE / ON UPDATE CASCADE
当被参照记录即被参照表被删除/修改时级联删除参照表即从表的记录。

修改表结构

  • 修改表结构
    • 修改列定义
    • 增加新列(含计算列)
    • 增加表级约束
    • 删除列
    • 删除约束

ALTER TABLE

  • 增加字段
  • 删除字段
  • 修改字段类型
  • 增加约束
  • 删除约束

课程作业:

USE 学校管理
GO
CREATE SCHEMA 学校
GO
CREATE TABLE 学校.院系(
编号 INT PRIMARY KEY,
名称 VARCHAR(20) NOT NULL UNIQUE,
负责人 VARCHAR(10),
办公地点 VARCHAR(20)
)
GO
CREATE TABLE 学校.学生(
学号 VARCHAR(8) PRIMARY KEY,
姓名 VARCHAR(10) NOT NULL,
院系 INT FOREIGN KEY REFERENCES 学校.院系(编号),
性别 VARCHAR(2) CHECK (性别 IN ('男' ,'女') ),
生源 VARCHAR(6),
状态 VARCHAR(4) CHECK (状态 IN ('正常','留级','休学','退学') )
)
GO
CREATE TABLE 学校.教师(
教师编号 VARCHAR(8) PRIMARY KEY,
姓名 VARCHAR(10) NOT NULL,
性别 VARCHAR(2) CHECK(性别 IN ('男','女')),
院系 INT FOREIGN KEY REFERENCES 学校.院系(编号),
专业 VARCHAR(10),
职称  VARCHAR(6) CHECK(职称 IN('教授','副教授','讲师','助教'))
)
GO
CREATE TABLE 学校.课程(
课程编号 VARCHAR(8) PRIMARY KEY,
课程名称 VARCHAR(20) NOT NULL,
责任教师 VARCHAR(8) FOREIGN KEY REFERENCES 学校.教师(教师编号),
学时 INT NOT NULL,
课程性质 VARCHAR(10) CHECK(课程性质 IN ('公共基础','专业基础','专业选修','任意选修'))
)
GO
CREATE TABLE 学校.选课(
学号 VARCHAR(8) FOREIGN KEY REFERENCES 学校.学生(学号),
课程编号 VARCHAR(8) FOREIGN KEY REFERENCES 学校.课程(课程编号),
考试成绩 INT CHECK(考试成绩>=0 AND 考试成绩<=100) DEFAULT NULL
)

ALTER TABLE 学校.学生
ADD 平均成绩 INT DEFAULT NULL

ALTER TABLE 学校.课程
DROP COLUMN 学时

ALTER TABLE 学校.课程
ADD 学时 INT NOT NULL CHECK(学时%8=0)

ALTER TABLE 学校.院系
ALTER COLUMN 名称 VARCHAR(30)

ALTER TABLE 学校.教师
ADD 工资 NUMERIC(7,2)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,292评论 0 9
  • MySQL5.6从零开始学 第一章 初始mysql 1.1数据库基础 数据库是由一批数据构成的有序的集合,这些数据...
    星期四晚八点阅读 1,143评论 0 4
  • 回顾和概述 数据类型 整型 浮点型 字符型 日期时间型 数据表操作 如何创建数据表 PRIMARY KEY(主键约...
    齐天大圣李圣杰阅读 700评论 0 0
  • 好看的皮囊千篇一律,有趣的灵魂万里挑一 成功只是一时的狂喜,成长的快乐才是涓涓细流 不要轻易的讨厌别人,一是自己面...
    磐石yy阅读 158评论 0 0
  • 昨天晚上我做了一个很好玩儿的梦,还醒了一次,去上厕所。 这个梦是这样的:我发现,地上有小水珠,我边走着边瞅...
    217_block阅读 495评论 3 4