SqlServer期末复习(数据库原理及应用)持续更新中

一、SQL语句

1.1 SQL语句知识引入

1.DDL语言(数据定义语言)主要是进行定义/改变表的结构、数据类型、表之间的链接等操作,关键字CREATE、DROP、ALTER
CREATE TABLE 表面(
列名1 数据类型,
列名2 数据类型,
)
ALTER TABLE 表名;
eg: ALTER TABLE 表名 ADD 列名 数据类型;(添加一个列)
ALTERTABLE 表名 CHANGE 列名 新列名 新数据类型;(修改列名)
ALTER TABLE 表名 DROP 列名;

DROP TABLE 表名;
DROP DATABASE 数据库表名;

2.DML语句(Data Manipulation Language)(数据操作语言), 主要是对数据进行增加、删除、修改操作。常用的语句关键字有INSERT、UPDATE、DELETE等。

DDL和DML的区别,一个是名称的区别,另一个是DDL针对的是数据库内部的对象进行创建、删除、修改操作,DML只是对表内部数据进行操作(不涉及到表的定义、结构的修改、不涉及其他对象)
INSERT INTO 表名(字段1,字段2)values (某值,某值), (某值,某值);
UPDATE 表名  SET 列名=新值 WHERE 限定条件;
DELETE FROM 表名 WHERE 限定条件

3.DQL语句
DQL(Data Query Language)语句:数据查询语言,主要是对数据进行查询操作。常用关键字有SELECT、FROM、WHERE

4.DCL语句(数据控制语言),主要是用来设置/更改数据库用户权限。常用关键字有GRANT、REVOKE等,一般人员很少用到DCL语句。
GRANT (授权) 
REVOKE(取消权限)

1.2 SqlServer 题目及作答过程

四、求解应用题(本大题共 2 小题,共 30 分)
一个田径运动会数据库系统中有 3 个关系:运动员(运动员编号,姓名,年龄,性别,单位)运动项目(名称,比赛时间,比赛地点,最高纪录)参加(运动员编号,名称,比赛成绩)
 其中,下划线标识为关系模式的主码。


(1)更改运动员表结构,取消单位不允许为空的约束(其中单位数据类型为 char(20))(2分)
 ALTER TABLE 运动员 ALTER COLUMN 单位 char(20) NULL.
(2)按照运动员编号升序,运动项目名称降序,为参加表建立唯一性索引 idx_cj。(2 分)
CREATE UNIQUE INDEX idx_cj ON 参加(运动员编号 ASC, 名称 DESC);
(3)创建一个名称为 PRO_Myselect 存储过程,该存储过程的功能为:用于根据运动员编号,查询该运动员的比赛信息,并利用该存储过程,查询运动员编号为“y00010”的比赛信息。要求运动员编号定义为@bh,类型是 nvarchar(10)(3 分)

注意:这道题两问后面还要求写出查询
CREATE PROCEDURE PRO_Myselect
@bh nvarchar(10)
AS            //来引入存储过程的主体部分,并使用BEGIN和END来定义存储过程的开始和结束
BEGIN
    SELECT *
    FROM 参加 AS c 
    INNER JOIN  运动项目 AS p ON c.名称 = p.名称
    WHERE c.运动员编号 = @bh
END 

EXEC PRO_MySelect @bh = 'y00010'

注意:这里是INNER JOIN 我当时学的是MySql所以一般JOIN ON 但是在SqlServer中不一样,默认加INNER JOIN ON


(4)删除运动员编号为“bh0010”的比赛信息。(3 分)

DELETE FROM 参加 WHERE 运动员编号 = 'bh0010';
(5)查询年龄大于 40 岁的运动员所在单位。(3 分) 

SELECT 单位 FROM 运动员 WHERE 年龄 > 40
(6)查询在 2021 04 24 比赛,运动项目名称中包含“100 米”的运动项目名称及最高纪录。
(4 分) 

