【新星计划回顾】第二篇学习计划-通过定义变量简单批量模拟数据

news2024/11/15 11:41:25

🏆🏆又到周末,最近这段时间非常忙,虽然导师首次参与新星计划活动已经在4月16日圆满结束,早想腾出时间来好好整理活动期间分享的知识点。
🏆🏆非常感谢大家的支持和活动期间的文章输出,导师也是忙里抽空给大家准备分享的内容,也是尽力了,所以分享的知识点主要是偏向于基础和基本的实战,虽然不是讲解的很系统,但是能够了解到一定的实战信息
🏆🏆期待我们的下次学习,导师将会在6月或者7月再次发起新星计划,本次活动也得到学员和平台的肯定,平台也是非常欢迎导师再次发起新星计划,非常感谢!

目录

  • 1、创建数据库
    • 1.1、鼠标右键数据库选项,点击新建数据库
    • 1.2、命名数据库
    • 1.3、查看数据库
  • 2、命名规范
    • 2.1、驼峰式
    • 2.2、半驼峰
    • 2.3、下划线【本次使用】
  • 3、创建表
    • 3.1、选中my_database数据库
    • 3.2、知识点补充
  • 4、逻辑编写
    • 1.1、定义整型变量
    • 1.2、模拟输出三个班级
    • 1.3、模拟三个课程
    • 1.4、模拟输出学生姓名
      • 1)随机函数
      • 2)输出学生姓名
    • 1.5、模拟输出分数
    • 1.6、模拟输出80人

在这里插入图片描述

1、创建数据库

1.1、鼠标右键数据库选项,点击新建数据库

在这里插入图片描述

1.2、命名数据库

根据自己业务情况取一个自定义数据库名字,比如:my_database
在这里插入图片描述

1.3、查看数据库

在这里插入图片描述

2、命名规范

命名规范:大模块+功能模块+具体功能

2.1、驼峰式

单词首字母大写
比如:StudentScore

2.2、半驼峰

首个单词全小写,其他单词首字母大写
比如:studentScore

2.3、下划线【本次使用】

一般是用于全小写+下划线区分单词
比如:student_score

3、创建表

3.1、选中my_database数据库

选中刚刚创建好的数据库,比如:mu_database,然后再点击【新建查询】,最后复制下面的代码即可创建表
在这里插入图片描述

  • 代码如下
create table student_score
(
    id int identity(1,1) primary key,
    studentName nvarchar(50),
    className nvarchar(50),
    courseName nvarchar(50),
    scoreValue int,
    createTime datetime
)

3.2、知识点补充

1)自增编号
使用identity(1,1),增量和种子

  • 对应可视化界面设置
    在这里插入图片描述
    2)主键
    设置字段为主键的关键词,primary key
  • 对应可视化界面设置
    鼠标右键表字段然后点击设置主键
    在这里插入图片描述

🏆🏆 原则:Write Less Do More!
🍎🍎简介:一只喜欢全栈方向的程序员,专注基础和实战分享,欢迎咨询,尽绵薄之力答疑解惑!

4、逻辑编写

1.1、定义整型变量

定义一个整型变量,并通过while循环遍历输出100内的值

  • 代码
declare @countData int
set @countData=100

while @countData>0 begin
    print(@countData)
    set @countData-=1
end
  • 效果
    在这里插入图片描述

1.2、模拟输出三个班级

  • 代码

declare @classCount int
set @classCount=1
declare @className nvarchar(50)

-- 循环遍历班级
while @classCount<=3 begin
    if @classCount=1 begin
        set @className='一年级'
    end
    else if @classCount=2 begin
        set @className='二年级'
    end
    else begin
        set @className='三年级'
    end

    print(@className)
    set @classCount+=1
end
  • 效果
    在这里插入图片描述

1.3、模拟三个课程

模拟输出每个班级的三个课程,比如:语文、数学、英语

1.4、模拟输出学生姓名

这里需要用到动态生成学生姓名功能

1)随机函数


-- 随机产生整型数字,用于获取姓和名所在下标位置值
select rand()    -- 产生0~1之间的数字,无效接近0和1,但不一定不会等于0和1
select round(rand()*20+1,0)    --产生1到20的整型数值

在这里插入图片描述

