任务描述
在 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 文件,得到数据;
-
将得到的数据与答案比较,判断代码是否正确。
如果操作正确,你将得到如下的结果:
开始你的任务吧,祝你成功!
实验代码