zoukankan      html  css  js  c++  java
  • 数据库基本表创建 完整性约束 foreign Key

    理解以下几张表的内容,根据实际情况设计属性名、数据类型、及各种完整性约束(primary key、foreign key、not null、unique、check),用数据定义语言实现,然后设计实验数据验证约束的效果,当操作违反了完整性约束条件时,数据库管理系统是如何处理的。

    1、创建数据库S_T。

    create database S_T
    Use S_T
    

    2、新建一张专业信息表,该表至少包含专业号,专业名称,专业负责人,专业简介等属性,根据以下专业信息为每个属性选择合适的数据类型。

    专业号

    专业名称

    专业负责人

    专业简介

    JK

    计算机科学与技术

    Null

    要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),唯一约束(unique)。

    CREATE TABLE Major(
    	Dno varchar(10) primary key,
    	Dname varchar(20) NOT NULL unique,
    	Dman varchar(20),
    	DDisc text
    );
    

    3、新建一张学生信息表,该表至少包含学号,姓名,性别,出生日期,专业,身份证号,联系方式等属性,根据以下学生信息为每个属性选择合适的数据类型。

    学号

    姓名

    性别

    出生日期

    专业

    身份证号

    联系方式

    09011101

    李彤

    1989-6-5

    JK

    33020319890605234X

    654234

    要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),唯一约束(unique),为性别设置检查约束(check)使该属性只能取“男”或 “女”。

    CREATE TABLE Student(
    	Sno CHAR(8) primary key,
    	Sname CHAR(20) NOT NULL,
    	Ssex CHAR(20),
    	Sbirth datetime,
    	Smajor VARCHAR(10),
    	Sidentity char(18) unique,
    	Stel varchar(11),
    	check (Ssex IN('男','女')),
    	FOREIGN KEY(Smajor) REFERENCES Major(Dno)
    );
    

    4、新建一张课程信息表,该表至少包含课程号,课程名称,学分,开课学期等属性,根据以下课程信息为每个属性选择合适的数据类型。

    课程号

    课程名称

    学分

    开课学期

    10001

    数据库原理

    3

    5

    要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),为学分设置约束使该属性取值范围为1到10之间的整数。

    CREATE TABLE Course(
    	Cno CHAR(5) PRIMARY KEY,
    	Cname VARCHAR(40) NOT NULL, /*不可设置为Unique*/
    	Ccredit SMALLINT,
    	Cbegin SMALLINT,
    	CONSTRAINT C1 CHECK (Ccredit between 1 and 10)	
    );
    

    5、新建一张选课信息表,该表至少包含学号,课程号,成绩,基点等属性,根据以下选课信息为每个属性选择合适的数据类型。

    学号

    课程号

    成绩

    基点

    09011101

    10001

    89

    3.0

    要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),为成绩设置约束使该属性取值范围为0到100之间的整数。为基点设置约束使该属性取值为0或者大于等于1的值。

    CREATE TABLE SC(
    	Sno CHAR(8) primary key,
    	Cno CHAR(5),
    	Grade SMALLINT,
    	GPA float,
    	FOREIGN KEY (Sno) REFERENCES Student(Sno),
    	FOREIGN KEY (Cno) REFERENCES Course(Cno),
    	CONSTRAINT C2 CHECK (Grade between 0 and 100),
    	CONSTRAINT C3 CHECK (GPA =0 OR GPA >=1)
    );

    6、修改学生信息表,选择该表中合适的属性设置外码约束(foreign key),实现表间数据的参考完整性。

    ALTER TABLE STUDENT 
    	ADD CONSTRAINT C4 FOREIGN KEY (Smajor) REFERENCES Major(Dno) ;
    

    7、修改选课信息表,选择该表中合适的属性设置外码约束(foreign key),要求允许级联更新,但不允许级联删除。

    ALTER TABLE SC 
    	ADD CONSTRAINT C5 FOREIGN KEY (Sno) REFERENCES Student(Sno) 
    	ON DELETE NO ACTION
    	ON UPDATE CASCADE;
    
    ALTER TABLE SC 
    	ADD CONSTRAINT C6 FOREIGN KEY (Cno) REFERENCES Course(Cno) 
    	ON DELETE NO ACTION
    	ON UPDATE CASCADE;
    





  • 相关阅读:
    64位windows 7下配置TortoiseGit(转)
    linux中fork函数详解(转)
    Socket通信的Python实现
    Socket
    浅谈CSRF攻击方式(转)
    Burpsuite常用模块详解以及渗透测试上的运用
    大佬内网渗透技巧的独白(思路篇)
    CTFcrackTools-V3
    厂商要知道的漏洞防护措施
    如何运用kali-xplico网络取证分析?点开看看吧
  • 原文地址:https://www.cnblogs.com/xiangyangzhu/p/4239790.html
Copyright © 2011-2022 走看看