您的位置:首页 > 数据库 > Oracle

Oracle数据库学习<三>

2015-12-10 09:45 344 查看


三、数据的增删改

3.1. 数据的插入

数据表是数据的容器,没有任何数据的数据表是没有意义的,数据表创建完成以后比如

向其中插入有用的数据才能使得系统运转起来。

3.1.1. 简单的 INSERT 语句

NSERT INTO 语句用来向数据表中插入数据,比如执行下面的语句就可以向 T_Person

表中插入一条数据:
INSERT INTO T_Person(FName,FAge,FRemark) VALUES('Tom',18,'USA')

 

我们来检验一下数据是否真的插入数据表中了,执行下面的 SQL 语句:

SELECT * FROM T_Person

 

FName

FAge

FRemark

Tom

18

USA

 

INSERT 语句中列的顺序可以是任意的,比如我们也可以用下面的 SQL 来插入数据:

INSERT INTO T_Person(FAge,FName,FRemark) VALUES(21,'Kimisushi','Korea')

FName

FAge

FRemark

Tom

18

USA

Kimisushi

21

Korea

 

可见 INSERT 语句中列的顺序不会影响数据插入的结果。

 

3.1.2 简化的 INSERT 语句

INSERT 语句中也并不需要我们指定表中的所有列,比如在插入数据的时候某些字段没

有值,我们可以忽略这些字段。下面我们插入一条没有备注信息的数据:
INSERT INTO T_Person(FAge,FName) VALUES(22,'LXF')

 

INSERT 语句还有另一种用法,可以不用指定要插入的表列,这种情况下将按照定义表中字段顺序来进行插入,我们执行下面的 SQL:
INSERT INTO T_Person VALUES('luren1',23,'China')     (不推荐)

3.1.3 非空约束对数据插入的影响

正如“非空约束”表达的意思,如果对一个字段添加了非空约束,那么我们是不能向这

个字段中插入 NULL 值的。T_Debt 表的 FAmount 字段是有非空约束的,如果我们执行下面

SQL:
INSERT INTO T_Debt (FNumber, FPerson) VALUES ('1', 'Jim')

这句 SQL 中没有为字段 FAmount 赋值,也就是说 FAmount 为空值。我们执行这句 SQL

以后数据库系统会报出类似如下的错误信息:

不能将值 NULL 插入列 'FAmount',表 'demo.dbo.T_Debt';列不允许有空值。INSERT

失败。

如果我们为 FAmount 设置非空值的话,则会插入成功,执行下面的 SQL:
INSERT INTO T_Debt (FNumber,FAmount, FPerson) VALUES ('1',200, 'Jim')

 

3.1.4 主键对数据插入的影响

主键是在同一张表中必须是唯一的, 如果在进行数据插入的时候指定的主键与表中已有

的数据重复的话则会导致违反主键约束的异常。

 

3.1.5 外键对数据插入的影响

外键是指向另一个表中已有数据的约束,因此外键值必须是在目标表中存在的。如果插

入的数据在目标表中不存在的话则会导致违反外键约束异常。

T_Debt 表中 FPerson 字段是指向表 T_Person 的 FName 字段的外键,如果我们执行下面 SQL:

INSERT INTO T_Debt (FNumber,FAmount, FPerson) VALUES ('3',100, 'Jerry')

由于在 T_Person 表中不存在 FName 字段等于“Jerry”的数据行,所以会数据库系统会

报出类似如下的错误信息:
INSERT 语句与 FOREIGN KEY 约束"FK__T_Debt__FPerson__1A14E395"冲突。该冲突发

生于数据库"demo",表"dbo.T_Person", column 'FName'。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 数据库