MySQL视图索引基础练习

表定义

学生表:Student (Sno, Sname, Ssex , Sage, Sdept)
学号,姓名,性别,年龄,所在系 Sno为主键

课程表:Course (Cno, Cname,)
课程号,课程名 Cno为主键

学生选课表:SC (Sno, Cno, Score)
学号,课程号,成绩 Sno,Cno为主键

练习

1.用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是 “计算机”。

mysql> create table Student(-> Sno int primary key comment '学号',-> Sname varchar(50) unique comment '姓名',-> Ssex enum('男','女') comment '性别',-> Sage int comment '年龄',-> Sdept varchar(50) default '计算机' comment '所在系'-> );
Query OK, 0 rows affected (0.03 sec)mysql> desc Student;
+-------+-------------------+------+-----+-----------+-------+
| Field | Type              | Null | Key | Default   | Extra |
+-------+-------------------+------+-----+-----------+-------+
| Sno   | int               | NO   | PRI | NULL      |       |
| Sname | varchar(50)       | YES  | UNI | NULL      |       |
| Ssex  | enum('男','女')    | YES  |     | NULL      |       |
| Sage  | int               | YES  |     | NULL      |       |
| Sdept | varchar(50)       | YES  |     | 计算机    |       |
+-------+-------------------+------+-----+-----------+-------+
5 rows in set (0.04 sec)

在这里插入图片描述

2.修改student 表中年龄(age)字段属性,数据类型由int 改变为smallint。

mysql> alter table Student modify Sage smallint;
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> desc Student;
+-------+-------------------+------+-----+-----------+-------+
| Field | Type              | Null | Key | Default   | Extra |
+-------+-------------------+------+-----+-----------+-------+
| Sno   | int               | NO   | PRI | NULL      |       |
| Sname | varchar(50)       | YES  | UNI | NULL      |       |
| Ssex  | enum('男','女')    | YES  |     | NULL      |       |
| Sage  | smallint          | YES  |     | NULL      |       |
| Sdept | varchar(50)       | YES  |     | 计算机    |       |
+-------+-------------------+------+-----+-----------+-------+
5 rows in set (0.00 sec)

在这里插入图片描述

3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX 。

mysql> create table SC(-> Sno int comment '学号',-> Cno int comment '课程号',-> Score int comment '成绩',-> primary key SC_INDEX(Sno,Cno)-> );
Query OK, 0 rows affected (0.03 sec)mysql> desc SC;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| Sno   | int  | NO   | PRI | NULL    |       |
| Cno   | int  | NO   | PRI | NULL    |       |
| Score | int  | YES  |     | NULL    |       |
+-------+------+------+-----+---------+-------+
3 rows in set (0.00 sec)

在这里插入图片描述

4.创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。

(1)创建课程表:

mysql> create table Course(-> Con int comment '课程号',-> Cname varchar(50) comment '课程名'-> );
Query OK, 0 rows affected (0.05 sec)mysql> desc Course;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Con   | int         | YES  |     | NULL    |       |
| Cname | varchar(50) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

在这里插入图片描述

(2)给学生表、课程表、学生选课表插入数据

a.学生表(Student)
mysql> insert into Student values -> (1, '张三', '男', 20, '计算机'),-> (2, '李四', '女', 22, '计算机'),-> (3, '王五', '男', 21, '数学'),-> (4, '赵六', '女', 23, '数学'),-> (5, '孙七', '男', 24, '英语');
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0\mysql> select * from Student;
+-----+--------+------+------+-----------+
| Sno | Sname  | Ssex | Sage | Sdept     |
+-----+--------+------+------+-----------+
|   1 | 张三   ||   20  | 计算机     |
|   2 | 李四   ||   22  | 计算机     |
|   3 | 王五   ||   21  | 数学       |
|   4 | 赵六   ||   23  | 数学       |
|   5 | 孙七   ||   24  | 英语       |
+-----+--------+------+------+-----------+
5 rows in set (0.00 sec)

在这里插入图片描述

b.课程表(Course)
mysql> insert into Course values (1, '云原生'),(1, '云原生'),(2, '高等数学'),(2, '高等数学'),(3, '英语');
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0mysql> select * from Course;
+------+--------------+
| Con  | Cname        |
+------+--------------+
|    1 | 云原生        |
|    1 | 云原生        |
|    2 | 高等数学      |
|    2 | 高等数学      |
|    3 | 英语         |
+------+--------------+
5 rows in set (0.01 sec)

