SQL-CRUD-2数据库实验

目录

第一关任务描述

相关知识

插入完整内容的行

插入选定内容的行

编程要求

测试说明

第一关代码 

第二关任务描述

相关知识

删除表中的指定行

删除表中的所有行

编程要求

测试说明

第二关代码

第三关任务描述

相关知识

更新表中的指定行

编程要求

测试说明

第三关代码


第一关任务描述

在 sqlserver 中有三个高频使用的数据操作语句 (DML,Data Manipulation Language) ,熟练掌握这三个语句的使用方法,能让大家快速入门 sqlserver 。本关就先为大家重点介绍数据的插入( INSERT )。

相关知识

INSERT 顾名思义,就是向表(table)中插入行。

插入完整内容的行

向表中插入数据最简单的方法,就是使用 INSERT 语句。 INSERT 语句需要你声明要插入内容的表名和内容。举个“栗子”!

假设我们现在要建立一张名为 Customers 的空表,建立过程如下:

USE TestDb
CREATE TABLE Customers
(
cust_id int not null,
cust_name varchar(32) not null,
cust_city varchar(32) not null,
cust_email varchar(32) null
)
--查看表内容
SELECT * FROM Customers

得到的空表是这样的:

接下来,我们要往空表中插入一条内容, 插入 (INSERT) 语句如下:

INSERT INTO Customers
VALUES (
'1000000006',
'Toy Land',
'New York',
NULL
)

如图所示,是我们得到的结果,一条完整的内容已经被填入了空表中。

分析: 在这个例子中,我们把消费者的信息 (values) 依序插入了 Customers 表中。可能有人已经注意到, INSERT INTO 后面只跟了一个表名,这就意味着,我们插入内容的时候必须是依序全内容插入,即使内容为空,也必须用空值 NULL 来填补。

这样的插入虽然简单,但是很危险。一旦表的结构变了,你就会插错内容。下述的方法虽然相对繁琐,其最大的优点就是安全。它列出了你想要插入内容所对应的字段(column),一一对应就不容易出错。 比如:我们换下字段(column) 的顺序,看看会不会成功。

INSERT INTO Customers(
cust_id,
cust_email,
cust_name,
cust_city
)
VALUES (
'1000000006',
NULL,
'Toy Land',
'New York'
)

从结果可以看出,即使打乱了顺序,这种方法也能将内容安全地插入。所以我们推荐写插入语句时,把字段(column)名也一并写进去。

插入选定内容的行

就像我刚才说的,把字段(column)名写入插入语句是个好办法!用这个方法,我们还能忽略某些字段,只插入我们最关心的数据。

比如,我们忽略 cust_email ,为表 Customers 插入内容。

INSERT INTO Customers(
cust_id,
cust_name,
cust_city
)
VALUES (
'1000000006',
'Toy Land',
'New York'
)

从结果可以看出,我们成功地进行了有选择的插入

综上所述,本关主要为大家讲解了数据的插入,祝大家顺利通过本关评测。

编程要求

在右侧根据提示补全语句,具体编程任务是:

  • 补全右侧代码片段中 create database 下 Begin-End 区间的代码,用来建立数据库 school ;

  • 补全右侧代码片段中 create table 下 Begin-End 区间的代码,用来建立空表 teacher ,其中表结构如下图所示;

  • 补全右侧代码片段中 insert 下 Begin-End 区间的代码,用来将 Lucy 插入表中,其中数据内容如下图所示:

测试说明

测试过程:

  • 本关涉及到的测试文件是 test1.shell ,平台将运行用户补全的 step1.sql 文件,得到数据;

  • 将得到的数据与答案比较,判断代码是否正确。

如果操作正确,你将得到如下的结果:

第一关代码 

-- ********** create database ********** --
-- ********** Begin ********** --
create database school;



-- ********** End ********** --
go

use school
go

-- ********** create table ********** --
-- ********** Begin ********** --
create table teacher(
    ID int not null,
    Name varchar(20) not null,
    sex char(2) not null,
    Phone varchar(20) default null
);




-- ********** End ********** --
go

SET NOCOUNT ON


