MySQL作业

目录

1.实验需求1:

(1)

(2)

(3)

(4)

(5)

2.实验步骤1:

(1)完成上述实验需求1,需要先创建一个db_sch数据库并且使用数据库。

 (1.1)然后创建一个表:

(1.2) 在表中插入数据:

 (1.3)最后完成上述图片问题

(2)创建的数据库和使用的数据库和上述(1)一样

(2.1)然后创建一个表:

(2.2)在表中插入数据:

(2.3)最后完成上述图片问题

(3)创建的数据库和使用的数据库和上述(1)一样

(3.1)然后创建一个表:

(3.2)在表中插入数据:

(3.3)最后完成上述图片问题

(4)创建的数据库和使用的数据库和上述(1)一样

(4.1)然后创建一个表:

(4.2)在表中插入数据:

(4.3)最后完成上述图片问题

(5)创建的数据库和使用的数据库和上述(1)一样

(5.1)然后创建一个表:

(5.2)在表中插入数据:

(5.3)最后完成上述图片问题

3.实验需求2:

4.实验步骤2:

1.完成上述实验需求2,需要先创建一个db_sch数据库并且使用数据库。

2.然后创建一个数据表:

3.在表中插入数据:

4.最后完成上述的问题

        (1)创建一个可以统计表格内记录条数的存储函数 ,函数名为count_sch()

        (2)创建一个存储过程avg_sai,有3个参数,分别是deptno,job,接收平均工资,功能查询emp表dept为30,job为销售员的平均工资


1.实验需求1:

(1)

 

(2)

(3)

 

(4)

 

(5)

 

2.实验步骤1:

(1)完成上述实验需求1,需要先创建一个db_sch数据库并且使用数据库。

mysql> create database db_sch default  charset=utf8mb4;
Query OK, 1 row affected (0.01 sec)
mysql> use db_sch;
Database changed

 (1.1)然后创建一个表:

mysql> CREATE TABLE tb_user_log (  
    ->     id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',  
    ->     uid INT NOT NULL COMMENT '用户ID',  
    ->     article_id INT NOT NULL COMMENT '视频ID',  
    ->     in_time datetime COMMENT '进入时间',  
    ->     out_time datetime COMMENT '离开时间',  
    ->     sign_in TINYINT DEFAULT 0 COMMENT '是否签到'  
    -> ) CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

(1.2) 在表中插入数据:

mysql> INSERT INTO tb_user_log(uid, article_id, in_time, out_time, sign_in)
    -> VALUES
    -> (101,0,'2021-11-01 10:00:00', '2021-11-01 10:00:42',1),
    -> (102,9001,'2021-11-01 10:00:00', '2021-11-01 10:00:09',0),
    -> (103,9001,'2021-11-01 10:00:01', '2021-11-01 10:01:50',0),
    -> (101,9002,'2021-11-02 10:00:09', '2021-11-02 10:00:28',0),
    -> (103,9002,'2021-11-02 10:00:51', '2021-11-02 10:00:59',0),
    -> (104,9001,'2021-11-02 11:00:28', '2021-11-02 10:00:50',0),
    -> (101,9003,'2021-11-03 11:00:55', '2021-11-03 11:01:24',0),
    -> (104,9003,'2021-11-03 11:00:45', '2021-11-03 11:00:55',0),
    -> (105,9003,'2021-11-03 11:00:53', '2021-11-03 11:00:59',0),
    -> (101,9002,'2021-11-04 11:00:55', '2021-11-04 11:00:59',0);
Query OK, 10 rows affected (0.00 sec)
Records: 10  Duplicates: 0  Warnings: 0

 (1.3)最后完成上述图片问题

mysql> SELECT   
    ->     first_days.first_day AS '日期',  
    ->     CONCAT(ROUND(COUNT(DISTINCT second_days.uid) / COUNT(DISTINCT first_days.uid) * 100, 2), '%') AS '次日留存率'  
    -> FROM (  
    ->     SELECT   
    ->         uid,  
    ->         MIN(DATE(in_time)) AS first_day  
    ->     FROM tb_user_log  
    ->     WHERE DATE(in_time) BETWEEN '2021-11-01' AND '2021-11-30'  
    ->     GROUP BY uid  
    -> ) AS first_days  
    -> LEFT JOIN tb_user_log AS second_days ON first_days.uid = second_days.uid  
    ->     AND DATE(second_days.in_time) = DATE_ADD(first_days.first_day, INTERVAL 1 DAY)  
    -> GROUP BY first_days.first_day  
    -> ORDER BY first_days.first_day;

 

