ORACLE_2表得基本操作

171 阅读3分钟

1.基本操作

(1)创建表:

create table username.table_name(
    columnName dataType [default expression][colum columnStraint],
    -- 多个字段...
)[tablespace tableSpaceName]

columnName : 列名称、dataType : 列类型

约束:

非空(NOT NULL)约束:顾名思义,所约束的列不能为NULL值。否则就会报错

唯一(UNIQUE)约束:在表中每一行中所定义的这列或这些列的值都不能相同。必须保证唯一性。否则就会违法约束条件。

主键(PRIMARY KEY)约束:唯一的标识表中的每一行,不能重复,不能为空。 创建主键或唯一约束后,ORACLE会自动创建一个与约束同名的索引(UNIQUENES为UNIQUE唯一索引)。需要注意的是:每个表只能有且有一个主键约束。

外键(FOREIGN KEY)约束:用来维护从表(Child Table)和主表(Parent Table)之间的引用完整性. 外键约束是个有争议性的约束,它一方面能够维护数据库的数据一致性,数据的完整性。防止错误的垃圾数据入库; 另外一方面它会增加表插入、更新等SQL性能的额外开销,不少系统里面通过业务逻辑控制来取消外键约束。

条件(CHECK)约束:表中每行都要满足该约束条件。条件约束既可以在表一级定义也可以在列一级定义。在一列上可以定义任意多个条件约束。

REF约束的定义:REF column by definition references an object in another object type or in a relational table. A REF constraint lets you further describe the relationship between the REF column and the object it references.(根据定义,REF列引用另一对象类型或关系表中的对象。 REF约束允许您进一步描述REF列和它引用的对象之间的关系。  )

(2)修改表的基本语法如下:


alter table tableName  
​
[add(columnName dataType default expression,...n)] --添加列  
​
[modify(columnName dataType[columnStraint],...n)] --修改列  
​
[drop drop_clause] --删除列或约束条件 drop column columnName  

(3)删除表的语法:

drop table tableName.

(4)在往表中插入记录时,如果需要插入某列的值为空,则值必须置为null,如果列值指定为该列的默认值,则用default。

2.maerge

当需要对一个表根据不同条件分别进行INSERT、UPDATE以及DELETE操作时,可以使用MERGE(融合,合并)语句。MERGE语句可以根据不同条件获取要插入、更新或删除到表中的数据行,然后从1个或多个数据源头对表进行更新或者向表中插入行 。语法格式如下:


MERGE INTO 表名
USING 表名/视图/子查询 ON 连接条件
-- 当匹配得上连接条件时
WHEN MATCHED THEN 
更新、删除操作
-- 当匹配不上连接条件时
WHEN NOT MATCHED THEN 
更新、删除、插入操作

USING:简化的连接查询

使用条件:

1、查询条件必须是等值连接

2、等值连接列必须有相同的名称和数据类型

3.删除数据delete和truncate

delete的语法格式如下:

delete from tableName [where condition] 

该语句的意思是删除tableName表中满足condition条件的记录,当condition省略时则删除表中所有记录。

truncate的语法格式如下:

truncate table tableName        

该语句的意思是删除tableName表中的所有记录,使用truncate可以释放占用的数据块表空间。truncate删除是不能回滚的,而delete删除是可以回滚的。正因为如此使用truncate删除所有记录的速度比用delete删除所有记录的速度快。


持续跟新ing........