最基本的用法---Insert,Update,Delete

本文详细介绍了 SQL 中 INSERT 语句的使用方法,包括如何向表中插入单行或多行记录,以及如何指定默认值或使用查询结果作为插入源。还提供了多个示例来帮助理解。

1, Insert

 

INSERT
Name
INSERT -- 在表中创建新行
Synopsis
INSERT INTO table [ ( column [, ...] ) ]
    { 
DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) | query }描述
INSERT 向表中插入新行。 我们可以一次插入用值表达式声明的一行或者一个查询结果表现出来的多个行。 

目标列表中的列
/字段可以按任何顺序排列。 如果完全没有列出任何字段名,那么缺省是全部字段,顺序是按照表声明的时候的顺序; 如果 VALUES 子句或者 query 里面只提供了 N 个字段,那么就是头 N 个字段。 VALUES 子句或者 query 提供的数值是以从左到右的方式与明确或者隐含的字段列表关联的。 

每个没有在明确或者隐含的字段列表众出现的字段都将填充缺省值, 如果有声明的缺省值则用声明的那个,如果没有则用 
null。 

如果每行的表达式不是正确的数据类型,系统将试图进行自动的类型转换。 

要想向表中插入数据,你必须有 
INSERT 权限, 如果你使用了 query 子句插入来自查询里的数据行, 你还需要拥有在查询里使用的表的 SELECT 权限。 

参数

table
现存表的名称(可以有模式修饰)。 

column
表 
table 中的字段名。 必要时,字段名可以有子字段名或者数组下标修饰。(向一个复合类型中的某些字段插入数据的话,其它字段是空。) 

DEFAULT VALUES
所有字段都会用它们的缺省值填充。 

expression
赋予对应的 
column 的一个有效表达式或值。 

DEFAULT
对应的 
column 将被它的缺省值填充。 

query
一个查询(
SELECT 语句),它提供插入的数据行。 请参考 SELECT 语句获取语法描述。 

输出
成功完成后,一条 
INSERT 命令返回一个下面形式的命令标签 

INSERT oid countcount 是插入的行数。 如果 count 正好是一,并且目标表有 OID, 那么 oid 是赋予插入行的 OID。 否则 oid 是零。 

例子
向表 films 里插入一行: 

INSERT INTO films VALUES
    (
'UA502''Bananas'105'1971-07-13''Comedy''82 minute');
在这个个例子里面省略了字段 
len 因此在它里面将存储缺省值: 

INSERT INTO films (code, title, did, date_prod, kind)
    
VALUES ('T_601''Yojimbo'106'1961-06-16''Drama');
在这个例子里,我们用 
DEFAULT 子句作为日期字段,而不是声明一个数值: 

INSERT INTO films VALUES
    (
'UA502''Bananas'105DEFAULT'Comedy''82 minute');
INSERT INTO films (code, title, did, date_prod, kind)
    
VALUES ('T_601''Yojimbo'106DEFAULT'Drama');
插入一行完全由缺省值组成的数据行: 

INSERT INTO films DEFAULT VALUES;
从表 tmp 中插入几行到表 films 中, 字段布局与 films 相同: 

INSERT INTO films SELECT * FROM tmp_films WHERE date_prod < '2004-05-07';

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值