MySQL 实训作业

news2024/11/23 17:08:39

1、DDL\DML

-- 创建学生表
CREATE TABLE students (
    student_id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    age INT,
    gender VARCHAR(10)
);

-- 创建课程表
CREATE TABLE courses (
    course_id INT PRIMARY KEY AUTO_INCREMENT,
    course_name VARCHAR(50)
);

-- 创建教师表
CREATE TABLE teachers (
    teacher_id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    department VARCHAR(50)
);

-- 创建成绩表
CREATE TABLE grades (
    grade_id INT PRIMARY KEY AUTO_INCREMENT,
    student_id INT,
    course_id INT,
    grade DECIMAL(5, 2),
    FOREIGN KEY (student_id) REFERENCES students(student_id),
    FOREIGN KEY (course_id) REFERENCES courses(course_id)
);

-- 创建授课表
CREATE TABLE teachings (
    teaching_id INT PRIMARY KEY AUTO_INCREMENT,
    teacher_id INT,
    course_id INT,
    FOREIGN KEY (teacher_id) REFERENCES teachers(teacher_id),
    FOREIGN KEY (course_id) REFERENCES courses(course_id)
);

-- 插入学生数据
INSERT INTO students (name, age, gender)
VALUES ('张三', 18, '男'),
       ('李四', 19, '女'),
       ('王五', 20, '男');

-- 插入课程数据
INSERT INTO courses (course_name)
VALUES ('数学'),
       ('英语'),
       ('物理');

-- 插入教师数据
INSERT INTO teachers (name, department)
VALUES ('赵老师', '数学系'),
       ('钱老师', '英语系'),
       ('孙老师', '物理系');

-- 插入成绩数据
INSERT INTO grades (student_id, course_id, grade)
VALUES (1, 1, 85.5),
       (1, 2, 78.0),
       (2, 1, 90.0),
       (2, 2, 88.5),
       (3, 1, 75.0),
       (3, 3, 80.0);

-- 插入授课数据
INSERT INTO teachings (teacher_id, course_id)
VALUES (1, 1),
       (2, 2),
       (3, 3);

2、简单查询

 

 

 

4、多表联合复杂查询

 

 

 

5、er图

6、模型图

 

7、触发器

a、

-- 当插入新学生记录时,自动将其年龄字段的值限制在19至30岁之间。
delimiter$$-- 修改分隔符从;改为$$这样在触发器中;就不会阻断程序了
CREATE TRIGGER validate_age_insert-- 创建触发器
BEFORE INSERT ON students 
FOR EACH ROW-- 每行都要触发这个触发器
begin-- 开始触发器
	if new.age < 19 or new.age > 30 THEN
		SIGNAL SQLSTATE '45000' SET message_text='年龄必须在 19 至 30 岁之间';
	END IF;
END;-- 由于我已将;改为$$所以这里的分号就不会代表结束
$$-- 结束了
delimiter;-- 最后再讲分隔符改回;

 

b、

-- 当删除学生记录时,同时删除其在成绩表中的相关记录
delimiter$$
-- 修改分隔符从;改为$$这样在触发器中;就不会阻断程序了
CREATE TRIGGER delete_student_scores -- 创建触发器
BEFORE DELETE ON students 
FOR EACH ROW-- 每行都要触发这个触发器
begin-- 开始触发器
	DELETE FROM grades WHERE student_id = OLD.student_id;
	-- delete from 表名{where 条件}
END;-- 由于我已将;改为$$所以这里的分号就不会代表结束
$$-- 结束了
delimiter;-- 最后再讲分隔符改回;

 

 

 c、

-- 当教师id发生变更时,显示报错
delimiter$$
-- 修改分隔符从;改为$$这样在触发器中;就不会阻断程序了
CREATE TRIGGER check_teacher_id_change-- 创建触发器
BEFORE UPDATE ON teachers  
FOR EACH ROW-- 每行都要触发这个触发器
begin-- 开始触发器
		IF (OLD.teacher_id!= NEW.teacher_id) THEN 
		SIGNAL SQLSTATE '45000' SET message_text='教师 ID 不允许变更!';
		-- 自定义异常
	END IF;