-- ********** insert ********** --
-- ********** Begin ********** --
insert into teacher (ID,Name,sex)values(1,'Lucy','F');


-- ********** End ********** --
go


第二关任务描述

喂一句心灵鸡汤:人生,从来都没有 delete 键,你能做的,只有负重前行,心向阳光。

真的是这样吗?至少在虚拟世界,后悔药是有的卖的,你是可以重新来过的。

本关就为各位提供上帝视角般的 delete 键,接下来我们会重点介绍数据的删除(DELETE)。

相关知识

使用 DELETE 语句可以从表中删除数据。 DELETE 的两种用法如下所示:

  • 删除表中的指定行;

  • 删除表中的所有行。

删除表中的指定行

DELETE FROM 后面需要你指定删除内容所在的, WHERE 语句是过滤语句,它用来帮你寻找哪条内容是你想要删除的。在下面的例子中,只有消费者 1000000006 的内容才会被删除。

DELETE FROM Customers WHERE cust_id=1000000006

目前原始表有两条内容:

运行后我们成功地删除了 Toy Land 的数据。

删除表中的所有行

DELETE FROM Customers

如果需要删除表中所有的行,只需要省略 WHERE 语句即可。

数据的删除就介绍到这里了,是不是跃跃欲试呢?

编程要求

根据右侧提示补全语句,具体编程任务是:

  • 补全右侧代码片段中 create database 下 Begin-End 区间的代码,用来建立数据库 website ;

  • 补全右侧代码片段中 create table 下 Begin-End 区间的代码,用来建立空表 shopping ,其中表结构如下图所示:

  • 补全右侧代码片段中 insert 下 Begin-End 区间的代码,用来插入内容 amazon ,具体内容如下表所示: (我们已经事先帮你插入了内容 eBay ,所以你只要关注 amazon 的插入即可)
  • 补全右侧代码片段中 delete 下 Begin-End 区间的代码,用来删除内容 eBay 。

如果我们使用语句:

create TABLE shopping
(
ID int IDENTITY(1,1) not null
)

会使字段 ID 的数字自增。本关要求同学们使用该语句,但同学们插入内容的时候,请不要给字段 ID 赋值,因为它自己会自增!

测试说明

测试过程:

  • 本关涉及到的测试文件是 test2.shell ,平台将运行用户补全的 step2.sql 文件,得到数据;

  • 将得到的数据与答案比较,判断代码是否正确。

如果操作正确,你将得到如下的结果:

第二关代码

-- ********** create database ********** --
-- ********** Begin ********** --
create database website;

-- ********** End ********** --
go

use website
go

-- ********** create table ********** --
-- ********** Begin ********** --
create table shopping (
    ID int IDENTITY(1,1) not null,
    Name varchar(20) not null,
    address varchar(30) not null
);
    
    
-- ********** End ********** --
go

SET NOCOUNT ON

insert into shopping (Name, address) values ('eBay', 'www.ebay.com')
go

SET NOCOUNT ON

-- ********** insert ********** --
-- ********** Begin ********** --
insert into shopping (Name, address) 
values 
('amazon', 'www.amazon.com')

-- ********** End ********** --
go

SET NOCOUNT ON


-- ********** delete ********** --
-- ********** Begin ********** --
delete from shopping 
where Name='eBay';

-- ********** End ********** --
go


第三关任务描述

中国有句俗语:人生在世熟能无过,过而能改,善莫大焉!

错了并不可怕,改了还是一条好汉!本关就为各位着重介绍数据的更新 (UPDATE)。学习完后,你也有机会亲手试试,如何来修改数据库中的数据。

相关知识

通过上一关的学习,我们已经掌握了 DELETE 操作,相信很多人都躺着过关了!同样,UPDATE 也非常的简单,只要记住 UPDATE 语句三要素,就能轻松掌握。它们分别是:

  • 需要更新的表(table)名;

  • 需要更新的字段(column)名和它的新内容(row);

  • 决定更新哪一条内容(row)的过滤条件。

让我们来看看,它是怎么更新表里的内容的吧。

更新表中的指定行

