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;

相关推荐
咏方舟【长江支流】2 分钟前
【开源】跨语言·跨平台·跨数据库(4) ——用宝框架 ORM 数据源适配器
数据库·开源·ai编程·orm·咏方舟-长江支流·用宝框架·用宝框架orm
JZC_xiaozhong12 分钟前
OA调价审批后,采购调价单如何自动同步到ERP?解决漏录错价难题
大数据·linux·服务器·前端·数据库·数据孤岛解决方案·数据集成与应用集成
渣渣灰飞18 分钟前
MySQL 系统学习 第五阶段:企业级 MySQL 实战开发 第一章:企业数据库设计规范
数据库·学习·mysql
IvorySQL25 分钟前
PG 日报|新增 VFD 缓存监控视图,精细化数据库调优
大数据·数据库·人工智能·缓存·postgresql·区块链
咏方舟【长江支流】27 分钟前
【开源】跨语言·跨平台·跨数据库(3) —— 为用宝框架增加ORM,让AI执行
数据库·人工智能·开源·ai编程·orm·咏方舟-长江支流·用宝框架
工业甲酰苯胺36 分钟前
AI×JNPF实战:3个案例拆解企业数智转型核心逻辑
大数据·数据库·人工智能·低代码
360智汇云41 分钟前
一次Redis超时引发的“冤案“
数据库·redis·php
她说彩礼65万1 小时前
Asp.net core 返回类型
数据库·后端·asp.net
weixin_307779132 小时前
Linux下Docker Compose里运行Milvus向量数据库故障诊断Shell脚本
linux·运维·数据库·docker·milvus
Zhu7582 小时前
在k8s环境部署ApacheGuacamole,分别对接MySQL和PG数据库
数据库·mysql·kubernetes