sql server 入门教程
sql server 入门教程
1、创建数据库
1)鼠标右键数据库选项,点击新建数据库
2)命名数据库
根据自己业务情况取一个自定义数据库名字,比如:my_database
3)查看数据库
如果添加没看到,那么可鼠标右键数据库刷新,就可以看到如下界面
或者通过命令行创建数据库
create database my_database collate Chinese_PRC_CI_AS;
2、命名规范
命名规范:大模块+功能模块+具体功能
1)驼峰式
单词首字母大写
比如:StudentScore
2)半驼峰
首个单词全小写,其他单词首字母大写
比如:studentScore
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
- 对应可视化界面设置
鼠标右键表字段然后点击设置主键
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 beginif @classCount=1 beginset @className='一年级'endelse if @classCount=2 beginset @className='二年级'endelse beginset @className='三年级'endprint(@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 beginset @className='一年级'endelse if @classCount=2 beginset @className='二年级'endelse beginset @className='三年级'endset @classCount+=1-- ===/年级信息===-- 生成名字declare @name nvarchar(50)declare @nameLength intset @nameLength=1+round(rand()*1,0)set @name=(select name from @surnameTable where id=round(rand()*20+1,0))while(@nameLength>0) beginset @name+=(select name from @nameTable where id=round(rand()*20+1,0))set @nameLength-=1end-- ===年级课程===-- 语文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 beginset @studentCount=80-- ===年级信息===if @classCount=1 beginset @className='一年级'endelse if @classCount=2 beginset @className='二年级'endelse beginset @className='三年级'endset @classCount+=1-- ===/年级信息===-- ===遍历创建学生记录===while @studentCount>0 begin-- 生成名字declare @name nvarchar(50)declare @nameLength intset @nameLength=1+round(rand()*1,0)set @name=(select name from @surnameTable where id=round(rand()*20+1,0))while(@nameLength>0) beginset @name+=(select name from @nameTable where id=round(rand()*20+1,0))set @nameLength-=1end-- ===年级课程===-- 语文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-=1endend--select * from student_score
--truncate table student_score
效果
sql server 入门教程相关推荐
- dbForge Studio for SQL Server入门教程:如何创建和编辑查询
2019独角兽企业重金招聘Python工程师标准>>> [dbForge Studio for SQL Server下载] 创建查询: 1.创建服务器连接.有关如何创建服务器连接的详 ...
- 《Microsoft SQL Server入门教程》第02篇 SQL Server 下载与安装
文章目录 安装 SQL Server 安装 SQL Server Management Studio 连接 SQL Server 本篇我们介绍如何下载和安装 SQL Server 2019 开发者版本 ...
- 《Microsoft SQL Server入门教程》第03篇 示例数据库和示例表
在接下来的教程中,我们将会使用一个名为 BikeStores 的示例数据库,它的实体关系图(ERD)如下: 从上图可以看出,BikeStores 数据可靠包含两个模式(Schema),分别是 sale ...
- SQL Server入门(四) 官网关于 SQL Server初级入门教程
原文http://www.shareblogs.top/444/ 学习内容 这些教程将帮助你理解 SSMS 中提供的信息以及如何利用其功能. 熟悉 SSMS 的最好方式是进行实践演练. 这些教程将使你 ...
- sql server 入门_SQL Server查询调整入门
sql server 入门 This article will cover some essential techniques for SQL query tuning. Query tuning i ...
- sql server 入门_SQL Server中的数据挖掘入门
sql server 入门 介绍 (Introduction) In past chats, we have had a look at a myriad of different Business ...
- 倍福PLC的Modbus-TCP Server入门教程
倍福PLC的Modbus-TCP Server入门教程 一.实验目的 二.实验环境 三.需要的软件 四.操作步骤 五.问题 作者:SAM 一.实验目的 1.使用倍福TwinCAT3作为Modbus-T ...
- sql server 入门篇
sql server入门篇 一.创建数据库 二.修改数据库 三.删除数据库 四.数据表创建 五.数据表数据修改(增.删.改) 六.数据表查询 七.数据表操作 一.创建数据库 1.格式 CREATE D ...
- sql server 学习教程
sql server 学习教程 SQL Server 系统数据库 master model msdb tempdb 索引 定义 分类 唯一索引 主键索引 聚集索引(Clustered) 非聚集索引(N ...
最新文章
- 神经网络和深度学习简史(三)
- 如何用python画函数曲线_Python笔记:用matplotlib绘制函数曲线图
- MySql 数据库 - 重置数据库、重置初始密码方法,数据库初始化方法,长时间不用忘记密码暴力解决方法
- Example of ConcurrentHashMap in Java--转
- weka源码编译步骤
- [HDU5215]Cycle
- 《Python编程从入门到实践》第9章类动手试一试答案(附代码)
- Node.js路径操作
- [USACO5.1] Musical Themes
- 安装Oracle Webcenter 11.1.1.8.0并使用JDeveloper开发Portlet
- 超精华的unity2d同屏显示9千人,看完还怕学不会?
- [信息论与编码理论专题-6]:物理层信道编码
- 什么是飞天?全球级大数据计算平台,自主研发!
- 【贪玩巴斯】操作系统(一)——操作系统引论 「发展与特征」2021-09-16
- 5G时代的一个杀手级应用,可能是“云上电脑”?
- Visual studio 2017 安装
- 祝新年快乐html小程序,小程序网页开发真诚的祝福大家2018...
- 典型分布式计算技术的分析和比较
- android 排他button,javascript排他思想
- pyecharts主题theme风格推荐
热门文章
- -XX:MaxDirectMemorySize直接内存无效问题
- Vue视频切换src,画面不变化的问题
- [luogu P4230]连环病原体
- mct接收_Android实现文件上传功能(接收端用strust2)
- golang:字符类型(byte和rune)
- 快排优化代码__2018.07.26
- BH1750 光照传感器文档详解 及 驱动设计
- 计算机算法描述方式有哪些,算法的描述方法有哪几种
- ROS配置和使用“北通”无线手柄,主从机远程控制JP-Chassis底盘
- 强人工智能基本问题:自上而下还是自下而上?