临时表、视图与系统函数_Lab2

这篇具有很好参考价值的文章主要介绍了临时表、视图与系统函数_Lab2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

          实验二 临时表、视图与系统函数

实验目的

理解CTE与视图的知识,掌握临时表、CTE与视图的创建与使用方法,能够根据需要创建CTE、视图,掌握视图应用技术,熟悉常用系统函数的应用方法。

实验内容

1、 针对指定的表进行全文检索配置,利用全文检索检索记录。
2、 创建视图。
3、 练习常用系统函数使用方法

实验过程及要求

1、基于派生表或者CTE命令,完成以下操作,并把相应的命令写在空白处。
(1)写出查询学生基本信息的语句,包括学号、姓名、专业班级、本人平均分(score1)、本班平均分(score1)、本人完成学分总计。
(2)查询周四第5节有课的同学的名单,显示学号、姓名、专业班级、课程名。

2、写出以下视图的创建命令,并把命令写在空白处。
(1)查看课程表的视图,显示专业班级、课程名、教室、上课老师姓名
(2)创建学生视图,通过该视图只能更新数据学院的学生信息
(3)查看学生基本信息的视图,包括学号、姓名、性别、年龄、本人电话、班级名称、班导姓名、班导电话

4、 自主练习常用系统函数,理解函数的功能与含义。写出以下命令与结果
(1) 显示系统时间2年3个月后的日期与当年第几周,输出格式为:2023-09-21 38
(2)输出一个基于你的MySQL的UUID
(3)输出你的姓名全拼使用password、rsa、aes加密后的密码。格式如下:
zhangsan
password('zhangsan')=
rsa('zhangsan')=
aes('zhangsan')=


具体实验过程

1. 基于派生表或者CTE命令,完成以下操作,并把相应的命令写在空白处

  (1)查询学生基本信息的语句,包括学号、姓名、专业班级、本人平均分(score1)、本班平均分(score1)、本人完成学分总计

-- 创建一个CTE
WITH student_info AS (
  SELECT ustudent.Sid, ustudent.Sname, ugrade.gname 
    AS
        class, usc.score1, AVG(usc.score1) OVER (PARTITION BY ugrade.gid) 
    AS 
        class_avg, SUM(ucourse.credit) OVER (PARTITION BY ustudent.Sid) 
    AS 
        total_credits
  FROM ustudent
  JOIN ugrade ON ustudent.gid = ugrade.gid
  JOIN usc ON ustudent.Sid = usc.sid
  JOIN ucourse ON usc.cid = ucourse.cid
)

-- 从CTE表中获取信息
SELECT Sid, Sname, class, score1, class_avg, total_credits
FROM student_info;

AVG(usc.score1) OVER (PARTITION BY ugrade.gid) 为窗口函数的用法 partition by 是根据指定的分组

临时表、视图与系统函数_Lab2


  (2)查询周四第5节有课的同学的名单,显示学号、姓名、专业班级、课程名


WITH thursday_schedule AS
(
  SELECT ustudent.Sid, ustudent.Sname, ugrade.gname AS class, ucourse.Cname
  FROM ujobtable
  JOIN ustudent ON ujobtable.gid = ustudent.gid
  JOIN ugrade ON ustudent.gid = ugrade.gid
  JOIN ucourse ON ujobtable.cid = ucourse.Cid
  WHERE ujobtable.week = 4 AND ujobtable.timeseg like '%5%'
)
SELECT Sid, Sname, class, Cname
FROM thursday_schedule;

临时表、视图与系统函数_Lab2



2. 写出以下视图的创建命令,并把命令写在空白处

  (1)查看课程表的视图,显示专业班级、课程名、教室、上课老师姓名

CREATE VIEW course_schedule_view AS
SELECT ugrade.gname AS class, ucourse.Cname, ujobtable.room, uteacher.tname AS teacher_name
FROM ujobtable
JOIN ugrade ON ujobtable.gid = ugrade.gid
JOIN ucourse ON ujobtable.cid = ucourse.Cid
JOIN uteacher ON ujobtable.tid = uteacher.tid;