2)输出学生姓名

  • 代码

declare @classCount int
set @classCount=1
declare @className nvarchar(50)
declare @courseName nvarchar(50)

-- 定义一个姓氏表变量,表添加两个字段,自增编号和名字
declare @surnameTable table(
    id int identity(1,1) primary key, 
    name nvarchar(10)
)

-- 定义一个名字表变量,表添加两个字段,自增编号和名字
declare @nameTable table(
    id int identity(1,1) primary key, 
    name nvarchar(10)
)

-- 姓和名字
-- 姓氏
insert @surnameTable values
('王'),('李'),('张'),('刘'),('陈'),('杨'),('黄'),('赵'),('周'),('吴'),
('徐'),('孙'),('马'),('胡'),('朱'),('郭'),('何'),('罗'),('高'),('林') 
-- 名称
insert @nameTable values
('芸'),('荷'),('星'),('秋'),('嘉'),('娜'),('珊'),('菲'),('素'),('嫣'),
('慧'),('慕'),('歆'),('巧'),('绮'),('羽'),('静'),('柔'),('采'),('沐'),
('苑'),('姣'),('芳'),('宁'),('沛'),('玥'),('文'),('如'),('悦'),('若'),
('德'),('蕾'),('颜'),('依'),('盼'),('菀'),('秀'),('草'),('莺'),('倩'),
('柳'),('娴'),('彨'),('舒'),('雅'),('淑'),('冉'),('云'),('凝'),('棋')

-- 循环遍历班级
while @classCount<=3 begin
    -- ===年级信息===
    if @classCount=1 begin
        set @className='一年级'
    end
    else if @classCount=2 begin
        set @className='二年级'
    end
    else begin
        set @className='三年级'
    end
    set @classCount+=1
    -- ===/年级信息===

    
     -- 生成名字
    declare @name nvarchar(50)
    declare @nameLength int
    set @nameLength=1+round(rand()*1,0)
    set @name=(select name from @surnameTable where id=round(rand()*20+1,0))
    while(@nameLength>0) begin
        set @name+=(select name from @nameTable where id=round(rand()*20+1,0))
        set @nameLength-=1
    end

    -- ===年级课程===
    -- 语文
    set @courseName='语文'
    print(@className+'>'+@courseName+'>'+@name+'')

    -- 数学
    set @courseName='数学'
    print(@className+'>'+@courseName+'>'+@name+'')

    -- 英语
    set @courseName='英语'
    print(@className+'>'+@courseName+'>'+@name+'')
    -- ===/年级课程===
end
  • 效果
    在这里插入图片描述

1.5、模拟输出分数

模拟数据50~100分之间的学生成绩

  • 代码

declare @classCount int
set @classCount=1
declare @className nvarchar(50)
declare @courseName nvarchar(50)
declare @scoreValue int

-- 定义一个姓氏表变量,表添加两个字段,自增编号和名字
declare @surnameTable table(
    id int identity(1,1) primary key, 
    name nvarchar(10)
)

-- 定义一个名字表变量,表添加两个字段,自增编号和名字
declare @nameTable table(
    id int identity(1,1) primary key, 
    name nvarchar(10)
)

-- 姓和名字
-- 姓氏
insert @surnameTable values
('王'),('李'),('张'),('刘'),('陈'),('杨'),('黄'),('赵'),('周'),('吴'),
('徐'),('孙'),('马'),('胡'),('朱'),('郭'),('何'),('罗'),('高'),('林') 
-- 名称
insert @nameTable values
('芸'),('荷'),('星'),('秋'),('嘉'),('娜'),('珊'),('菲'),('素'),('嫣'),
('慧'),('慕'),('歆'),('巧'),('绮'),('羽'),('静'),('柔'),('采'),('沐'),
('苑'),('姣'),('芳'),('宁'),('沛'),('玥'),('文'),('如'),('悦'),('若'),
('德'),('蕾'),('颜'),('依'),('盼'),('菀'),('秀'),('草'),('莺'),('倩'),
('柳'),('娴'),('彨'),('舒'),('雅'),('淑'),('冉'),('云'),('凝'),('棋')

