使用T-SQL实现以下要求:

要求如下:

1,添加数据库:MySchool

2,添加学生基础表:Student

3,添加学生成绩表:ScoreInfo

4,两张表结构分别如下

Student表结构:(20分)

变量名

数据类型

是否为空

描 述

StuID

int

主键,标识列,学号

StuName

nvarchar(20)

学生姓名

StuSex

nchar(1)

性别(必须是男或女)

StuGrade

int

年级编号

StuEmail

nvarchar(20)

邮箱

StuAddress

nvarchar(20)

地址(默认“四川”)

ScoreInfo表结构(20分)

变量名

数据类型

是否为空

描 述

ID

int

StudentInfo的表外键ID,学号

ScoreInfo

float

分数(分数必须:分数 大于-1并且小于150)

SubjectId

int

科目编号

ExamDate

datetime

考试时间

5,根据表结构添加关系和约束。(20分)

6,使用T-SQL添加表数据(每张表数据3行以上,10分

StudentInfo表数据

ID

Name

SexID

Grade

Email

Address

1

张三

1

zhangsan@qq.com

南京

2

王五

2

wangwu@qq.com

深圳

3

张丽

1

zhangli@qq.com

四川

Score表数据

ID

ScoreInfo

SubjectId

ExamDate

1

65

1

2018-7-21

1

75.5

2

2018-7-21

2

87

1

2018-7-21

2

46

2

2018-7-21

3

53.6

1

2018-7-21

7,使用T-SQL查询出学员“张三“所有科目成绩。(15分)

8,使用T-SQL查询出所有大于60分以上学员成绩。(15分)

代码如下:

use master
go
--判断数据库是否存在,有则删除
if (exists (select * from sys.databases where name = 'MySchol'))drop database MySchol
--创建数据库
create database MySchol
on(name = 'MySchol',filename = 'S:\SQL\MySchol.mdf'
)
log on(name = 'testHome_log',filename = 'S:\SQL\MySchol_log.ldf'
)
go-- 使用(切换到数据库)数据库
use MySchol
--判断数据库表是否存在,有则删除
if (exists (select * from sys.objects where name = 'Student'))drop database Student
--创建表Student
create table Student(StuID int not null,StuName nvarchar(20) not null,StuSex nchar(1) not null,StuGrade int not null,StuEmail nvarchar(20) null, StuAddress nvarchar(20) null DEFAULT '四川'
)if (exists (select * from sys.objects where name = 'ScoreInfo'))drop database ScoreInfocreate table ScoreInfo(ID int not null,ScoreInfo float null,SubjectId int not null,ExamDate datetime not null,StuEmail nvarchar(20) null,
)
go--添加Student表主键
alter table Student
add constraint pk_id primary key(StuID);
--性别约束
alter table Student
add constraint xingbie check(StuSex='男' or StuSex='女');
--添加外键约束
alter table ScoreInfo
add constraint fk_cid foreign key (ID) references Student(StuID)
--分数约束
alter table ScoreInfo
add constraint fenshu check(ScoreInfo > -1 AND ScoreInfo < 150);--Student插入数据
insert into Student values(1, '张三', '男', 1, 'zhangsan@qq.com', '南京');
insert into Student values(2, '王五', '男', 2, 'wangwu@qq.com', '深圳');
insert into Student values(3, '张丽', '女', 1, 'zhangli@qq.com', '四川');
insert into ScoreInfo values(1, 65, 1, '2018-7-21',null);
insert into ScoreInfo values(1, 75.5, 2, '2018-7-21',null);
insert into ScoreInfo values(2, 87, 1, '2018-7-21',null);
insert into ScoreInfo values(2, 46, 2, '2018-7-21',null);
insert into ScoreInfo values(3, 53.6, 1, '2018-7-21',null);--查询张三成绩
select ScoreInfo as '张三' from ScoreInfo;
--查询所有科目都合格的学生--由于刚学不久,只能凑合实现
SELECT StuName FROM Student WHERE StuID IN
(SELECT COUNT(*) as '合格科目数' FROM ScoreInfo WHERE ScoreInfo > 60 GROUP BY ID HAVING ID>1)

如有不对的地方,欢迎指出!

如有更好的实现方法,欢迎分享!

转载于:https://www.cnblogs.com/ming-yuan/p/9259538.html

SQL Server 机考,用T-SQL编写 简单实例相关推荐

  1. SQL Server安全-加密术和SQL注入攻击

    SQL Server上的加密术 SQL Server上内置了加密术用来保护各种类型的敏感数据.在很多时候,这个加密术对于你来说是完全透明的:当数据被存储时候被加密,它们被使用的时候就会自动加密.在其他 ...

  2. SQL Server 2019 新特性之 SQL Server大数据群集 介绍(一)

    SQL Server 2019 新特性之 SQL Server大数据群集 介绍(一) 从开始SQL Server 2019 预览,SQL Server 大数据群集允许你部署的 Kubernetes 上 ...

  3. sql server死锁_如何报告SQL Server死锁事件

    sql server死锁 介绍 (Introduction) In the previous article entitled "What are SQL Server deadlocks ...

  4. sql server 数组_如何在SQL Server中实现类似数组的功能

    sql server 数组 介绍 (Introduction) I was training some Oracle DBAs in T-SQL and they asked me how to cr ...

  5. SQL Server 2005系列教学(1) SQL SERVER2005介绍及安装

    重点在于SQL Server 2005各个版本的安装及测试! 大纲如下: 信息与数据的区别 信息:是现实世界事物的存在方式或运动状态的反映. 数据:数据是信息的载体和具体表现形式,是信息的表现形式. ...

  6. SQL Server 2005安装图解以及SQL 2005 SP3补丁安装

    MSSQL2005数据库版本    SQL Server 2005 的各版本之间选择 大多数企业都在三个 SQL Server 版本之间选择:SQL Server 2005 Enterprise Ed ...

  7. 用sql改oracle表结构,SQL server 表结构转Oracle SQL脚本

    SQL server 表结构转Oracle SQL脚本 /****** Object: StoredProcedure [dbo].[getOracle] Script Date: 2019/7/25 ...

  8. 通往SQL Server复制的阶梯:一级- SQL服务器复制介绍

    链接:http://www.sqlservercentral.com/articles/Stairway+Series/72274/ 文章:Stairway to SQL Server Replica ...

  9. SQL Server 2005/2008 图形界面(SQL Server Management Studio Express)

    SQL Server 2005/2008 图形界面(SQL Server Management Studio Express)2009年03月25日 星期三 18:28SQL 2005 新建数据库 S ...

  10. SQL Server 2014 Win7 Win10 安装详解 SQL Server 2017 2019 Linux及SQL TSQL ETL实用案例

    SQL Server 2014安装图解与问题分析 简介 SQL Server2014 是Microsoft 公司推出的关系    型数据库管理系统.它用于大规模联机事务处理(OLTP).数据  仓库和 ...

最新文章

  1. 网站本地调试工具_一款Web调试代理工具:Fiddler
  2. springboot 上传文件解析入库_SpringBoot + easyexcel + WebUploader 实现文件上传并解析
  3. Ubuntu下安装LXR
  4. Python深入理解元组与列表的使用和区别
  5. Swift - 项目部署配置(支持的系统,设备和状态条样式等)
  6. 20年未解的MIT密码难题,被自学成才的程序员破解了,比预计早15年
  7. python利器-python利器APP下载-python利器 v4.0.1_手机乐园
  8. PRML第三章之回归的线性模型
  9. vnpy 量化交易系统 源码分析 v0.01
  10. openwrt MT7621 支持512M内存
  11. fxp连接失败_用FlashFXP时总是连接失败(连接丢失)是什么原因
  12. matlab案例 光学,利用Matlab 仿真光学实验
  13. TiDB 产品常见问题
  14. 无法登录到你的账户,通常可以通过从你的账户注销,然后重新登录
  15. word打开老是配置进度_电脑打开Word文档弹出配置进度窗口怎么解决
  16. 浅谈视频会议系统的带宽控制!
  17. Markdown个人简历模板
  18. UA MATH564 概率分布2 Poisson分布
  19. IB中文:文学作品中幽默手法的表现方式(下)
  20. 前端js拼接Json字符串

热门文章

  1. radio切换控制div显示_【原】react做tab切换的几种方式
  2. oracle 函数怎么个写法,Oracle表值函数的两种写法
  3. alexnet的loss在一个epoch内没有稳定下降_深度学习中的双下降现象
  4. jQuery Deferred对象
  5. 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性——位置设置偏向...
  6. 为何大富连续三天彻夜未眠!
  7. java word文档 转 html文件
  8. 基于cocos2d-x引擎的游戏框架设计
  9. Android ListView下拉刷新点击加载更多
  10. Iphone 清空联系人