Oracle建表、更新、插入数据

1.建表三范式
  • 第一范式:要求表中每一列都是不可分割的原子值,即每一列都不能再分解为其他列。比如员工信息表的姓名、年龄、性别、学号等信息组成。其中,姓名是不可分割的最小单位,因此可以作为该表的一个字段。
  • 第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。比如,在一个员工信息表中,除了员工的基本信息外,还有员工的职位、薪资等信息。
  • 第三范式:在第二范式的基础上,要求表中的每一列都与主键直接相关,而不是间接相关,并且不存在传递依赖关系。比如,在一个员工信息表中,除了员工的基本信息外,还有员工的职位、薪资等信息。此时,可以将员工信息表中的职位和薪资列设置为外键,并与员工基本信息表中的主键直接关联起来。这样就可以避免因为某个员工离职而导致其下属员工的薪资等信息受到影响。

--外键是指一个表中的一个或多个字段,它们的值必须在另一个表中的某个字段中存在。外键用于建立和加强两个表数据之间的链接,以保证数据的完整性和一致性。

建表

1.CREATE TABLE 表名 
(
字段1, 数据类型1 (长度),
字段2, 数据类型2 (长度),
字段3, 数据类型3 (长度)
....
)

** 数据类型为 NUMBER 时, 可以不同指定长度,默认最长为 38 位.
** 数据类型为 VARCHAR2 时, 必须指定长度,且最长为 4000
** 数据类型为 DATE 时,不需要指定长度 

插入数据

INSERT INTO 表名 values (值1,值2,值3,值4...) 

INSERT INTO 表名 (列名1,列名2,列名3....) VALUES (值1,值2,值3....) -- 可以指定插入列

COMMIT;--提交事务
ROLLBACK;--回滚事务

--数据的插入
-- 创建空表
CREATE TABLE EMP_TEST7 
AS 
SELECT 
E.EMPNO,
E.ENAME,
E.HIREDATE,
E.HIREDATE AS ETL_DATE
FROM EMP E 
WHERE 1=2;
2.-- 修改表
2.1 语法结构1:添加列
ALTER TABLE 表名 ADD 列名 数据类型
2.2 语法结构2:修改列的类型
ALTER TABLE 表名 MODIFY 列名 数据类型 

-- 如果该列已存在其他数据类型,则不能修改,可以修改空列
-- 更多用于增加长度

2.3 语法结构3: 修改列名 
ALTER TABLE 列名 RENAME COLUMN 旧列名 TO 新列名 
2.4 语法结构4: 删除列
ALTER TABLE 表名 DROP COLUMN 列名
2.5 语法结构5: 修改表名 
ALTER TABLE 表名 RENAME TO 新表名
3. --删表
DROP TABLE 表名 -- 删除表结构和数据 

DELETE FROM 表名 -- 删除表中的所有数据

DELETE FROM 表名 WHERE --指定条件进行删除

DELETE FROM EMP_TEST7 WHERE ENAME='SMITH';

-- DELETE 删除数据会涉及到回滚和提交的操作.

-- **截断表 

TRUNCATE TABLE 表名 -- 摧毁并重建表结构 
 4. -- 修改语句: UPDATE
UPDATE 表名 SET 修改的字段 = 值 -- 修改某字段的所有值

UPDATE 表名 SET 修改的字段 = 值 WHERE 修改数据的条件 -- 按条件修改某个字段的值

UPDATE 表名 SET 修改的字段1=值1 , 修改的字段2=值2 ,.....
WHERE 修改数据的条件 -- 修改多个字段

你可能感兴趣的:(Oracle基础,数据库)