-- 循环遍历班级
while @classCount<=3 begin
    -- ===年级信息===
    if @classCount=1 begin
        set @className='一年级'
    end
    else if @classCount=2 begin
        set @className='二年级'
    end
    else begin
        set @className='三年级'
    end
    set @classCount+=1
    -- ===/年级信息===

    
     -- 生成名字
    declare @name nvarchar(50)
    declare @nameLength int
    set @nameLength=1+round(rand()*1,0)
    set @name=(select name from @surnameTable where id=round(rand()*20+1,0))
    while(@nameLength>0) begin
        set @name+=(select name from @nameTable where id=round(rand()*20+1,0))
        set @nameLength-=1
    end

    -- ===年级课程===
    -- 语文
    set @courseName='语文'
    set @scoreValue=round(rand()*50+50,0)
    print(@className+'>'+@courseName+'>'+@name+'>'+convert(varchar(10),@scoreValue))

    -- 数学
    set @courseName='数学'
    print(@className+'>'+@courseName+'>'+@name+'>'+convert(varchar(10),@scoreValue))

    -- 英语
    set @courseName='英语'
    print(@className+'>'+@courseName+'>'+@name+'>'+convert(varchar(10),@scoreValue))
    -- ===/年级课程===
end
  • 效果
    在这里插入图片描述

1.6、模拟输出80人

模拟输出每个班级80个人,上次这里逻辑有点问题,已修复

  • 代码

declare @classCount int
set @classCount=1
declare @className nvarchar(50)
declare @courseName nvarchar(50)
declare @scoreValue int
declare @studentCount int
set @studentCount=80

-- 定义一个姓氏表变量,表添加两个字段,自增编号和名字
declare @surnameTable table(
    id int identity(1,1) primary key, 
    name nvarchar(10)
)

-- 定义一个名字表变量,表添加两个字段,自增编号和名字
declare @nameTable table(
    id int identity(1,1) primary key, 
    name nvarchar(10)
)

-- 姓和名字
-- 姓氏
insert @surnameTable values
('王'),('李'),('张'),('刘'),('陈'),('杨'),('黄'),('赵'),('周'),('吴'),
('徐'),('孙'),('马'),('胡'),('朱'),('郭'),('何'),('罗'),('高'),('林') 
-- 名称
insert @nameTable values
('芸'),('荷'),('星'),('秋'),('嘉'),('娜'),('珊'),('菲'),('素'),('嫣'),
('慧'),('慕'),('歆'),('巧'),('绮'),('羽'),('静'),('柔'),('采'),('沐'),
('苑'),('姣'),('芳'),('宁'),('沛'),('玥'),('文'),('如'),('悦'),('若'),
('德'),('蕾'),('颜'),('依'),('盼'),('菀'),('秀'),('草'),('莺'),('倩'),
('柳'),('娴'),('彨'),('舒'),('雅'),('淑'),('冉'),('云'),('凝'),('棋')

-- 循环遍历班级
while @classCount<=3 begin
    set @studentCount=80
    -- ===年级信息===
    if @classCount=1 begin
        set @className='一年级'
    end
    else if @classCount=2 begin
        set @className='二年级'
    end
    else begin
        set @className='三年级'
    end
    set @classCount+=1
    -- ===/年级信息===

    -- ===遍历创建学生记录===
    while @studentCount>0 begin
        -- 生成名字
        declare @name nvarchar(50)
        declare @nameLength int
        set @nameLength=1+round(rand()*1,0)
        set @name=(select name from @surnameTable where id=round(rand()*20+1,0))
        while(@nameLength>0) begin
            set @name+=(select name from @nameTable where id=round(rand()*20+1,0))
            set @nameLength-=1
        end

        -- ===年级课程===
        -- 语文
        set @courseName='语文'
        set @scoreValue=round(rand()*50+50,0)
        insert into student_score(studentName,className,courseName,scoreValue,createTime)
        values(@name,@className,@courseName,@scoreValue,getdate())

        -- 数学
        set @courseName='数学'
        set @scoreValue=round(rand()*50+50,0)
        insert into student_score(studentName,className,courseName,scoreValue,createTime)
        values(@name,@className,@courseName,@scoreValue,getdate())

        -- 英语
        set @courseName='英语'
        set @scoreValue=round(rand()*50+50,0)
        insert into student_score(studentName,className,courseName,scoreValue,createTime)
        values(@name,@className,@courseName,@scoreValue,getdate())
        -- ===/年级课程===
        set @studentCount-=1
    end