临时表、视图与系统函数_Lab2

  (2)创建学生视图,通过该视图只能更新数据学院的学生信息

CREATE VIEW student_update_view AS
SELECT *
FROM ustudent
WHERE gid IN (SELECT gid FROM ugrade WHERE did = 'CS');

临时表、视图与系统函数_Lab2


  (3)查看学生基本信息的视图,包括学号、姓名、性别、年龄、本人电话、班级名称、班导姓名、班导电话


CREATE VIEW student_info_view AS
SELECT ustudent.Sid, ustudent.Sname, ustudent.Ssexy AS gender, 
        YEAR(CURDATE()) - YEAR(ustudent.Sbdate) AS age, 
        ustudent.stele AS personal_phone,ugrade.gname AS class,
       homework.uteacher.tname AS class_teacher, homework.uteacher.tele AS class_teacher_phone
FROM ustudent
JOIN ugrade ON ustudent.gid = ugrade.gid
JOIN ujobtable ON ustudent.gid = ujobtable.gid
JOIN homework.uteacher ON ujobtable.tid = homework.uteacher.tid;

临时表、视图与系统函数_Lab2


4. 自主练习常用系统函数,理解函数的功能与含义。写出以下命令与结果

  (1)显示系统时间2年3个月后的日期与当年第几周,输出格式为:2023-09-21 38

select DATE_ADD(DATE_SUB(curdate(), INTERVAL 2 YEAR ),INTERVAL 3 MONTH)
     , WEEK(CURDATE()) AS CurrentWeek;

临时表、视图与系统函数_Lab2

  (2)输出一个基于你的MySQL的UUID

SELECT UUID() AS generated_uuid;

临时表、视图与系统函数_Lab2

  (3)输出你的姓名全拼使用password、rsa、aes加密后的密码

格式如下:
zhangsanpassword('zhangsan')= PASSWORD('zhangsan')
rsa('zhangsan')= RSA_ENCRYPT('zhangsan', 'encryption_key')
aes('zhangsan')= AES_ENCRYPT('zhangsan', 'encryption_key')


AES加密算法

SET @KEY = 'JGe7aPAMNiS1x6BI';
SET @iv = 'Z84HIR7znTEMLkOI';
SET @input = 'chengwenhao';

SELECT CONCAT('aes(\'', @input, '\')=', TO_BASE64(AES_ENCRYPT(@input, @KEY, @iv))) AS encrypted_data;

临时表、视图与系统函数_Lab2


chengwenhao
password('chengwenhao')=65d564571e22ddc831e6bd156359ea792693310897102b0f6f7fbde11bdb4fd2
rsa('chengwenhao')=LKL800BZNJUJlpVP7YypfxZIcPQlvOs737qsJwsk8NVjkZXhDqdRDnDycdqkYYEk/agW+hTz07m42Srzv9yIJrSehusdxedZYAtaTqZgHcySJRYa0ClY2rP6js4SKIA5275KfAqAF/kKvhnVtgjbnsWFzUsKnt+nPdHX7J/KsbL8cNsVqqTomsJYfbv5A95BClPz10iqGTQC98VcT5XgY/cv6ZBmFPCgMOyjJ2gvPygu4pjFn+OqnQuDklDjjYtiWIibG4NdkZhaqBOUnMNyYMOExU4BYgBWXDysToPJI82h1GxmZGkJtKZMXxQ0uJsNHXBJyZ/YKL33ry7544bSAA==
ase('chengwenhao')=uWHq8TEApgsrO3Hz2pqTtg==文章来源地址https://www.toymoban.com/news/detail-710499.html



