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 ********** --
gouse 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 ********** --
goSET 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 ********** --
gouse 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 ********** --
goSET NOCOUNT ONinsert into shopping (Name, address) values ('eBay', 'www.ebay.com')
goSET NOCOUNT ON-- ********** insert ********** --
-- ********** Begin ********** --
insert into shopping (Name, address) 
values 
('amazon', 'www.amazon.com')-- ********** End ********** --
goSET 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 ********** --
gouse 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 ********** --
goSET NOCOUNT ON-- ********** insert ********** --
-- ********** Begin ********** --
insert into prices (Name,price)values('Harry Potter','$128')-- ********** End ********** --
goSET NOCOUNT ONinsert into prices (Name,price)values ('Walden', '$5')
goSET NOCOUNT ON-- ********** update ********** --
-- ********** Begin ********** --
update prices
set price='$6'
where ID=2;-- ********** End ********** --
go

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

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

相关文章

【Pytorch入门】小土堆PyTorch入门教程完整学习笔记(详细笔记并附练习代码 ipynb文件)

小土堆PyTorch入门教程笔记 最近在观看PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】顺便做点笔记,方便回看,同时也希望记录的笔记能够帮助到更多在入门的小伙伴~ 【注】仅记录个人觉得重要的知识&#xff0c…

cas学习2:idea里搭建cas项目

在上篇中介绍了cas服务在tomcat中怎么启动的及某j集成cas,这篇讲下idea怎么集成cas成一个项目,为后续的定制自己的项目做好铺垫。 1.下载CAS 模板 Overlay Template,我这里使用 Apereo CAS 5.3 版本,JDK需要1.8 地址&#xff1a…

JavaWeb后端——HTTP协议/Tomcat

HTTP HTTP协议:无状态,对事务处理没有记忆能力。每次请求-响应都是独立的。后一次请求不会记录前一次请求数据。缺点:多次请求之间不能共享数据,优点:速度快。 HTTP协议请求报文: HTTP协议响应报文&#x…

JVM篇详细分析

JVM总体图 程序计数器: 线程私有的,每个线程一份,内部保存字节码的行号,用于记录正在执行字节码指令的地址。(可通过javap -v XX.class命令查看) java堆: 线程共享的区域,用来保存对…

MATLAB:优化与规划问题

一、线性规划 % 线性规划(Linear programming, 简称LP) fcoff -[75 120 90 105]; % 目标函数系数向量 A [9 4 7 54 5 6 105 10 8 53 8 9 77 6 4 8]; % 约束不等式系数矩阵 b [3600 2900 3000 2800 2200]; % 约束不等式右端向量 Aeq []; % 约束等式系…

实验2-spark编程

实验目的 (1)通过实验掌握Spark的基本编程方法; (2)熟悉RDD到DataFrame的转化方法; (3)熟悉利用Spark管理来自不同数据源的数据。 实验内容 1.Spark基本操作 请参照…

ROUYI框架地址

1、原版系统地址与文档 https://gitee.com/dromara/RuoYi-Cloud-Plus?_fromgitee_search 源码地址 https://plus-doc.dromara.org/#/ruoyi-cloud-plus/home 后端地址 https://plus-doc.dromara.org/#/plus-ui/home 前端地址 前端代码地址: RuoYi-Vue-Plus: 多租户…

maven的依赖继承

先说一下创建子maven工程的步骤 继承 继承的作用:在父工程中,统一管理项目中的依赖信息,进行统一的版本控制 继承的背景是:对一个大型的项目进行了模块拆分,一个project下,创建了很多的module&#xff0c…

东特科技现已加入2024第13届国际生物发酵产品与技术装备展

参展企业介绍 温州东特科技有限公司是一家集设计、生产、销售及服务为一体的卫生级流体设备企业。专业从事各种乳食品、制药、化工、啤酒设备、不锈钢卫生级阀门,管件,视镜,及非标配件定制等产品的销售与服务。先进的设计理念专业的技术优势一…

matlab 复制点云

目录 一、概述1、算法概述2、主要函数3、参考文献二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 1、算法概述

docker部署ubuntu

仓库: https://hub.docker.com/search?qUbuntu 拉一个Ubuntu镜像 docker pull ubuntu:18.04 查看本地镜像: docker images 运行容器 docker run -itd --name ubuntu-18-001 ubuntu:18.04 通过ps命令可以查看正在运行的容器信息 docker ps 进入容器 最…

数据文件操作

一、什么是文件? 硬盘(磁盘)上的文件是文件。 在程序设计中,我们从文件功能的角度来分类的话,可以分为程序文件和数据文件。 1.1程序文件 程序文件包含源程序文件(后缀为.c),目标文…

CAN总线系列一:初识CAN总线

CAN协议简介 CAN是控制器局域网络(Controller Area Network)的简称,它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11519),是国际上应用最广泛的现场总线之一。 一、总线特点&#…

夜晚水闸3D可视化:科技魔法点亮水利新纪元

在宁静的夜晚,当城市的霓虹灯逐渐暗淡,你是否曾想过,那些默默守护着城市安全的水闸,在科技的魔力下,正焕发出别样的光彩?今天,就让我们一起走进夜晚水闸3D模型,感受科技为水利带来的…

物联网实战--入门篇之(一)物联网概述

目录 一、前言 二、知识梳理 三、项目体验 四、项目分解 一、前言 近几年很多学校开设了物联网专业,但是确却地讲,物联网属于一个领域,包含了很多的专业或者说技能树,例如计算机、电子设计、传感器、单片机、网…

C语言如何实现函数单个形参添加默认值

前言 (1)如果有嵌入式企业需要招聘湖南区域日常实习生,任何区域的暑假Linux驱动实习岗位,可C站直接私聊,或者邮件:zhangyixu02gmail.com,此消息至2025年1月1日前均有效 (2&#xff0…

大话设计模式之简单工厂模式

简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,属于工厂模式的一种。在简单工厂模式中,有一个工厂类负责根据输入参数的不同来创建不同类的实例。 简单工厂模式包含以下几个要素: 1. **工厂类&#xff0…

day72Html

常用标签: 分类: 块级标签:独立成行 行级标签:不独立成行,同一行可放多个行级标 注意网页显示时,忽略空白字符,(回车符,空格,tab制表符) 一)块级标签&#xf…

【明道云】如何让用户可以新增但不能修改记录

【背景】 遇到一个需求场景,用户希望新增数据后锁住数据不让更改。 【分析】 在设计表单时直接将字段设置只读是不行的。字段设置只读将会直接让界面上此字段的前端组件不可编辑。包括新增时也无法填入。显然是不符合需求的。 需要既能新增,新增后又不…

【WebJs 爬虫】逆向进阶技术必知必会

前言 在数字化时代,网络爬虫已成为一种强大的数据获取工具,广泛应用于市场分析、竞争对手研究、舆情监测等众多领域。爬虫技术能够帮助我们快速、准确地获取网络上的海量信息,为决策提供有力支持。然而,随着网络环境的日益复杂和…