在这里插入图片描述

c.学生选课(SC)
mysql> insert into SC values (1, 1, 90),(2, 1, 85),(3, 2, 92),(4, 2, 88),(5, 3, 95);
Query OK, 5 rows affected (0.03 sec)
Records: 5  Duplicates: 0  Warnings: 0mysql> select * from SC;
+-----+-----+-------+
| Sno | Cno | Score |
+-----+-----+-------+
|   1 |   1 |    90 |
|   2 |   1 |    85 |
|   3 |   2 |    92 |
|   4 |   2 |    88 |
|   5 |   3 |    95 |
+-----+-----+-------+
5 rows in set (0.00 sec)

在这里插入图片描述

(3)创建stu_info视图。

mysql> create view v_S_SC_C as -> select distinct Sname 姓名,Ssex 性别,Cname 课程名,Score 成绩 from Student S -> inner join SC on S.Sno = SC.Sno -> inner join Course C on SC.Cno = C.Con;
Query OK, 0 rows affected (0.04 sec)mysql> desc v_S_SC_C;
+-----------+-------------------+------+-----+---------+-------+
| Field     | Type              | Null | Key | Default | Extra |
+-----------+-------------------+------+-----+---------+-------+
| 姓名      | varchar(50)       | YES  |     | NULL    |       |
| 性别      | enum('男','女')   | YES  |     | NULL    |       |
| 课程名    | varchar(50)       | YES  |     | NULL    |       |
| 成绩      | int               | YES  |     | NULL    |       |
+-----------+-------------------+------+-----+---------+-------+
4 rows in set (0.03 sec)mysql> select * from v_S_SC_C;
+--------+--------+--------------+--------+
| 姓名   | 性别   | 课程名       | 成绩   |
+--------+--------+--------------+--------+
| 张三   || 云原生       |     90 |
| 李四   || 云原生       |     85 |
| 王五   || 高等数学     |     92 |
| 赵六   || 高等数学     |     88 |
| 孙七   || 英语         |     95 |
+--------+--------+--------------+--------+
5 rows in set (0.00 sec)

在这里插入图片描述

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

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

相关文章

Android 布局菜鸟 android中的布局类型和特点?

一、LinearLayout(线性布局) 1、 特点: 主要以水平或垂直方式来排列界面中的控件。并将控件排列到一条直线上。在线性布局中,如果水平排列,垂直方向上只能放一个控件,如果垂直排列,水平方向上也只能放一个控件。 2、适⽤场景: Android开发中最常见的 ⼀种布局⽅式,排列…

CUDA tips

命令行查看核函数消耗的寄存器和共享内存数量 nvcc --ptxas-options-v reduce_sum.cu nvprof 使用 由于 8.0 及以上计算能力的显卡用不了 nvprof,官方建议用 nsight system 和 ncu,但是如果只想命令行打印表格查看 kernel 概况感觉还是 nvprof 方便&am…

Android 系统启动过程纪要(基于Android 10)

前言 看过源码的都知道,Launcher系统启动都会经过这三个进程 init ->zygote -> system_server。今天我们就来讲解一下这三个进程以及Launcher系统启动。 init进程 准备Android虚拟机环境:创建和挂载系统文件目录;初始化属性服务&…

微信小程序canvas画布绘制文字自动换行

关键步骤介绍: text为需要绘制的文本,通过换行符将text分割为words数组。 basic_height为第一行文本的高度。 get_canvas_row函数根据行宽限制将输入文本转化为不同的行,实现见下文。 text_size为设置的文本高度,htext_size*j…

SAP银企直联报错排查方法与步骤-F110