(2)创建的数据库和使用的数据库和上述(1)一样

(2.1)然后创建一个表:

mysql> DROP TABLE IF EXISTS `Orderltems`;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CREATE TABLE IF NOT EXISTS `Orderltems`(
    -> prod_id VARCHAR(255) NOT NULL COMMENT '商品号',
    -> order_num VARCHAR(255) NOT NULL COMMENT '商品订单号',
    -> quantity INT(255) NOT NULL COMMENT '商品数量'
    -> );
Query OK, 0 rows affected, 1 warning (0.00 sec)

(2.2)在表中插入数据:

mysql> INSERT `Orderltems` VALUES('BRO1','a1','105'),('BRO2','a2','1100'),
    -> ('BR02','a2','200'),('BR03','a4','1121'),('BR017','a5','10'),('BR02','a2','19'),
    -> ('BR017','a','75');
Query OK, 7 rows affected (0.00 sec)
Records: 7  Duplicates: 0  Warnings: 0

(2.3)最后完成上述图片问题

mysql> SELECT order_num, prod_id, quantity  
    -> FROM Orderltems  
    -> WHERE prod_id IN ('BRO1', 'BR02', 'BRO3') AND quantity >= 100;

(3)创建的数据库和使用的数据库和上述(1)一样

(3.1)然后创建一个表:

