当前位置: 首页 > news >正文

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

相关文章:

【ZZULI】数据库第二次实验

【ZZULI】数据库第二次实验 创建学生信息管理系统的数据库通过T-SQL语句创建学生表、课程表、选课表创建学生表创建课程表创建选课表 修改表结构。为SC表添加写的列,列名为备注修改备注列的数据长度。删除SC表的备注列。 通过T-SQL语句对表的列添加约束,…...

Javaee---多线程(一)

文章目录 1.线程的概念2.休眠里面的异常处理3.实现runnable接口4.匿名内部类子类创建线程5.匿名内部类接口创建线程6.基于lambda表达式进行线程创建7.关于Thread的其他的使用方法7.1线程的名字7.2设置为前台线程7.3判断线程是否存活 8.创建线程方法总结9.start方法10.终止&…...

Java后端面试内容总结

先讲项目背景,再讲技术栈模块划分, 讲业务的时候可以先讲一般再特殊 为什么用这个,好处是什么,应用场景 Debug发现问题/日志发现问题. QPS TPS 项目单元测试,代码的变更覆盖率达到80%,项目的复用性高…...

DC-1渗透测试

DC1 五个flag的拿取(截图是五个flag里面的内容) 注意事项:kali的用户名:root 密码:kali 注意:DC1 只要开机服务就起来了 思路:信息收集—> 寻找漏洞—> 利用漏洞(sql注入,文件上传漏洞…...

深度剖析:电商 API 接口如何成就卓越用户体验

在电商领域的激烈竞争中,提供卓越的用户体验已成为企业脱颖而出的关键。而电商 API 接口在其中扮演着举足轻重的角色,它如同电商平台的神经系统,连接着各个关键环节,为用户带来无缝、高效且个性化的购物之旅。 一、极速响应&#…...

C++调试经验:Ubuntu下CMake链接常见库的方式(持续更新)

目录 1. CMake链接OpenCV库 2. CMake链接VTK库 3. CMake链接Qt库 4. CMake链接PCL库 5. CMake链接Gstreamer 6. CMake链接json-cpp库 7. CMake链接yaml-cpp库 8. CMake链接breakpad库 9. CMake链接Eigen3库 1. CMake链接OpenCV库 find_package (OpenCV 4 REQUIRED)…...

【HarmonyOS】应用实现APP国际化多语言切换

【HarmonyOS】应用实现APP国际化多语言切换 前言 在鸿蒙中应用国际化处理,与Android和IOS基本一致,都是通过JSON配置不同的语言文本内容。在UI展示时,使用JSON配置的字段key进行调用,系统选择对应语言文本内容。 跟随系统多语言…...

使用pandas进行数据分析

文章目录 1.pandas的特点2.Series2.1新建Seriws2.2使用标签来选择数据2.3 通过指定位置选择数据2.4 使用布尔值选择数据2.5 其他操作2.5.1 修改数据2.5.2 统计操作2.5.3 缺失数据处理 3.DataFrame3.1 新建 DataFrame3.2 选择数据3.2.1 使用标签选择数据3.2.2 使用 iloc 选择数据…...

用于无监督域适应的提示分布对齐

论文探讨了视觉语言模型(VLMs)及其在无监督域适应(UDA)中的应用,并引入了一种名为提示分布对齐(Prompt-based Distribution Alignment,PDA)的方法,该方法采用双分支训练策…...

Rust整合Elasticsearch

Elasticsearch是什么 Lucene:Java实现的搜索引擎类库 易扩展高性能仅限Java开发不支持水平扩展 Elasticsearch:基于Lucene开发的分布式搜索和分析引擎 支持分布式、水平扩展提高RestfulAPI,可被任何语言调用 Elastic Stack是什么 ELK&a…...

Linux 文件权限管理:chown、chgrp 和 chmod 的使用及权限掩码规则

目录 文件权限的基本概念 chown:更改文件的拥有者 使用方法 示例 选项 chgrp:更改文件的所属组 使用方法 示例 chmod:更改文件的权限 使用方法 权限表示 选项 权限掩码(umask)规则 如何查看和设置 umask…...

简单记录ios打包流程

1、点击这里获取UDID 2、xcode登录开发者账户、确定唯一id(Bundle ID) 3、去这里注册appid 4、在这里这里创建app 5、之后xcode中打包...

右键以vscode打开目录的时候出现找不到应用程序

出现这个问题的主要原因,大概率可能是因为你移动了vscode的安装路径导致的。 解决办法 打开注册表:通过cmd 打开regedit 然后搜索:计算机\HKEY_CLASSES_ROOT\Directory\Background\shell 这个两个参数可以自己比对一下,主要需要检…...

【Go-Taskflow:一个类似任务流的有向无环图(DAG)任务执行框架,集成了可视化和性能分析工具,旨在简化并行任务的复杂依赖管理】

Go-Taskflow是一个静态有向无环图(DAG)任务计算框架,它受到taskflow-cpp的启发,结合了Go语言的原生能力和简洁性,特别适合于并发任务中复杂的依赖管理。 Go-Taskflow的主要特点包括: 高可扩展性&#xff1…...

排查PHP服务器CPU占用率高的问题

排查PHP服务器CPU占用率高的问题通常可以通过以下步骤进行: 使用top或htop命令:这些命令可以实时显示服务器上各个进程的CPU和内存使用情况。找到CPU使用率高的进程。 查看进程日志:如果PHP-FPM或Apache等服务器进程的日志记录了具体的请求…...

【学术会议论文投稿】“从零到一:使用IntelliJ IDEA打造你的梦幻HTML项目“

【JPCS独立出版】2024年工业机器人与先进制造技术国际学术会议(IRAMT 2024)_艾思科蓝_学术一站式服务平台 更多学术会议请看 学术会议-学术交流征稿-学术会议在线-艾思科蓝 目录 引言:为何选择IntelliJ IDEA? 第一步&#xff1a…...

Win11安装基于WSL2的Ubuntu

1. 概述 趁着还没有完全忘记,详细记录一下在Win11下安装基于WSL2的Ubuntu的详细过程。不得不说WSL2现在被微软开发的比较强大了,还是很值得安装和使用的,笔者就通过WSL2安装的Ubuntu成功搭建了ROS环境。 2. 详论 2.1 子系统安装 在Win11搜…...

如何对pdf文件进行加密?pdf文件加密全攻略与深度解析(5个方法)

如何对pdf文件进行加密? 只见,在深夜的情报局里,特工小李将一份绝密PDF文件放在保险箱内,以为这样就天衣无缝了。 细细推敲,漏洞百出: 如果钥匙被盗呢?如果被神匠破解出密码呢?如果…...

c++面向对象三大特性之一-----多态

前言:本文将介绍在32位平台下,c的多态,通过本篇文章的学习你讲了解多态的原理,多态的底层还有一些不常见的关键字的介绍(final,override). 文章内容如下: 1:多态的概念 2:多态的定义与实现 3:多态的原理 4:抽象类 文章正式开始 1:多态的概念 多…...

8.Linux按键驱动-中断下半部

1.编程思路 1.1在gpio结构体中添加tasklet_struct结构体 1.2在probe函数中初始化tasklet结构体 1.3在中断服务程序中调度tasklet 1.4在这个函数中执行其它任务 2.代码: 应用程序和Makefile和上节一致 https://blog.csdn.net/weixin_40933496/article/details/1…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

12.找到字符串中所有字母异位词

🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

大数据学习(132)-HIve数据分析

​​​​🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言&#x1f4…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…...