消费者 1000000005 之前没有在记录里留下他的 email ,如下图所示:

但是,现在他有了一个新邮箱,所以需要更新数据库里的数据,更新代码如下所示:

UPDATE Customers
SET cust_email = 'max@yahoo.com'
WHERE cust_id = '1000000005'

看上去不难吧,来练练手吧!

编程要求

在右侧补全语句,具体编程任务是:

  • 补全右侧代码片段中 create database 下 Begin-End 区间的代码,用来建立数据库 Books ;

  • 补全右侧代码片段中 create table 下 Begin-End 区间的代码,用来建立空表 prices ,其中表结构如下图所示:

  • 补全右侧代码片段中 insert 下 Begin-End 区间的代码,用来插入内容 Harry Potter ,具体内容如下表所示: (我们已经事先帮你插入了内容 Walden ,所以你只要关注 Harry Potter 的插入即可)

  • 补全右侧代码片段中 update 下 Begin-End 区间的代码,用来将 Walden 的价格更新为 $6 。
小提示

如果我们使用语句:

create TABLE prices
(
ID int IDENTITY(1,1) not null
)

会使字段 ID 的数字自增。本关要求同学们使用该语句,但同学们插入内容的时候请不要给字段 ID 赋值,因为它自己会自增!

测试说明

测试过程:

  • 本关涉及到的测试文件是 test3.shell ,平台将运行用户补全的 step3.sql 文件,得到数据;

  • 将得到的数据与答案比较,判断代码是否正确。

如果操作正确,你将得到如下的结果:

第三关代码

-- ********** create database ********** --
-- ********** Begin ********** --
create database Books;
-- ********** End ********** --
go

use Books
go

-- ********** create table ********** --
-- ********** Begin ********** --
create table prices
(
    ID int IDENTITY(1,1) not null,
    Name varchar(20) not null,
    price varchar(30) not null
);



-- ********** End ********** --
go

SET NOCOUNT ON

-- ********** insert ********** --
-- ********** Begin ********** --
insert into prices (Name,price)values('Harry Potter','$128')

-- ********** End ********** --
go

SET NOCOUNT ON

insert into prices (Name,price)values ('Walden', '$5')
go

SET NOCOUNT ON

-- ********** update ********** --
-- ********** Begin ********** --
update prices
set price='$6'
where ID=2;

-- ********** End ********** --
go

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【学习】信创产品软件测试企业建设参考清单

“信创,即信息技术应用创新产业,涉及IT基础设施、基础软件、应用软件、信息安全等方面,产品覆盖面广、专业性强。作为目前的一项国家战略,也是当今形势下国家经济发展的新动能,信创产业发展已经成为促进经济数字化转型…

SlerfTools:简化操作,激发Solana生态创新潜能

在区块链世界的快速演变中,Solana生态系统以其独特的高性能吸引了全球的目光。然而,随着生态系统的蓬勃发展,用户和开发者面临的挑战也日渐增多。正是在这样的背景下,一个名为SlerfTools的新星项目应运而生,它承诺将为Solana带来一场革命性的变革。 项目的诞生 SlerfTools并非…

