【ZZULI】数据库第二次实验

在这里插入图片描述

【ZZULI】数据库第二次实验

  • 创建学生信息管理系统的数据库
  • 通过T-SQL语句创建学生表、课程表、选课表
    • 创建学生表
    • 创建课程表
    • 创建选课表
  • 修改表结构。
    • 为SC表添加写的列,列名为备注
    • 修改备注列的数据长度。
    • 删除SC表的备注列。
  • 通过T-SQL语句对表的列添加约束,选两种约束,每个约束做一个例题
    • 例子1:为SC表的Grade列添加CHECK约束
    • 例子2:为Course表的Cname列添加UNIQUE约束
    • 不同约束的比较

前言:本实验使用的语句是T-SQL

创建学生信息管理系统的数据库

可以图形化形式添加,也可以通过T-SQL语句添加。

CREATE DATABASE StudentManagementSystem;

命令执行结果:

在这里插入图片描述

通过T-SQL语句创建学生表、课程表、选课表

注意这个语句的执行首先要加一条:

USE StudentManagementSystem;

这条语句选择 StudentManagementSystem 数据库作为当前操作的数据库。

也可以手动选择:

在这里插入图片描述

创建学生表

USE StudentManagementSystem;CREATE TABLE Student (Sno     char ( 7 )  PRIMARY KEY,Sname char ( 10 ) NOT NULL,Ssex    char (2), Sage    tinyint ,Sdept   char (20)
)

命令执行结果:

在这里插入图片描述

表的相关属性也可以看见:

  1. 主页点查看,打开对象资源管理器。
    在这里插入图片描述

  2. 打开数据库里面的StudentManagementSystem
    在这里插入图片描述

  3. 打开表中的Students表,前面的dbo.是软件自己加的,右键点开设计,可以看到我们表的属性:
    在这里插入图片描述

创建课程表

USE StudentManagementSystem;CREATE TABLE Course (  Cno         char(10)  NOT NULL  -- 课程编号,主键  , Cname       char(20)  NOT NULL  -- 课程名称  , Ccredit     tinyint              -- 学分,表示课程的学分值  , Semester    tinyint              -- 学期,表示课程开设的学期  , PRIMARY KEY (Cno)                -- 主键约束,确保每个课程编号都是唯一的  
);

命令执行结果:

在这里插入图片描述

课程表的相关属性:

在这里插入图片描述

创建选课表

USE StudentManagementSystem;CREATE TABLE SC (  Sno      char(7)  NOT NULL,  -- 学号,主键的一部分  Cno      char(10) NOT NULL,  -- 课程编号,主键的一部分,外键引用Course表的Cno  Grade    tinyint,            -- 成绩  XKLB     char(4),            -- 选课类别(这个字段的用途可能需要进一步明确)  -- 主键约束,确保学号和课程编号的组合是唯一的  PRIMARY KEY (Sno, Cno),  -- 外键约束,确保学号在Student表中存在  FOREIGN KEY (Sno) REFERENCES Student(Sno),  -- 外键约束,确保课程编号在Course表中存在  FOREIGN KEY (Cno) REFERENCES Course(Cno)  
);

命令执行结果:

在这里插入图片描述

选课表属性:

在这里插入图片描述

修改表结构。

为SC表添加写的列,列名为备注

USE StudentManagementSystem;ALTER TABLE SC  
ADD 备注 varchar(255); -- 新增一个名为“备注”的列,数据类型设为varchar(255)

命令执行结果:
在这里插入图片描述

SC的各个列的情况:

在这里插入图片描述

修改备注列的数据长度。

USE StudentManagementSystem;ALTER TABLE SC  
ALTER COLUMN 备注 varchar(500); -- 将“备注”列的数据类型修改为varchar(500)

命令执行结果:

在这里插入图片描述

SC的各个列的情况:

在这里插入图片描述

删除SC表的备注列。

USE StudentManagementSystem;ALTER TABLE SC  
DROP COLUMN 备注; -- 从SC表中删除名为“备注”的列

命令执行结果:

在这里插入图片描述

成功删除:

在这里插入图片描述

通过T-SQL语句对表的列添加约束,选两种约束,每个约束做一个例题

例子1:为SC表的Grade列添加CHECK约束

假设SC表存储了学生选课及成绩信息,我们希望确保Grade列(代表成绩)中的值在0到100之间(包含0和100)。为此,我们可以添加一个CHECK约束。

T-SQL代码:

USE StudentManagementSystem;-- 添加CHECK约束到Grade列  
ALTER TABLE SC  
ADD CONSTRAINT CK_SC_Grade CHECK (Grade BETWEEN 0 AND 100);

