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 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编写 简单实例相关推荐
- SQL Server安全-加密术和SQL注入攻击
SQL Server上的加密术 SQL Server上内置了加密术用来保护各种类型的敏感数据.在很多时候,这个加密术对于你来说是完全透明的:当数据被存储时候被加密,它们被使用的时候就会自动加密.在其他 ...
- SQL Server 2019 新特性之 SQL Server大数据群集 介绍(一)
SQL Server 2019 新特性之 SQL Server大数据群集 介绍(一) 从开始SQL Server 2019 预览,SQL Server 大数据群集允许你部署的 Kubernetes 上 ...
- sql server死锁_如何报告SQL Server死锁事件
sql server死锁 介绍 (Introduction) In the previous article entitled "What are SQL Server deadlocks ...
- sql server 数组_如何在SQL Server中实现类似数组的功能
sql server 数组 介绍 (Introduction) I was training some Oracle DBAs in T-SQL and they asked me how to cr ...
- SQL Server 2005系列教学(1) SQL SERVER2005介绍及安装
重点在于SQL Server 2005各个版本的安装及测试! 大纲如下: 信息与数据的区别 信息:是现实世界事物的存在方式或运动状态的反映. 数据:数据是信息的载体和具体表现形式,是信息的表现形式. ...
- SQL Server 2005安装图解以及SQL 2005 SP3补丁安装
MSSQL2005数据库版本 SQL Server 2005 的各版本之间选择 大多数企业都在三个 SQL Server 版本之间选择:SQL Server 2005 Enterprise Ed ...
- 用sql改oracle表结构,SQL server 表结构转Oracle SQL脚本
SQL server 表结构转Oracle SQL脚本 /****** Object: StoredProcedure [dbo].[getOracle] Script Date: 2019/7/25 ...
- 通往SQL Server复制的阶梯:一级- SQL服务器复制介绍
链接:http://www.sqlservercentral.com/articles/Stairway+Series/72274/ 文章:Stairway to SQL Server Replica ...
- 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 ...
- SQL Server 2014 Win7 Win10 安装详解 SQL Server 2017 2019 Linux及SQL TSQL ETL实用案例
SQL Server 2014安装图解与问题分析 简介 SQL Server2014 是Microsoft 公司推出的关系 型数据库管理系统.它用于大规模联机事务处理(OLTP).数据 仓库和 ...
最新文章
- 网站本地调试工具_一款Web调试代理工具:Fiddler
- springboot 上传文件解析入库_SpringBoot + easyexcel + WebUploader 实现文件上传并解析
- Ubuntu下安装LXR
- Python深入理解元组与列表的使用和区别
- Swift - 项目部署配置(支持的系统,设备和状态条样式等)
- 20年未解的MIT密码难题,被自学成才的程序员破解了,比预计早15年
- python利器-python利器APP下载-python利器 v4.0.1_手机乐园
- PRML第三章之回归的线性模型
- vnpy 量化交易系统 源码分析 v0.01
- openwrt MT7621 支持512M内存
- fxp连接失败_用FlashFXP时总是连接失败(连接丢失)是什么原因
- matlab案例 光学,利用Matlab 仿真光学实验
- TiDB 产品常见问题
- 无法登录到你的账户,通常可以通过从你的账户注销,然后重新登录
- word打开老是配置进度_电脑打开Word文档弹出配置进度窗口怎么解决
- 浅谈视频会议系统的带宽控制!
- Markdown个人简历模板
- UA MATH564 概率分布2 Poisson分布
- IB中文:文学作品中幽默手法的表现方式(下)
- 前端js拼接Json字符串
热门文章
- radio切换控制div显示_【原】react做tab切换的几种方式
- oracle 函数怎么个写法,Oracle表值函数的两种写法
- alexnet的loss在一个epoch内没有稳定下降_深度学习中的双下降现象
- jQuery Deferred对象
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性——位置设置偏向...
- 为何大富连续三天彻夜未眠!
- java word文档 转 html文件
- 基于cocos2d-x引擎的游戏框架设计
- Android ListView下拉刷新点击加载更多
- Iphone 清空联系人