到了这里,关于临时表、视图与系统函数_Lab2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • lab2 bomblab

    通过下面这个文件可以发现,read_line函数的结果rax放入了rdi寄存器,也就是作为phase_1函数的第一个参数,然后调用了phase_1函数 在phase_1函数中,又将0x402400放入esi寄存器,调用了strings_not_equal函数。 此时rdi寄存器存的是readline函数的结果,esi寄存器存的是一个地址,分别作为

    2024年02月15日
    浏览(34)
  • MIT 6s081 lab2:system calls

    作业地址:Lab: System calls (mit.edu) Add $U/_trace to UPROGS in Makefile add a prototype for the system call to user/user.h , a stub to user/usys.pl , and a syscall number to kernel/syscall.h . The Makefile invokes the perl script user/usys.pl Add a sys_trace() function in kernel/sysproc.c that implements the new system call by remembering its argument

    2024年01月18日
    浏览(40)
  • MIT6.S081 - Lab2: system calls

    step1:系统调用声明 user/user.h :系统调用函数(如 int fork(void) ) step2:ecall 进入内核态 user/usys.S (该文件由 user/usys.pl 生成,后续添加函数可以在这里添加):执行如下命令 将系统调用的编号(在 kernel/syscall.h 中定义)写入 a7 寄存器 从 ecall 进入中断处理函数 step3:保存数据并

    2024年04月23日
    浏览(42)
  • CS144 计算机网络 Lab2:TCP Receiver

    Lab1 中我们使用双端队列实现了字节流重组器,可以将无序到达的数据重组为有序的字节流。Lab2 将在此基础上实现 TCP Receiver,在收到报文段之后将数据写入重组器中,并回复发送方。 TCP 接收方除了将收到的数据写入重组器中外,还需要告诉发送发送方: 下一个需要的但是

    2023年04月25日
    浏览(39)
  • 6.s081/6.1810(Fall 2022)Lab2: System calls

    这个lab主要介绍了用户态到内核态的系统调用做了什么,并让我们照猫画虎完成了两个系统调用的实现。 环境搭建 Lab1: Utilities Lab2: System calls Lab3: Page tables Lab4: Traps Lab5: Copy-on-Write Fork for xv6 官网链接 xv6手册链接,这个挺重要的,建议做lab之前最好读一读。 xv6手册中文版,这

    2024年02月13日
    浏览(53)
  • SCU【C】程序设计基础期末安全项目lab2-Deadbeef-writeup(附题目&源码)

    项目名称 和lab1一样,此题又是美国卡耐基梅隆大学的平时作业哈哈哈 Lab2-Deadbeef (本质:栈溢出攻击) 项目环境  表1   项目开发环境 硬件环境 CPU Intel Core i5,2.4 GHZ 内存 8G 操作系统 Windows 10,Professional版本 开发IDE VS 2022版本 题面: 项目过程和结果的描述 大家都知道函数

    2024年02月19日
    浏览(42)
  • 清华大学操作系统rCore实验-第零章-Lab环境搭建

    一直想动手写一个操作系统,但是没有能力从零开始写,故跟着清华大学操作系统实验,完成这个目标,这一篇文章开始,将进行清华大学操作系统 rCore 实验。本章是环境搭建,有一些个人特色,完成实验的基础上,尝试回答实验后的 编程题 和 问答题 ,如有错误,请大家

    2024年01月19日
    浏览(54)
  • ClickHouse--10--临时表、视图、向表中导入导出数据

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ClickHouse 支持临时表,临时表具备以下特征: 当会话结束或者链接中断时, 临时表将随会话一起消失 。 临时表仅能够使用 Memory 表引擎,创建临时表时不需要指定表引擎。 无法为临时表指定数据库。它

    2024年02月20日
    浏览(35)
  • 操作系统实验 2.3系统调用:linux-0.11-lab “为版本0内核增加一个系统调用getjiffies” 和 “在用户程序中使用新增的系统调用”

    打开 vscode ,在如图所示位置打开 ~/os/linux-0.11-lab/0 文件夹 1.定义getjiffies系统调用 题目中给的提示:进入到 unistd.h 文件中 阅读代码,可以发现上图划线处有个系统调用名为 getpid :返回当前进程号——这与我们期望实现的功能类似:通过系统调用返回jiffies值。 于是此时希望

    2023年04月08日
    浏览(97)
  • ClickHouse(二十一):Clickhouse SQL DDL操作-临时表及视图

      进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 📌订阅:拥抱独家专题,你的订阅将点燃我的创作热情! 👍点赞:赞同优秀创作

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包