END;-- 由于我已将;改为$$所以这里的分号就不会代表结束
$$-- 结束了
delimiter;-- 最后再讲分隔符改回;

 

7、存储过程

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WSL Ubuntu安装可视化界面详细指南

首先,你需要先通过wsl安装好Ubuntu系统,本章教程介绍如何安装可视化桌面。 一、下载软件 下载地址:https://www.alipan.com/s/Swd8vzUwsUR 二、配置软件 三、安装xfce sudo apt-get install xfce4四、环境配置</

【力扣】有效的字母异位词

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 给定两个字符串 s …

【Dison夏令营 Day 01】如何用Python写一个游戏“石头剪刀布”

欢迎你们踏入这个充满无限可能性的编程世界&#xff01;作为一名热爱Python的开发者&#xff0c;我深感编程的魅力&#xff0c;并希望与你们一同分享这份乐趣和激情。编程&#xff0c;不仅仅是一种技能&#xff0c;更是一种思维方式和解决问题的工具。在Python的世界里&#xf…

生成器模式详解:用法与示例

目录 生成器模式生成器模式结构生成器模式应用场景生成器模式优缺点练手题目题目描述输入描述输出描述提示信息题解 生成器模式 生成器模式&#xff0c;又称建造者模式&#xff0c;是一种创建型设计模式&#xff0c; 使你能够分步骤创建复杂对象。该模式允许你使用相同的创建代…

UE5的引擎初始化流程

UE5的引擎初始化流程 首先跟着UE的官方文档[1]获取到UE的源代码&#xff0c;然后在参考GitHub上repo的readme&#xff0c;将UE引擎从源码build出来。以Windows平台为例&#xff0c;先找到引擎的入口函数&#xff1a; int32 WINAPI WinMain(_In_ HINSTANCE hInInstance, _In_op…

头歌资源库(17)多机调度问题

一、 问题描述 二、算法思想 首先&#xff0c;将作业按照所需时间从大到小排序。 创建一个长度为m的数组task_time&#xff0c;用来记录每台机器已经加工的作业时间。 从第一个作业开始&#xff0c;依次将作业分配给空闲的机器&#xff0c;并更新task_time数组。 对于每个…

springboot 集成阿里云 OSS

引入依赖 <!-- 阿里云oss依赖 --> <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.9.1</version> </dependency><?xml version"1.0" encoding"…

阿里云centos 7.9 使用宝塔面板部署.netcore 6.0

前言&#xff1a; 我有一个netcore6.0的系统接口和手机端程序的站点程序之前是部署在一台windows测试服务器的IIS站点中&#xff0c; 服务器最近压力太大扛不住了&#xff0c;买了一台centos7.9的阿里云服务器准备进行迁移。具体操作日记如下。 一、安装宝塔面板 这一步涉及…

【人工智能学习之图像操作(二)】

【人工智能学习之图像操作&#xff08;二&#xff09;】 图像上的运算图像混合按位运算 图像的几何变换仿射变换透视变换膨胀操作腐蚀操作开操作闭操作梯度操作礼帽操作黑帽操作 图像上的运算 图像上的算术运算&#xff0c;加法&#xff0c;减法&#xff0c;图像混合等。 加减…

AI进阶指南第五课,大模型相关概念(知识库,微调)

虽然前面大概讲了一下大模型的一些基本概念&#xff0c;但是那些都比较偏向于大模型本身&#xff0c;但是我们使用的时候如果只靠大模型肯定是不行的。 就好比如果一个人只有一个脑子&#xff0c;其他什么部位也没有的话&#xff0c;那场面。&#xff08;感觉现在网上的AI图片…

泰迪智能科技实验室产品-云计算资源管理平台介绍

云计算资源管理平台是一款集群应用程序管理平台&#xff0c;以Docker、Kubernetes为核心引擎的容器化应用部署、运行环境&#xff0c;对数据中心的物理服务器、网络、存储、虚拟服务器等基础架构资源进行集中统一的管理、分配、监控等。平台旨在围绕行业应用逐步由“虚拟化”向…

