赞
踩
插入记录插入记录使用 INSERT 语句
语法格式:
INSERT [ TOP ( expression ) [ PERCENT ] ]
[INTO] table_or view_name /*表或视图名*/
{
[ (column_list)] /*列的列表*/
{ VALUES /*指定列值的子句*/
({DEFAULT | NULL |expression} [,…n]) /*列值的构成形式*/
| derived_table /*结果集*/
| exectute_statement /*有效的 EXECTUTE 语句*/
}
}
| DEFAULT VALUES /*所有列均取默认值*/
[; ]
参数说明
:
TOP ( expression ) [ PERCENT ]
:指定将插入的随机行的数目或百分比。expression 可以是行数或行的百分比。在和 INSERT、UPDATE 或 DELETE 语句结合使用的 TOP 表达式中引用的行不按任何顺序排列。
INTO:
一个可选的关键字,可以将它用在INSERT 和目标表之间。
table_or view_name
:要接收数据的表或视图的名称。
( column_list )
:要在其中插入数据的一列或多列的列表。必须用括号将 column_list 括起来,并且用逗号进行分隔
。如果某列不在 column_list 中,则 SQL Server Database Engine 必须能够基于该列的定义提供一个值;否则不能加载行。如果列满足下面的条件,则数据库引擎将自动为列提供值:
具有 IDENTITY 属性。使用下一个增量标识值。
有默认值。使用列的默认值。
具有 timestamp 数据类型。
使用当前的时间戳值。
可为空值。使用空值。
是计算列。使用计算值。
当向标识列中插入显式值时,必须使用column_list 和 VALUES 列表,并且表的 SET IDENTITY_INSERT 选项必须为 ON。
VALUES
:引入要插入的数据值的列表。对于column_list(如果已指定)或表中的每个列,都必须有一个数据值。必须用圆括号将值列表括起来。如果 VALUES 列表中的各值与表中各列的顺序不相同,或者未包含表中各列的值,则必须使用 column_list 显式指定存储每个传入值的列
。
DEFAULT
:强制数据库引擎 加载为列定义的默认值。如果某列并不存在默认值,并 且该列允许空值,则插入NULL。对于使用 timestamp 数据类型定义的列,插入下一个时间戳值。DEFAULT 对标识列无效。
expression
:一个常量、变量或表达式。表达式不能包含 SELECT或 EXECUTE 语句。
derived_table
:任何有效的 SELECT语句,它返回将加载到表中的数据行。SELECT 语句不能包含公用表表达式 (CTE)。
execute_statement
:任何有效的EXECUTE 语句,它使用 SELECT 或 READTEXT 语句返回数据。SELECT 语句不能包含 CTE。
DEFAULT VALUES
:强制新行包含为每个列定义的默认值。
表数据添加操作:
基于前面已建立的数据库,对Student表,Teacher表,Course表,SC表进行数据的添加。
--向Student表中添加数据 insert into Student values('01' , '赵雷' , '1990-01-01' , '男',null); insert into Student values('02' , '钱电' , '1990-12-21' , '男',default); insert into Student values('03' , '孙风' , '1990-05-20' , '男',default); insert into Student values('04' , '李云' , '1990-08-06' , '男',default); insert into Student values('05' , '周梅' , '1991-12-01' , '女',default); insert into Student values('06' , '吴兰' , '1992-03-01' , '女',default); insert into Student values('07' , '郑竹' , '1989-07-01' , '女',default); insert into Student values('08' , '王菊' , '1990-01-20' , '女',default); --查看学生表信息添加是否成功 select * from Student --向教师表添加数据 insert into Teacher select '01' , '张三', '教师一部'union select '02' , '李四', '教师二部'union select '03' , '赵六', '教师一部'union select '04' , '周恒', '教师二部'union select '05' , '王五', '教师一部' --查看教师表信息添加是否成功 select * from Teacher --向课程表中添加数据 insert into Course values ('01' , '02' ,'语文'), ('02' , '01' , '数学'), ('03' , '03', '英语' ), ('04' , '04' ,'物理'), ('05' , '05' ,'化学') --查看课程表信息添加是否成功 select * from Course --向成绩表中添加数据 insert into SC values('01' , '01' , 80); insert into SC values('01' , '02' , 90); insert into SC values('01' , '03' , 99); insert into SC values('02' , '01' , 70); insert into SC values('02' , '02' , 60); insert into SC values('02' , '03' , 80); insert into SC values('03' , '01' , 80); insert into SC values('03' , '02' , 80); insert into SC values('03' , '03' , 80); insert into SC values('04' , '01' , 50); insert into SC values('04' , '02' , 30); insert into SC values('04' , '03' , 20); insert into SC values('05' , '01' , 76); insert into SC values('05' , '02' , 87); insert into SC values('06' , '01' , 31); insert into SC values('06' , '03' , 34); insert into SC values('07' , '02' , 89); insert into SC values('07' , '03' , 98); --查看成绩表信息添加是否成功 select * from SC
心得:表的数据输入只要用到了insert语句,虽然语句写起来比较容易理解,但是在实操过程中意外频出。
主要有:
输入的数据与表定义格式字段的属性不匹配
输入的数据与表定义的字段不匹配
如果主表信息未输入,直接输入附表的数据执行会报错,理由是外键约束的原因,所以输入时优先输入主表的数据等
当然,在表数据的输入是使用insert语句,但是使用的方法却又三种,这得看每个人的喜好了吧。不过个人还是喜欢多行输入,这样比较省事,毕竟我是个严重的懒癌患者。
1、逐行输入:insert into table_name values(字段1值,字段2值,.....);
insert into table_name values(字段1值,字段2值,.....);
..............
2、多行输入:insert into table_name values
(字段1值,字段2值,.....),
(字段1值,字段2值,.....),
........
3、联合输入:insert into table_name
select 字段1值,字段2值,.... union
select 字段1值,字段2值,.... union
..........
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。