银企直联的报错排查经常需要利用F110来查询。方法步骤如下: 1、首先要确定报错是哪天的,并且当天那一次跑的付款建议。需要通过表 REGUH来确认(跟据供应商编码、日期) 2、通过REGUH表的信息知道了是2024年1月16号第5个标识(也就是第五次跑付…

Mac OS系统 SVN客户端 smartSVN 安装和基础使用

一、下载SVN客户端 官网地址,可以根据自己的系统下载 https://www.smartsvn.com/download/ 二、安装客户端和激活 第一步安装,很简单。 第二步,激活,选择激活文件 创建一个许可文件,例如 smartSvn.license。 内容如…

搜维尔科技:SenseGlove Nova 2力反馈技术手套,虚拟培训的沉浸感达到新高度!

SenseGlove Nova 2-虚拟培训的沉浸感达到新高度! 通过集成主动接触反馈,Nova 2 使用户能够在手掌中感知虚拟现实物体的感觉。虚拟训练、研究和多人互动现在感觉比以往更加自然。这项创新增强了与整个手掌接触的任何虚拟物体的真实感。使用第一款也是唯一…

el-date-picker组件设置时间范围限制

需求: 如图所示,下图为新增的一个弹层页面,同时有个需求,日期选择需要限制一个月的时间范围(一月默认为30天): 查看官方文档我们需要主要使用到如下表格的一些东西: 参数说明类型可…

Spring Cloud 微服务中 gateway 网关如何设置健康检测端点

主要是为了让 k8s 识别到网关项目已经就绪,但是又不想在里面通过 Controller 实现。因为在 Controller 中这样做并不是最佳实践,因为 Gateway 的设计初衷是专注于路由和过滤,而不是业务逻辑的处理。 在 Gateway 中配置健康检查端点可以通过以…

uniapp 实现tabBar-switchTab之间的传参

一、需求: tabbar之间跳转页面时,需要传递一个参数。 官方文档明确说明: 跳转tabBar栏的页面只能使用 uni.switchTab 并且url 路径后面不能传递参数。 二、解决方法: 方法1:setStorageSync(本地缓存) //index.vue 页 onclick …

最佳实践分享:SQL性能调优

SQL性能调优是一个需要不断探索和实践的过程,旨在确保数据库查询的高效运行。本文将分享一些SQL性能调优的最佳实践,帮助您提升数据库性能,减少查询响应时间。 一、索引优化 索引是提高查询性能的关键。以下是一些关于索引优化的建议&#…

使用 Apache POI 更新/覆盖 特定的单元格

使用 Apache POI 更新特定的单元格 一. 需求二. 实现三. 效果 一. 需求 将以下表中第4行,第4列的单元格由“张宇”更新为“汤家凤”,并将更行后的结果写入新的Excel文件中; 二. 实现 使用Apache POI,可以精确定位到需要更改的单…

22/76-池化

池化(最大池化层:选每个kernel中最大的数) 填充、步幅、多个通道: 池化层与卷积层类似,都具有填充和步幅。 没有可学习的参数。 在每个输入通道应用池化层以获得相应的输出通道。 输出通道数输入通道数。 平均池化层…

4、操作系统概述、进程管理

文章目录 操作系统1、操作系统的作用2、操作系统的分类3、操作系统的功能4、操作系统的特征5、计算机的启动流程进程管理进程的组成进程的状态前趋图进程资源图阻塞节点非阻塞节点:同步与互斥互斥同步临界资源临界区互斥信号量同步信号量信号量P操作V操作生产者和消费者死锁产生…

LeetCode、2336. 无限集中的最小数字(中等,小顶堆)

文章目录 前言LeetCode、2336. 无限集中的最小数字题目链接及类型思路代码题解 前言 博主所有博客文件目录索引:博客目录索引(持续更新) LeetCode、2336. 无限集中的最小数字 题目链接及类型 题目链接:2336. 无限集中的最小数字 类型:数据…

VC++中使用OpenCV对原图像中的四边形区域做透视变换

VC中使用OpenCV对原图像中的四边形区域做透视变换 最近闲着跟着油管博主murtazahassan,学习了一下LEARN OPENCV C in 4 HOURS | Including 3x Projects | Computer Vision,对应的Github源代码地址为:Learn-OpenCV-cpp-in-4-Hours 视频里面讲…

CharacterEncodingFilter详解

CharacterEncodingFilter详解 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入研究一个在Web开发中扮演着重要角色的工具——CharacterEncodingFilter…

ChatGPT新出Team号 年付费

之前一直传的团队版ChatGPT终于来了,这个对拼单的比较合算。每人每月25美元,只能按年支付。 团队版比普通版多的权益有: ◈更多的GPT-4消息上限,三小时100次。 ◈可以创建与团队内部共享的GPTs。 ◈用于工作空间管理的管理员控…

圈小猫游戏HTML源码

源码介绍 圈小猫游戏html源码,HTMLCSSJS,记事本可以打开修改内容,电脑本地双击index.html即可运行,也可以上传到服务器上面运行,喜欢的同学可以拿去使用 下载地址 蓝奏云:https://wfr.lanzout.com/iFkVc1lb5akj CS…