SELECT 名称,最高纪录 FROM 运动项目 WHERE 比赛时间 = '2021-0-24' AND 运动员项目名称 LIKE '%100米%'
(7)创建视图 view_cj(运动员编号,姓名,运动项目名称,比赛成绩)(4 分)

CREATE VIEW view_cj AS
SELECT 运动员.运动员编号, 运动员.姓名, 参加.名称 AS 运动项目名称, 参加.比赛成绩
FROM 运动员
JOIN 参加 ON 运动员.运动员编号 = 参加.运动员编号;
(8)查询参加运动项目最多的运动员编号。(5 分)

SELECT TOP 1 运动员编号
FROM 参加
GROUP BY 运动员编号
ORDER BY COUNT(*) DESC;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/568564.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Android]模拟器登录Google Play失败

问题: 模拟器登录Google Play失败,提示couldnt sign in there was a problem communicating with google servers. try again later. 原因: 原因是模拟器没有连接到互联网,打开模拟器中Google浏览器进行搜索一样不行。 解决&am…

2.9、创建网格(Grid/GridItem)

概述 网格布局是由“行”和“列”分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局。网格布局具有较强的页面均分能力,子组件占比控制能力,是一种重要自适应布局,其使用场景有九宫格图片展示、日历、计算器等。 ArkUI提供了Grid容器组件和子组件GridI…

JDBC基础编程练习

目录​​​​​​​ 第1关:JDBC更新员工密码 任务描述 实验一代码: 第2关:JDBC查询员工信息 任务描述 实验二代码: 第1关:JDBC更新员工密码 任务描述 本关任务:借助JDBC在库名tsgc中完成对数据表emp…

Python:基础语法

一、import与from.....import 有时候我们需要使用一些第三方库或包时,我们就需要通过import或from.....import导入模块。 # 导入库 import sys print("hello,world") 当我们自己写了些函数,在其他py文件,我们也可以通过from.....im…

SQL练习【个人练习】

SQL练习, 去除了过于简单的SQL语句 常用函数的使用concat&substringlike&left切割&正则比较&时间函数(date_format/year/month)时间函数匹配 group by子查询Union 前几天做笔试的时候狠狠拷打了SQL,并不是很难的题目,现在想起…

leetcode 225.用队列实现栈 JAVA

题目 思路 1.一种是用双端队列(Deque),直接就可以调用很多现成的方法,非常方便。 2.另一种是用普通的队列(Queue),要实现栈的先入后出,可以将最后一个元素的前面所有元素出队,然后…

机器学习基础——模型评估与选择(部分)

为了实现对模型指导,实现自主建模,我们会对模型进行选择和评估,主要有以下几个问题: 一、前言:误差与拟合 (一)经验误差 使用上述流程理解,其中 a 为预测错误的个数,m为…

【Rust】——提取函数消除重复代码和泛型

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

工时表软件:项目管理的效率利器

在当今的项目管理实践中,时间是最宝贵的资产之一。精准地追踪和管理项目工时对于项目的成功至关重要。工时表软件作为一种现代管理工具,其应用不仅简化了项目管理流程,还提高了工作效率,已成为现代企业管理不可或缺的一项利器。 …

深入解析ECC(椭圆曲线密码学)加解密算法

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 本文将详细介绍ECC(椭圆曲线密码学)加解密算法的原理、特点及应用。ECC作为一种新型的公钥密码体制&#…

FL Studio21.2.3最新中文编曲音乐制作软件新版本功能介绍

一、前言 随着科技的发展,越来越多的人开始尝试自己创作音乐。然而,传统的音乐制作过程复杂繁琐,需要昂贵的硬件设备和专业的知识技能。那么,有没有一款软件可以让普通人也能轻松地制作出专业级别的音乐作品呢?答案就…

【优选算法】专题1 -- 双指针 -- 复写0

前言: 补充一下前文没有写到的双指针入门知识:专题1 -- 双指针 -- 移动零 目录 基础入门知识: 1. 复写零(easy) 1. 题⽬链接:1089.复习0 - 力扣(LeetCode) 2. 题⽬描述&#xff…