end


--select * from student_score
--truncate table student_score
  • 效果
    在这里插入图片描述

🍎🍎 本篇到此结束,感谢阅读的小伙伴,打个小小的ad,欢迎关注导师的公众号【有趣小馆】,导师会时不时发布一些有趣好玩的功能,欢迎关注!

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

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

相关文章

软件测试基础(V模型W模型)

软件测试基础 1. 软件测试的生命周期 需求分析&#xff1a;站在用户的角度查看需求逻辑是否正确&#xff0c;是否符合用户的需求和行为习惯。站在开发的角度思考需求是否可以实现&#xff0c;或者说实现起来难度高不高测试计划&#xff1a;指定测试计划&#xff08;包括不限于…

Linux用户和组管理

1、用户和组简介 Linux 是多用户多任务操作系统。换句话说&#xff0c;Linux 系统支持多个用户在同一时间内登陆&#xff0c;不同用户可以执行不同的任务&#xff0c;并且互不影响。不同用户具有不问的权限&#xff0c;毎个用户在权限允许的范围内完成不同的任务。 用户组是具…

进攻即是最好的防御!19个练习黑客技术的在线网站

前言 进攻即是最好的防御&#xff0c;这句话同样适用于信息安全的世界。这里罗列了19个合法的来练习黑客技术的网站&#xff0c;不管你是一名开发人员、安全工程师、代码审计师、渗透测试人员&#xff0c;通过不断的练习才能让你成为一个优秀安全研究人员。以下网站希望能给各…

智能排班系统 【技术选型与工具版本】

技术架构图 前端工具及环境 名称版本介绍NodeJS16.13.2开源、跨平台的 JavaScript 运行时环境Npm8.1.2npm包管理工具可以快速引入别人开发好的工具包进行使用Webpack4.0.0打包工具Vue2.6.14Vue 的核心库只关注视图层&#xff0c;易于上手&#xff0c;便于与第三方库或既有项目…

每日学术速递5.17

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.HACK: Learning a Parametric Head and Neck Model for High-fidelity Animation 标题&#xff1a;HACK&#xff1a;学习用于高保真动画的参数化头颈模型 作者&#xff1a;Longwe…

FEC功能在40G和100G光模块中的应用和注意事项

FEC&#xff08;Forward Error Correction&#xff0c;前向纠错&#xff09;功能是一种在数字通信中用于纠正传输过程中产生的误码的技术。在100G和40G光模块中&#xff0c;FEC功能被广泛应用于光纤传输过程中&#xff0c;以提高传输的可靠性和抗干扰能力。 本期文章我们主要介…

Twitter架构决策

技术决策需要在不同限制条件下做出权衡&#xff0c;本文介绍了Twitter早期应对用户大规模增长所做出的技术架构决策。原文&#xff1a;Twitter’s Tough Architectural Decision[1] Jeremy BezangerUnsplash 研究大规模互联网应用可以学到很多东西&#xff0c;像Netflix这样的公…

强大而可靠的DiskQ:持久化队列的解决方案

强大而可靠的DiskQ&#xff1a;持久化队列的解决方案 简介: 在软件开发中&#xff0c;处理大量数据和任务调度是常见的挑战。为了有效地处理这些问题&#xff0c;开发人员需要一种可靠的队列解决方案&#xff0c;以确保数据和任务在处理过程中不会丢失。DiskQ作为一种持久化队…

浏览器如果免费安装ChatGPT插件?

一、什么是ChatGPT&#xff1f; ​ ChatGPT是一种基于自然语言处理的机器学习算法&#xff0c;通过大规模的训练数据和优化算法来生成自然语言响应。目前&#xff0c;它在聊天机器人&#xff0c;自动回答问题&#xff0c;自动文本生成等方面有广泛的应用。ChatGPT是由OpenAI公…

[组合数学] 排列组合

文章目录 加法法则 --每一类都能够独立的完成任务乘法法则 --集合论 任务分步骤1000和9999之间有多个具有不同数位的奇数n 7 3 1 1 2 1 3 4 ^311^213^4 3112134 求除尽n的整数个数0到10000之间有多少个整数恰好是有一位数字是5两位数字可以组成多少两位互异且非零的两位数 减…