命令执行结果:

在这里插入图片描述

表各个列的情况:

  • 有时候可能没有及时刷新,需要我们刷新一下。

在这里插入图片描述

例子2:为Course表的Cname列添加UNIQUE约束

我们可以确保每门课程的名称(Cname)在数据库中也是唯一的(尽管这在现实世界中可能并不总是合理的,因为可能存在名称相似或相同的课程)。

T-SQL代码:

USE StudentManagementSystem;  ALTER TABLE Course  
ADD CONSTRAINT UQ_Course_Cname UNIQUE (Cname);

命令执行结果:

在这里插入图片描述

在这里插入图片描述

不同约束的比较

以下是主键约束(PRIMARY KEY)、唯一约束(UNIQUE)和检查约束(CHECK)之间的简单比较,以表格的形式呈现:

约束类型主键约束(PRIMARY KEY)唯一约束(UNIQUE)检查约束(CHECK)
唯一性必须唯一,且不允许为空(NULL)必须唯一,但允许一个或多个空值(NULL),具体取决于数据库系统不涉及唯一性,但用于限制列中的值必须满足特定条件
标识性可以作为表的唯一标识,用于唯一地确定表中的一行记录不能作为表的唯一标识,仅用于确保列中的值唯一不能作为表的唯一标识,仅用于数据验证
数量限制每个表只能有一个主键每个表可以有多个唯一约束每个表可以有多个检查约束
自动索引通常会自动创建一个唯一索引也会创建一个唯一索引不一定会自动创建索引,但可以根据需要创建
条件表达式无特定条件表达式,仅要求唯一性和非空性无特定条件表达式,仅要求唯一性可以包含复杂的条件表达式,用于限制列中的值
默认值不能设置默认值(因为主键必须唯一,且不允许为空,所以设置默认值没有意义)可以设置默认值,但需要注意唯一性可以设置默认值,但需要满足检查约束的条件
数据完整性强制数据完整性,确保每条记录都有一个唯一的标识符确保特定列或列组合中的值唯一,有助于维护数据完整性确保列中的值满足特定的业务规则或条件,维护数据的一致性和准确性
应用场景用于唯一标识表中的记录用于确保特定列或列组合中的值唯一用于限制列中的值,以满足特定的业务规则或条件
  • 本人知识、能力有限,若有错漏,烦请指正,非常非常感谢!!!
  • 转发或者引用需标明来源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/458351.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS静态库(.a)及资源文件的生成与使用详解(OC版本)

引言 iOS静态库(.a)及资源文件的生成与使用详解(Swift版本)_xcode 合并 .a文件-CSDN博客 在前面的博客中我们已经介绍了关于iOS静态库的生成步骤以及关于资源文件的处理,在本篇博客中我们将会以Objective-C为基础语言…

实验:使用Oxygen发布大型手册到Word格式

此前,我曾发表过一篇文章《结构化文档发布的故事和性能调优》,文中讨论了在将大型DITA手册转换为PDF格式时可能遇到的性能挑战及相应的优化策略。 近日,有朋友咨询,若将同样的大型手册输出为MS Word格式,是否也会面临…

从0到1,用Rust轻松制作电子书

我之前简单提到过用 Rust 做电子书,今天分享下如何用Rust做电子书。制作电子书其实用途广泛,不仅可以用于技术文档(对技术人来说非常方便),也可以制作用户手册、笔记、教程等,还可以应用于文学创作。 如果…

Python应用指南:利用高德地图API实现路径规划

高德路径规划API是一套基于HTTP协议的接口服务,旨在为开发者提供便捷的路径规划解决方案。该API支持多种出行方式,包括步行、公交和驾车,能够满足不同场景下的路径查询需求。通过调用这些API,用户可以获得从起点到终点的最优路径建…

【Web.路由】——路由原理

这篇文章,我们来讲一讲什么是路由。 路由是 将用户请求地址映射为一个请求委托的过程,负责匹配传入的Http请求,然后将这些请求发送到应用的可执行终结点。 这里需要注意一个内容,发送到应用的可执行终结点。 路由的分类&#x…

大模型落地,要追求极致的务实主义

图源:AI生成 ▎****更快用上最新的大模型,是不是就赢定了? “能够像人类一样操作电脑。”这一堪称革命性的新技能来自10月23日Anthropic最新推出的升级版Claude 3.5 Sonnet模型,据介绍该模型不仅各项性能指标上取得显著提升&…

MobileNetV2实现实时口罩检测tensorflow

项目源码获取方式见文章末尾! 回复暗号:13,免费获取600多个深度学习项目资料,快来加入社群一起学习吧。 **《------往期经典推荐------》**项目名称 1.【Informer模型复现项目实战】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【…

