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 入门教程相关推荐

  1. dbForge Studio for SQL Server入门教程:如何创建和编辑查询

    2019独角兽企业重金招聘Python工程师标准>>> [dbForge Studio for SQL Server下载] 创建查询: 1.创建服务器连接.有关如何创建服务器连接的详 ...

  2. 《Microsoft SQL Server入门教程》第02篇 SQL Server 下载与安装

    文章目录 安装 SQL Server 安装 SQL Server Management Studio 连接 SQL Server 本篇我们介绍如何下载和安装 SQL Server 2019 开发者版本 ...

  3. 《Microsoft SQL Server入门教程》第03篇 示例数据库和示例表

    在接下来的教程中,我们将会使用一个名为 BikeStores 的示例数据库,它的实体关系图(ERD)如下: 从上图可以看出,BikeStores 数据可靠包含两个模式(Schema),分别是 sale ...

  4. SQL Server入门(四) 官网关于 SQL Server初级入门教程

    原文http://www.shareblogs.top/444/ 学习内容 这些教程将帮助你理解 SSMS 中提供的信息以及如何利用其功能. 熟悉 SSMS 的最好方式是进行实践演练. 这些教程将使你 ...

  5. sql server 入门_SQL Server查询调整入门

    sql server 入门 This article will cover some essential techniques for SQL query tuning. Query tuning i ...

  6. sql server 入门_SQL Server中的数据挖掘入门

    sql server 入门 介绍 (Introduction) In past chats, we have had a look at a myriad of different Business ...

  7. 倍福PLC的Modbus-TCP Server入门教程

    倍福PLC的Modbus-TCP Server入门教程 一.实验目的 二.实验环境 三.需要的软件 四.操作步骤 五.问题 作者:SAM 一.实验目的 1.使用倍福TwinCAT3作为Modbus-T ...

  8. sql server 入门篇

    sql server入门篇 一.创建数据库 二.修改数据库 三.删除数据库 四.数据表创建 五.数据表数据修改(增.删.改) 六.数据表查询 七.数据表操作 一.创建数据库 1.格式 CREATE D ...

  9. sql server 学习教程

    sql server 学习教程 SQL Server 系统数据库 master model msdb tempdb 索引 定义 分类 唯一索引 主键索引 聚集索引(Clustered) 非聚集索引(N ...

最新文章

  1. 神经网络和深度学习简史(三)
  2. 如何用python画函数曲线_Python笔记:用matplotlib绘制函数曲线图
  3. MySql 数据库 - 重置数据库、重置初始密码方法,数据库初始化方法,长时间不用忘记密码暴力解决方法
  4. Example of ConcurrentHashMap in Java--转
  5. weka源码编译步骤
  6. [HDU5215]Cycle
  7. 《Python编程从入门到实践》第9章类动手试一试答案(附代码)
  8. Node.js路径操作
  9. [USACO5.1] Musical Themes
  10. 安装Oracle Webcenter 11.1.1.8.0并使用JDeveloper开发Portlet
  11. 超精华的unity2d同屏显示9千人,看完还怕学不会?
  12. [信息论与编码理论专题-6]:物理层信道编码
  13. 什么是飞天?全球级大数据计算平台,自主研发!
  14. 【贪玩巴斯】操作系统(一)——操作系统引论 「发展与特征」2021-09-16
  15. 5G时代的一个杀手级应用,可能是“云上电脑”?
  16. Visual studio 2017 安装
  17. 祝新年快乐html小程序,小程序网页开发真诚的祝福大家2018...
  18. 典型分布式计算技术的分析和比较
  19. android 排他button,javascript排他思想
  20. pyecharts主题theme风格推荐

热门文章

  1. -XX:MaxDirectMemorySize直接内存无效问题
  2. Vue视频切换src,画面不变化的问题
  3. [luogu P4230]连环病原体
  4. mct接收_Android实现文件上传功能(接收端用strust2)
  5. golang:字符类型(byte和rune)
  6. 快排优化代码__2018.07.26
  7. BH1750 光照传感器文档详解 及 驱动设计
  8. 计算机算法描述方式有哪些,算法的描述方法有哪几种
  9. ROS配置和使用“北通”无线手柄,主从机远程控制JP-Chassis底盘
  10. 强人工智能基本问题:自上而下还是自下而上?