【QT+QGIS跨平台编译】043:【libprotobuf-lite+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、libprotobuf-lite介绍二、文件下载三、文件分析四、pro文件五、编译实践一、libprotobuf-lite介绍 libprotobuf-lite 是 Protocol Buffers 的 C++ 轻量级运行时库,专门设计用于在资源受限的环境下使用。与标准的 libprotobuf(Protocol Buffers…

深入浅出的揭秘游标尺模式与迭代器模式的神秘面纱 ✨

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 🚀 转载自:设计模式深度解析:深入浅出的揭秘游标尺模式与迭代…

力扣 718. 最长重复子数组

题目来源:https://leetcode.cn/problems/maximum-length-of-repeated-subarray/description/ C题解(思路来源代码随想录):动态规划 确定dp数组(dp table)以及下标的含义。dp[i][j] :以下标i - …

速通数据结构第三站 单链表

系列文章目录 速通数据结构与算法系列 1 速通数据结构与算法第一站 复杂度 http://t.csdnimg.cn/sxEGF 2 速通数据结构与算法第二站 顺序表 http://t.csdnimg.cn/WVyDb 感谢佬们支持! 目录 系列文章目录 前言一、单链表 1 结构体 …

踏上机器学习之路:探索数据科学的奥秘与魅力

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

hxp CTF 2021 - A New Novel LFI(新颖的解法)

一、环境 unbentu,docker https://2021.ctf.link/assets/files/includers%20revenge-25377e1ebb23d014.tar.xz 二、解析 PHP Filter 当中有一种 convert.iconv 的 Filter ,可以用来将数据从字符集 A 转换为字符集 B ,其中这两个字符集可以…

记录pycharm配置Anaconda环境时没有反应的问题

记录pycharm配置Anaconda环境时没有反应的问题 背景 下载最新pycharm后在设置中配置add interpreter Anaconda环境时,x选中conda.ba文件点击Load Enviroments后,没有反应,就闪了一下,也有添加成功 探索路程 试过了重启&#x…

NineData与StarRocks商业化运营公司镜舟科技完成产品兼容认证

近日,镜舟科技与NineData完成产品兼容测试。在经过联合测试后,镜舟科技旗下产品与NineData云原生智能数据管理平台完全兼容,整体运行高效稳定。 镜舟科技致力于帮助中国企业构建卓越的数据分析系统,打造独具竞争力的“数据护城河”…

量化交易入门(二十五)什么是RSI,原理和炒股实操

前面我们了解了KDJ,MACD,MTM三个技术指标,也进行了回测,结果有好有坏,今天我们来学习第四个指标RSI。RSI指标全称是相对强弱指标(Relative Strength Index),是通过比较一段时期内的平均收盘涨数和平均收盘跌数来分析市…

leetcode热题100.柱状图中最大的矩形

Problem: 84. 柱状图中最大的矩形 文章目录 题目思路复杂度Code 题目 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入:hei…

RAM IP核

1.原理 数据使能信号充当掩码的作用。1表示1字节就是8个位有效。

答题小程序功能细节揭秘:如何提升用户体验和满足用户需求?

答题小程序功能细节体现 随着移动互联网的快速发展,答题小程序成为了用户获取知识、娱乐休闲的重要平台。一款优秀的答题小程序不仅应该具备简洁易用的界面设计,更应该在功能细节上做到极致,以提升用户体验和满足用户需求。本文将从题库随机…

八大技术趋势案例(虚拟现实增强现实)

科技巨变,未来已来,八大技术趋势引领数字化时代。信息技术的迅猛发展,深刻改变了我们的生活、工作和生产方式。人工智能、物联网、云计算、大数据、虚拟现实、增强现实、区块链、量子计算等新兴技术在各行各业得到广泛应用,为各个领域带来了新的活力和变革。 为了更好地了解…

day56 动态规划part13

300. 最长递增子序列 中等 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,…

【FedCoin: A Peer-to-Peer Payment System for Federated Learning】

在这篇论文中,我们提出了FedCoin,一个基于区块链的点对点支付系统,专为联邦学习设计,以实现基于Shapley值的实际利润分配。在FedCoin系统中,区块链共识实体负责计算SV,并且新的区块是基于“Shapley证明”&a…

Linux 入门及其基本指令(上)

目录 0 .引言 1. XShell 远程登录 Linux 1.1 云服务器 1.2. XShell 远程登陆 Linux 2. 详解 Linux 基本指令 2.1 ls 指令 2.2 pwd 指令 2.3 cd 指令 2.4 touch 指令 2.5 mkdir指令 2.6 rmdir指令 && rm 指令 0 .引言 如今,Linux 在服务器…

公众号的AI聊天机器人已修复!谷歌Gemini Pro 10大使用场景解析

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

Kafka重要配置参数全面解读(重要)

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Kafka重要配置参数全面解读(重要 前言auto.create.topics.enableauto.leader.rebalance.enablelog.retention.{hour|minutes|ms}offsets.topic.num.partitions 和 offsets.topic.replication.factorlo…
最新文章