llama-3 本地化部署实验

国产大模型的API 有限&#xff0c;编写langchain 应用问题很多。使用openai 总是遇到网络问题&#xff0c;尝试使用ollama在本地运行llama-3。结果异常简单。效果不错。llama-3 的推理能力感觉比openai 的GPT-3.5 好。 Ollama 下载 官网&#xff1a;https://ollama.com/downl…

计算机毕业设计hadoop+spark+hive知识图谱医生推荐系统 医生数据分析可视化大屏 医生爬虫 医疗可视化 医生大数据 机器学习 大数据毕业设计

测试过程及结果 本次对于医生推荐系统测试通过手动测试的方式共进行了两轮测试。 &#xff08;1&#xff09;第一轮测试中执行了个20个测试用例&#xff0c;通过16个&#xff0c;失败4个&#xff0c;其中属于严重缺陷的1个&#xff0c;属于一般缺陷的3个。 &#xff08;2&am…

llm学习2--使用embedding和数据处理

首先可以简单了解一下向量数据库相关知识&#xff1a; 向量数据库相关知识&#xff08;搬运学习&#xff0c;建议还是看原文&#xff0c;这个只是我自己的学习记录&#xff09;-CSDN博客 补充&#xff1a; 使用embedding API 文心千帆API Embedding-V1是基于百度文心大模型…

微服务应用与开发知识点练习【Gateway,OpenFeign,Dubbo,RocketMQ和RabbitMQ,JPA,Redis,Mycat】

一、选择题 【Gateway】 1.Spring Cloud Gateway与Nacos整合实现负载均衡时&#xff0c;路由配置中的URI前缀应该是&#xff1f;&#xff08;A &#xff09; A. lb:// B. nacos:// C. http:// D. discovery:// Spring Cloud Gateway与Nacos整合实现负载均衡时&#xff0c…

【Linux系统编程】进程控制(创建、退出、等待、替换)

目录 再聊进程创建 进程终止 进程等待 进程程序替换 再聊进程创建 初识进程创建 关于进程创建&#xff0c;这里只会说结论&#xff0c;在上面这篇文章中对进程创建进行了比较详细的阐述&#xff0c;而接下来要介绍的&#xff0c;都是基于上文说过的来展开的 一些较为重要…

【FFmpeg】avformat_alloc_output_context2函数

【FFmpeg】avformat_alloc_output_context2函数 1.avformat_alloc_output_context21.1 初始化AVFormatContext&#xff08;avformat_alloc_context&#xff09;1.2 格式猜测&#xff08;av_guess_format&#xff09;1.2.1 遍历可用的fmt&#xff08;av_muxer_iterate&#xff0…

Bad owner or permissions on C:\\Users\\username/.ssh/config > 过程试图写入的管道不存在。

使用windows连接远程服务器出现Bad owner or permissions 错误 问题&#xff1a; 需要修复文件权限 SSH 配置文件应具有受限权限以防止未经授权的访问 确保只有用户对该.ssh/config文件具有读取权限 解决方案&#xff1a; 在windows下打开命令行&#xff0c;通过以下命令打开文…

Spring Cloud Alibaba之负载均衡组件Ribbon

一、什么是负载均衡&#xff1f; &#xff08;1&#xff09;概念&#xff1a; 在基于微服务架构开发的系统里&#xff0c;为了能够提升系统应对高并发的能力&#xff0c;开发人员通常会把具有相同业务功能的模块同时部署到多台的服务器中&#xff0c;并把访问业务功能的请求均…

Kubernetes之 资源管理

系列文章目录 Kubernetes之 资源管理 文章目录 系列文章目录前言一、资源管理介绍二、YAML语言介绍 1.1.YAML语法&#xff1a;2.读入数据总结 一、资源管理介绍 在kubernetes中&#xff0c;所有的内容都抽象为资源&#xff0c;用户需要通过操作资源来管理kubernetes。 1. kub…