机器学习 - 概述、数据集、Scikit-learn

目录 一、人工智能概述1、概念2、应用领域 二、机器学习1、概念2、数据集的构成3、算法分类a、监督学习b、无监督学习 4、开发流程5、可用数据集总结 三、Scikit-learn1、介绍2、安装3、数据集API介绍4、数据集返回值介绍5、数据集的划分6、数据集划分的API介绍7、案例a、获取鸢…

sass软件数据架构思路——未来之窗行业应用跨平台架构

一、SAAS多商户数据库 1.1 SaaS 多商户数据库的全部商户数据放在一个服务器上 1. 成本效益:集中管理和维护一个服务器通常比维护多个独立服务器更经济,降低硬件、运维和管理成本。 2. 数据集中管理:便于进行统一的数据备份、恢复和数据治理…

高清 MV 无字幕视频素材

在当下的短视频和自媒体时代,高清无字幕的视频素材无疑是创作者们的“得力助手”。不管是用于剪辑情感励志视频、制作搞笑段子,还是创作风景航拍视频,优质的素材库都能让你的创作如虎添翼。今天,我就为大家介绍几个海外的高质量素…

光学计算领域的突破:更快、更高效的光子存储单元

国际电气工程师团队首次开发出一种新的光子内存计算方法,这将在不久的将来使光学计算成为现实。 该团队包括来自匹兹堡大学斯旺森工程学院、加州大学圣巴巴拉分校、卡利亚里大学和东京工业大学(现东京科学大学)的研究人员。他们的研究成果发…

【论文阅读】Reliable, Adaptable, and Attributable Language Models with Retrieval

文章目录 OverviewCurrent Retrieval-Augmented LMsArchitectureTraining Limitations & Future Work Overview Parametic language models的缺点: 事实性错误的普遍存在验证的难度(可溯源性差)难以在有顾虑的情况下排除某些序列适应调整…

web pdf 图片拖动图片合成

web pdf 图片拖动图片合成 先看效果 前端 合成后 1.原理 以前写过相关的帖子,使用的是 canva 但是这次换了一个思路使用的是图片 1.先把pdf转成图片 2.把pdf图片和目标图片传到浏览器 3.原理就和图片合成一样了。见上一篇帖子 4.后端也一样只不过这次是将位置和pd…

LeetCode 107.二叉树的层次遍历 II

题目描述 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[1…

【力扣专题栏】两数相加,如何实现存储在链表中的整数相加?

题解目录 1、题目描述解释2、算法原理解析3、代码编写(原始版本)4、代码编写(优化版本) 1、题目描述解释 2、算法原理解析 3、代码编写(原始版本) /*** Definition for singly-linked list.* struct ListN…

快速上手机器学习-朴素贝叶斯

朴素贝叶斯 引言:本文通过介绍先验概率,后验概率,条件概率计算和贝叶斯定理等概率论内容引入朴素贝叶斯分类算法的基本思路,朴素贝叶斯的最终分类思想是将输入分类给概率最大的类,这也是概率模型算法的共有思想。本文专…

JVM(HotSpot):GC之G1垃圾回收器

文章目录 一、简介二、工作原理三、Young Collection 跨代引用四、大对象问题 一、简介 1、适用场景 同时注重吞吐量(Throughput)和低延迟(Low latency),默认的暂停目标是 200 ms超大堆内存,会将堆划分为…

第12次CCF CSP认证真题解

1、最小差值 题目链接&#xff1a;https://sim.csp.thusaac.com/contest/12/problem/0 100分代码&#xff1a; #include <iostream> #include <algorithm> using namespace std; int main(int argc, char *argv[]) {int n;cin >> n;int a[1010],b[1010];f…

【读书笔记·VLSI电路设计方法解密】问题28:什么是芯片可靠性

一块VLSI芯片不仅需要在前几天、几周或几个月内正常工作,还必须在整个使用寿命内可靠运行。任何用于商业目的的芯片的寿命通常定义为100,000小时或约11.4年。然而,在IC的设计、制造、组装和测试过程中,许多因素可能导致其早期失效。这一芯片开发方面被称为芯片可靠性。测试相…

LinkedList和链表之刷题课(下)

1. 给定x根据x把链表分割,大的结点放在x后面,小的结点放在x前面 题目解析: 注意此时的pHead就是head(头节点的意思) 基本上就是给定一个链表,我们根据x的值来把这个链表分成俩部分,大的那部分放在x后面,小的那部分放在x前面,并且我们不能改变链表本来的顺序,比如下面的链表,我…