mysql> CREATE TABLE IF NOT EXISTS `Products`(
    -> `prod_id` VARCHAR(255) NOT NULL COMMENT '产品ID',
    -> `prod_name` VARCHAR(255) NOT NULL COMMENT '产品名称'
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> DROP TABLE IF EXISTS `Orderltems`;
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE TABLE IF NOT EXISTS `Orderltems`(
    -> prod_id VARCHAR(255) NOT NULL COMMENT '产品id',
    -> quantity INT(16) NOT NULL COMMENT '商品数量'
    -> );
Query OK, 0 rows affected, 1 warning (0.01 sec)

 

(3.2)在表中插入数据:

mysql> INSERT INTO `Products` VALUES ('a0001','egg'),
    -> ('a0002','sockets'),
    -> ('a0013','coffee'),
    -> ('a0003','cola');
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0


mysql> INSERT `Orderltems` VALUES ('a0001',105),('a0002',1100),('a0002',200),
    -> ('a0013',1121),('a0003',10),('a0003',19),('a0003',5);
Query OK, 7 rows affected (0.00 sec)
Records: 7  Duplicates: 0  Warnings: 0

(3.3)最后完成上述图片问题

mysql> SELECT   
    ->     p.prod_name,  
    ->     COALESCE(SUM(o.quantity), 0) AS quant_sold  
    -> FROM   
    ->     Products p  
    -> LEFT JOIN   
    ->     Orderltems o ON p.prod_id = o.prod_id  
    -> GROUP BY   
    ->     p.prod_name, p.prod_id;

(4)创建的数据库和使用的数据库和上述(1)一样

(4.1)然后创建一个表:

mysql> DROP TABLE IF EXISTS `Customers`;
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> CREATE TABLE IF NOT EXISTS `Customers`(
    -> cust_id VARCHAR(255) NOT NULL COMMENT '客户id',
    -> cust_name VARCHAR(255) NOT NULL COMMENT '客户姓名'
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> DROP TABLE IF EXISTS `Orders`;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CREATE TABLE IF NOT EXISTS `Orders`(
    -> order_num VARCHAR(255) NOT NULL COMMENT '商品单号',
    -> cust_id VARCHAR(255) NOT NULL COMMENT '顾客id'
    -> );
Query OK, 0 rows affected (0.01 sec)

(4.2)在表中插入数据:

mysql> INSERT `Customers` VALUES ('cust10','andy'),('cust1','ben'),
    -> ('cust2' ,'tony'),('cust22','tom'),('cust221','an'),('cust2217','hex'),
    -> ('cust40','ace');
Query OK, 7 rows affected (0.00 sec)
Records: 7  Duplicates: 0  Warnings: 0

mysql> INSERT `Orders` VALUES ('a1','cust10'),('a2','cust1'),('a3','cust2'),
    -> ('a4','cust22'),('a5','cust221'),('a7','cust2217');
Query OK, 6 rows affected (0.01 sec)
Records: 6  Duplicates: 0  Warnings: 0

(4.3)最后完成上述图片问题

mysql> SELECT c.cust_name, o.order_num  
    -> FROM Customers c  
    -> LEFT JOIN Orders o ON c.cust_id = o.cust_id  
    -> ORDER BY c.cust_name ASC;

(5)创建的数据库和使用的数据库和上述(1)一样

(5.1)然后创建一个表:

mysql> DROP TABLE IF EXISTS tb_user_event;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CREATE TABLE tb_user_event(
    -> id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
    -> uid INT NOT NULL COMMENT '用户ID',
    -> product_id INT NOT NULL COMMENT '商品ID',
    -> event_time datetime COMMENT '行为时间',
    -> if_click TINYINT COMMENT '是否点击',
    -> if_cart TINYINT COMMENT '是否加购物车',
    -> if_payment TINYINT COMMENT '是否付款',
    -> if_refund TINYINT COMMENT '是否退货退款'
    -> ) CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

(5.2)在表中插入数据:

mysql> INSERT INTO tb_user_event(uid, product_id, event_time, if_click, 
    ->  if_cart,if_payment, if_refund) VALUES
    -> (101,8001,'2021-10-01 10:00:00',0,0,0,0),
    -> (102,8001,'2021-10-01 10:00:00',1,0,0,0),
    -> (103,8001,'2021-10-01 10:00:00',1,1,0,0),
    -> (104,8001,'2021-10-02 10:00:00',1,1,1,0),
    -> (105,8001,'2021-10-02 10:00:00',1,1,1,0),
    -> (101,8002,'2021-10-03 10:00:00',1,1,1,0),
    -> (109,8001,'2021-10-04 10:00:01',1,1,1,1);
Query OK, 7 rows affected (0.01 sec)
Records: 7  Duplicates: 0  Warnings: 0

(5.3)最后完成上述图片问题

mysql> SELECT   
    ->     product_id,  
    ->     COUNT(*) AS total_events,  
    ->     SUM(if_click) AS total_clicks,  
    ->     SUM(if_cart) AS total_adds_to_cart,  
    ->     SUM(if_payment) AS total_payments,  
    ->     SUM(if_refund) AS total_refunds  
    -> FROM   
    ->     tb_user_event  
    -> WHERE   
    ->     event_time BETWEEN '2021-10-01' AND '2021-10-31'  
    -> GROUP BY   
    ->     product_id  
    -> HAVING   
    ->     total_refunds <= total_events / 2;

3.实验需求2:

 创建表并插入数据:

字段名 数据类型 主键 外键 非空 唯一 自增
        id INT 是 否 是  是 否
        name VARCHAR(50) 否 否 是  否 否
        glass  VARCHAR(50) 否 否 是  否 否


sch 表内容
id name glass
1 xiaommg glass 1
2 xiaojun glass 2

1、创建一个可以统计表格内记录条数的存储函数 ,函数名为count_sch()

2、创建一个存储过程avg_sai,有3个参数,分别是deptno,job,接收平均工资,功能查询emp表dept为30,job为销售员的平均工资

4.实验步骤2:

1.完成上述实验需求2,需要先创建一个db_sch数据库并且使用数据库。

mysql> create database db_sch default  charset=utf8mb4;
Query OK, 1 row affected (0.01 sec)
mysql> use db_sch;
Database changed

2.然后创建一个数据表:

mysql> create table sch(
    -> id int primary key auto_increment,
    -> name varchar(255) not null,
    -> glass varchar(255) not null
    -> );
Query OK, 0 rows affected (0.02 sec)

3.在表中插入数据:

mysql> insert into sch (name, glass) values
    -> ('xiaommg', 'glass 1'),
    -> ('xiaojun', 'glass 2');
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

4.最后完成上述的问题

        (1)创建一个可以统计表格内记录条数的存储函数 ,函数名为count_sch()

mysql> create function count_sch() returns int begin declare i int default 0; select count(1) into i from sch; return i; end//
Query OK, 0 rows affected (0.01 sec)

 

注意:出现下面错误加入(mysql> SET GLOBAL log_bin_trust_function_creators = 1;)命令

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

        (2)创建一个存储过程avg_sai,有3个参数,分别是deptno,job,接收平均工资,功能查询emp表dept为30,job为销售员的平均工资

mysql> delimiter !
mysql> create procedure avg_sal(in deptno int,in job varchar(50),out avg_salary decimal(10, 2))
    -> BEGIN
    -> select avg(salary) into avg_salary from employees where department_id = deptno and job_id = job;
    -> END !
Query OK, 0 rows affected (0.01 sec)

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DAY13--learning English

一、积累 1.jog Riding rollercoaster is even like a daily jog for this man, 对这个男人来说坐过山车甚至就像每天散步一样轻松. 2.admission Admission to guilt. 承认有罪 3.summon I love the guy hes literally summon Karpov into material plane. 我喜欢这家伙他真…

牛牛的猜球游戏

置换群 前缀和 思想 学好线性代数 做这题很有意思&#xff0c;记得多校也有一道置换群的好题&#xff5e; 把多次变换看成一个置换矩阵就好也就是 I (一开始为单位矩阵) ->经过A作用产生了B->经过C作用产生了D 即 CAI D 现在让我们求一下 CI &#xff1f; 两边右…

C++浮点数比较

根据资料&#xff0c;C浮点数计算时存在精度误差&#xff0c;在一些情况下比较浮点数可能应使用特定的比较函数&#xff1b; #include "stdafx.h" #include<iostream>using namespace std;#define EPS 1e-9int main(int argc, char* argv[]) {double a 0.3;do…

利用appium自动控制移动设备并提取数据

安装appium-python-client模块并启动已安装好的环境 安装appium-python-client模块 在window的虚拟环境下执行pip install appium-python-client 启动夜神模拟器&#xff0c;进入夜神模拟器所在的安装路径的bin目录下&#xff0c;进入cmd终端&#xff0c;使用adb命令建立adb…

Klocwork—符合功能安全要求的自动化静态测试工具

产品概述 Klocwork是Perforce公司产品&#xff0c;主要用于C、C、C#、Java、 python和Kotlin代码的自动化静态分析工作&#xff0c;可以提供编码规则检查、代码质量度量、测试结果管理等功能。Klocwork可以扩展到大多数规模的项目&#xff0c;与大型复杂环境、各种开发工具集成…

在k8s上部署ClickHouse

概述 clickhouse的容器化部署&#xff0c;已经有非常成熟的生态了。在一些互联网大厂也已经得到了大规模的应用。 clickhouse作为一款数据库&#xff0c;其容器化的主要难点在于它是有状态的服务&#xff0c;因此&#xff0c;我们需要配置PVC。 目前业界比较流行的部署方式有…

使用pyechart创建基础柱状图

from pyecharts.charts import Bar# 构建柱状图对象 bar Bar()# 添加X轴数据 bar.add_xaxis(["中国","美国","英国"])# 添加Y轴数据 bar.add_yaxis("GDP",[30,20,10])# 绘图 bar.render("基础柱状图.html")效果演示&#x…

Git学习笔记(第6章):GitHub操作(远程库操作)

目录 6.1 远程库操作 6.1.1 创建远程库 6.1.2 命名远程库 6.1.3 本地库推送到远程库(push) 6.1.4 远程库拉取到本地库(pull) 6.1.5 远程库克隆到本地库(clone) 6.2 团队内协作 6.3 跨团队协作 6.4 SSH免密登录 6.1 远程库操作 命令 作用 git remote -v 查看所有远程…

C语言·预处理详解

1. 预定义符号 C语言设置了一些预定义符号&#xff0c;可以直接使用&#xff0c;预定义符号也是在预处理期间处理的 __FILE__ 进行编译的源文件 __LINE__ 文件当前的行号 __DATE__ 文件被编译的日期 __TIME__ 文件被编译的时间 __STDC__ 如果编译器遵循ANSI C&#xff0c;…

正则表达式..

1.字符串的合法检验 现在有一个字符串验证码 我们需要检验其的合法性 什么条件才能够使得字符串合法呢&#xff1f;就是6-10个字符串长度 并且以字母开头 并且其中由字母、数字、下划线构成 那么我们可以先通过自定义的方式进行检验 public class Main {public static void m…

CodeWave智能开发平台--03--目标:应用创建--10初级采购管理系统总结

摘要 本文是网易数帆CodeWave智能开发平台系列的第14篇&#xff0c;主要介绍了基于CodeWave平台文档的新手入门进行学习&#xff0c;实现一个完整的应用&#xff0c;本文主要完成10初级采购管理系统总结 CodeWave智能开发平台的14次接触 CodeWave参考资源 网易数帆CodeWave…

day3:基于UDP模型的简单文件下载

思维导图 tftp文件下载客户端实现 #include <head.h> #define SER_PORT 69 #define SER_IP "192.168.125.223" int link_file() {int sfdsocket(AF_INET,SOCK_DGRAM,0);if(sfd-1){perror("socket error");return -1;}return sfd; } int filedownloa…

luffy商城项目(一)

企业项目类型 # 1 面向互联网用户&#xff1a;商城类项目 -微信小程序商城 # 2 面向互联网用户&#xff1a;二手交易类的 -咸鱼 -转转 # 3 公司内部项目&#xff1a;python写的重点 -oa系统 -打卡系统工资核算系统 -第三方公司做的&#xff1a…

Vue+ElementUI技巧分享:el-table 中实现灵活的文本换行

文章目录 前言一、使用 CSS 选择器实现换行二、使用 HTML 标签和 CSS 类实现换行三、利用数组实现每项数据单独一行四、动态生成带换行文本的表格五、完整代码演示总结 前言 Element UI 是 Vue.js 的一个流行组件库&#xff0c;广泛应用于构建企业级前端界面。在数据密集型的应…

Go语言基础快速上手

1、Go语言关键字 2、Go数据类型 3、特殊的操作 3.1、iota关键字 Go中没有明确意思上的enum&#xff08;枚举&#xff09;定义&#xff0c;不过可以借用iota标识符实现一组自增常亮值来实现枚举类型。 const (a iota // 0b // 1c 100 // 100d // 100 (与上一…

图像比特级置乱加密的安全性

一、概述 Liu等人[1] 提出一种冗余空间转移&#xff08;简称&#xff1a;RST&#xff09;加密算法。RST加密中&#xff0c;用户首先将图像分解为8个位平面&#xff0c;根据位平面置乱秘钥置乱图像的位平面以改变图像的像素值。接着&#xff0c;将位平面置乱图像分块&#xff0…

【第七在线】利用大数据与AI,智能商品计划的未来已来

随着科技的快速发展&#xff0c;大数据和人工智能(AI)已经成为各行各业变革的重要驱动力。在服装行业&#xff0c;这两大技术的结合正在深刻改变着传统的商品计划方式&#xff0c;引领着智能商品计划的未来。 一、大数据与AI在智能商品计划中的角色 大数据为智能商品计划提供了…

go语言(十)---- 面向对象封装

面向对象的封装 package mainimport "fmt"type Hero struct {Name stringAd intLevel int }func (this Hero) Show(){fmt.Println("Name ", this.Name)fmt.Println("Ad ", this.Ad)fmt.Println("Level ", this.Level)}func (thi…

数据结构——Java实现栈和队列

一、栈 Stack 1.特点 &#xff08;1&#xff09;栈是一种线性数据结构 &#xff08;2&#xff09;规定只能从栈顶添加元素&#xff0c;从栈顶取出元素 &#xff08;3&#xff09;是一种先进后出的数据结构&#xff08;Last First Out&#xff09;LIFO 2.具体实现 Java中可…

Python 并发编程

文章目录 Python 并发编程1. 基本概念1.1 CPU 密集型计算1.2 IO 密集型计算1.3 多线程&#xff0c;多进程&#xff0c;多协程的对比1.4 怎么根据任务选择对应的技术&#xff1f; 2. 全局解释器锁 GIL2.1 Python 速度慢的两大原因2.2 GIL 是什么?2.3 为什么有 GIL ?2.4 怎样规…