suricata中command的实现分析和自定义命令方法

suricata提供了suricatasc这个工具用来与其进行通信&#xff0c;比如修改规则文件后&#xff0c;通知suricata重新加载规则&#xff0c;就可以通过suricatasc下发重新加载规则命令&#xff0c;suricatasc和suricata通过unix socket进行通信&#xff0c;unix socke好处就是不占用…

libevent高并发网络编程 - 06_基于libevent的C++线程池实现

文章目录 1 功能简介线程池的初始化线程池执行流程 2 线程池类的设计线程类XThreadXThread.hXThread.cpp 线程池类XThreadPoolXThreadPool.hXThreadPool.cpp 任务基类taskXTask.h 3 自定义任务的例子自定义任务类ServerCMDServerCMD.hServerCMD.cpp 测试程序运行效果 1 功能简介…

华为机试(JAVA)真题Od【A卷+B卷】2023

目录 华为OD机试是什么&#xff1f;华为OD面试流程&#xff1f;华为OD机试通过率高吗&#xff1f;华为OD薪资待遇&#xff1f;华为OD晋升空间&#xff1f; 大家好&#xff0c;我是哪吒。 本专栏包含了最新最全的华为OD机试真题&#xff0c;有详细的分析和Java代码解答。已帮助…

【信息安全案例】——信息内容安全(学习笔记)

&#x1f4d6; 前言&#xff1a;在数字化时代&#xff0c;信息内容安全问题越来越引起人们的关注。信息内容安全主要包括对数据的机密性、完整性和可用性的保护&#xff0c;以及对用户隐私的保护等方面。针对信息内容安全的威胁&#xff0c;采取科学有效的安全措施和技术手段至…

每日学术速递5.20

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Improved baselines for vision-language pre-training 标题&#xff1a;改进视觉语言预训练的基线 作者&#xff1a;Enrico Fini, Pietro Astolfi, Adriana Romero-Soriano, Jak…

10-《简单算法》

10-《简单算法》 一、时间复杂度二、空间复杂度三、排序算法1.比较排序1.1冒泡排序&#xff1a;1.2选择排序&#xff1a;1.3插入排序&#xff1a;1.4归并排序(非常重要)1.5快速排序&#xff08;非常重要&#xff09;1.6堆排序1.7排序算法稳定性 2.线性排序2.1桶排序2.2计数排序…

数据结构初阶(3)(链表:链表的基本概念、链表的类型、单向不带头非循环链表的实现、链表的优缺点 )

接上次博客&#xff1a;和数组处理有关的一些OJ题&#xff1b;ArrayList 实现简单的洗牌算法&#xff08;JAVA)(ArrayList&#xff09;_di-Dora的博客-CSDN博客 目录 链表的基本概念 链表的类型 单向、不带头、非循环链表的实现 遍历链表并打印节点值&#xff1a; 在链…

uni-app小程序uni.navigateBack返回上一个页面并传递参数.返回上个页面并刷新

返回上一个打开的页面并传递一个参数。有种办法就是使用 假如从B页面返回A页面&#xff1a; var pages getCurrentPages(); var prevPage pages[pages.length - 2]; //上一个页面 prevPage.setData({ mdata:1 })经过测试&#xff0c;在uni.app中使用B页面使用setData设置A页…

【Spring篇】AOP案例

&#x1f353;系列专栏:Spring系列专栏 &#x1f349;个人主页:个人主页 一、案例&#xff1a;业务层接口执行效率 1.需求分析 这个需求也比较简单&#xff0c;前面我们在介绍 AOP 的时候已经演示过 : 需求 : 任意业务层接口执行均可显示其执行效率&#xff08;执行时长&…

如何选对适合你的FPGA?快速掌握选型技巧!

FPGA厂家和芯片型号众多&#xff0c;在开发过程中&#xff0c;特别是新产品新项目时&#xff0c;都会面临FPGA选型的问题。 如何选择出适合的FPGA型号非常关键&#xff0c;需要评估需求、功能、成本、存储器、高速收发器等各种因素&#xff0c;选出性能与成本平衡的FPGA芯片。…