SQL Server 机考,用T-SQL编写 简单实例
使用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 |
|
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 ScoreInfo
create 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)
如有不对的地方,欢迎指出!
如有更好的实现方法,欢迎分享!
SQL Server 机考,用T-SQL编写 简单实例的更多相关文章
- 4.3.6 对象的界定通过编写接口来访问带这类命名结构的表会出问题。如前所述,SQL Server的灵活性不应用作编写错误代码或创建问题对象的借口。 注意在使用Management Studio的脚本工具时,SQL Server会界定所有的对象。这不是因为这么做是必须的,也不是编写代码的最佳方式,而是因为在界定符中封装所有的对象,比编写脚本引擎来查找需要界定的对象更容易。
如前所述,在创建对象时,最好避免使用内嵌的空格或保留字作为对象名,但设计人员可能并没有遵守这个最佳实践原则.例如,我当前使用的数据库中有一个审核表名为Transaction,但是Transaction ...
- SQL Server数据库性能优化之SQL语句篇【转】
SQL Server数据库性能优化之SQL语句篇http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 近期项目需要, 做了一 ...
- SQL Server 2008 R2升级到SQL Server 2012 SP1
1.建议对生产环境对的数据库升级之前做好备份,以防不测. 2.从SQL Server 2008 R2 升级到SQL Server 2012 SP1,需要先安装SQL Server 2008 R2 的S ...
- 安装 SQL Server 2008 和管理工具 SQL Server 2008 management studio 及相关问题解决
Sql Server 2008 问题小总结 http://www.lihengyu.com/blog/4877.html 安装 SQL Server 2008 和管理工具 SQL Server 200 ...
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...
- windows10下sql server 2005 无法运行或sql server服务无法启动的完美解决方案
问题:升级windows10后,sql server 2005 无法运行或sql server服务&sql server agent无法启动,如下图,怎么办? 一般情况下,我们第一反应就是sq ...
- SQL Server恢复软件 Stellar Phoenix sql recovery
SQL Server恢复软件 Stellar Phoenix sql recovery http://www.stellarinfo.com/ http://www.stellarinfo.com/ ...
- SQL SERVER 2012/2014 链接到 SQL SERVER 2000的各种坑
本文总结一下SQL SERVER 2012/2014链接到SQL SERVER 2000的各种坑,都是在实际应用中遇到的疑难杂症.可能会有人说怎么还在用SQL SERVER 2000,为什么不升级呢? ...
- 一名小小的SQL Server DBA想谈一下SQL Server的能力
一名小小的SQL Server DBA想谈一下SQL Server的能力 百度上暂时还没有搜索到相关的个人写的比较有价值的文章,至少在中文网络的世界里面没有 但是在微软的网站有这样一篇文章:<比 ...
随机推荐
- HTML 5.1 -- 14项新增功能及如何使用
最近太忙了 过完年来 连续的加班让我筋疲力尽,今天终于把东西交了,抽空来点干货吧! 1. 响应式图像 W3C 引入了一些功能特性,无需使用 CSS 就可以实现响应式图像.它们是 … srcset 图像 ...
- js 上传头像
css .con4{width: 230px;height: auto;overflow: hidden;margin: 20px auto;color: #FFFFFF;} .con4 .btn{w ...
- C语言小项目-基于TCP协议和SOCKET编程的网络通信系统
1.1 功能结构图 网络通信系统一共由4个模块组成,分别是点对点客户端.点对点服务端.服务器中转服务端.服务器中转客户端.这4个模块是成对使用的,点对点客户端和点对点服务端一起使用,服务器中转服务 ...
- [ZJOI2008]杀蚂蚁
题意翻译 注意在(0,0)已经有蚂蚁的时候是不会生成新蚂蚁的 还有如果有蚂蚁扛着蛋糕,但是不在某个炮的范围内,炮仍然会打最近的蚂蚁 题目描述 最近,佳佳迷上了一款好玩的小游戏:antbuster. 游 ...
- TensorFlow---基础---GFile
使用TensorFlow的时候经常遇到 tf.gfile.exists().... 关于gfile,一个googler是这样给出的解释: The main roles of the tf.gfile ...
- 专题五:TCP编程
前言 前面专题的例子都是基于应用层上的HTTP协议的介绍, 现在本专题来介绍下传输层协议——TCP协议,主要介绍下TCP协议的工作过程和基于TCP协议的一个简单的通信程序,下面就开始本专题的正文了. ...
- Java多线程——线程的死锁
Java多线程——线程的死锁 摘要:本文主要介绍了Java多线程中遇到的死锁问题. 部分内容来自以下博客: https://www.cnblogs.com/wy697495/p/9757982.htm ...
- Elasticsearch--地理搜索
目录 地理位置索引 空间搜索映射定义 示例 基于距离的排序 边界框过滤 距离的限制 任意地理形状搜索 点 包络线 多边形 多个多边形 把形状保存到索引中 地理位置索引 空间搜索映射定义 elastic ...
- JavaScript(十一)Dom
Dom(Document object module) 1.获取dom对象的方法 正常用的方法 推荐 getElementById()//通过id选择唯一的dom getElementsByClass ...
- 61配置nanopim1plus的HDMI为1080p输出
61配置nanopim1plus的HDMI为1080p输出 大文实验室/大文哥 壹捌陆捌零陆捌捌陆捌贰 21504965 AT qq.com 完成时间:2018/4/4 10:21 版本:V1.1 开 ...