创建与管理表
数据库中对象:有表、视图、索引、序列、同义词等。
表:基本的数据存储的集合,由行与列组成
视图:从表中抽出的逻辑上相关的数据集合。
序列: 提供有规律的数值
索引:提高查询效率
同义词:给对象起的别名。
Oracle数据库中的表
1、 用户自定义表
表名和列名的命名规范:
必须以字母开头
必须在 1–30 个字符之间
必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
必须不能和用户定义的其他对象重名
必须不能是Oracle 的保留字
创建表必须具备:
必须具备:
• CREATE TABLE权限
• 存储空间
必须指定:
• 表名
• 列名, 数据类型, 尺寸
创建表的语法
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr][, ...]);
数据类型如下:
数据类型 描述
VARCHAR2(size) 可变长字符数据
CHAR(size) 定长字符数据
NUMBER(p,s) 可变长数值数据
DATE 日期型数据
LONG 可变长字符数据,最大可达到2G
CLOB 字符数据,最大可达到4G
RAW (LONG RAW) 原始的二进制数据
BLOB 二进制数据,最大可达到4G
BFILE 存储外部文件的二进制数据,最大可达到4G
ROWID 行地址
创建表的分析:
在数据库中必须遵循一定的规范 这些规范称为范式.目前关系数据库有6种方式,数据库只需要满足3NF即可,需要使用范式对数据库中表进行处理.
下面我以学生信息为例分析:
学号,学生姓名,出生日期,学生性别,所属班级,所属院系,系主任姓名,课程编号,成绩.
分析:
学号:sid 数据类型 varchar2
学生姓名:sname
出生日期:sbirth date
学生性别:ssex
所属班级:sclass
所属院系:sdep
系主任姓名:dname
课程编号:cid
成绩 grade number(5,2)
创建学生信息表
根据如上信息可以创建存储的表 学生信息表 包含医以上的全部信息,但非规范。
分析设计过程:
必须满足3NF范式 但前提必须满足1,2NF
1、 属性不可再分(1NF) ==一对多关系
学生信息表:Sid,sname,sbirth,ssex,sclass,sdep,dname
成绩表: sid cid grade
2、 (前提必须满足1NF )表中的所有非主属性都完全依赖于任一候选键。
Sid->Sname
sid->sbirth
sid->ssex
sid->sclass
sdep->dname
--其他普通属性不应当存在部分依赖于主要属性->此普通属性应当被分离到新的表中去
s(sid,sname,sbirth,ssex,sclass,sdep)
d(sdep,dname)
g(sid,cid,grade)
3、 (前提满足2NF)表中的每一个非主属性都不传递依赖于任何候选键。
s(sid,sname,sbirth,ssex,sclass,sdep)
d(sdep,dname)
g(sid,cid,grade)
在满足2NF后 分析:
Sid->sclass
Sclass->sdep
Sid->sdep
s(sid,sname,sbirth,ssex,sclass)
cd(sclass,sdep)
d(sdep,dname)
g(sid,cid,grade)
2、 Oracle数据字典
2.1查询用户自定义表
//查询用户定义的表的名称
SQL> select table_name from user_tables;
//查询用户自定表的详细特征
SQL> select * from user_tables
//等效于
SQL> select * from tabs;
2.2查询用户定义的各种数据库对象
SQL> select distinct object_type from user_objects;
OBJECT_TYPE
-------------------
SEQUENCE
TABLE
INDEX
2.3 查看用户定义的表、视图、序列和同义词
SQL> select * from user_catalog;
TABLE_NAME TABLE_TYPE
------------------------------ -----------
USESS TABLE
ABC TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE
PRODUCT_SEQ SEQUENCE
ORDERS_SEQ SEQUENCE
ORDERITEM_SEQ SEQUENCE
USERS TABLE
PRODUCT TABLE
ORDERS TABLE
ORDERITEM TABLE
TMP TABLE
PAGES TABLE
STUDENT TABLE
COURSE TABLE
SC TABLE
TEST TABLE
18 rows selected
用户自定表
使用 ALTER TABLE 语句可以:
追加新的列
修改现有的列
为新追加的列定义默认值
删除一个列
使用 ALTER TABLE 语句追加, 修改, 或删除列的语法.
追加
ALTER TABLE table
ADD (column datatype [DEFAULT expr]
[, column datatype]...);
修改
ALTER TABLE table
MODIFY (column datatype [DEFAULT expr]
[, column datatype]...);
删除
ALTER TABLE table
DROP column (column_name);
修改列的名称
ALTER TABLE table_name rename column old_column_name
to new_column_name
案例:
//采用子查询创建customer表 表的结构域users表完全一致
SQL> create table customer as select * from users;
Table created
SQL> commit; //事务提交
Commit complete
//为customer表添加新的列 email 类型varchar2(20).
SQL> alter table customer add email varchar2(20);
Table altered
SQL> commit;
SQL> desc customer;
Name Type Nullable Default Comments
-------- ------------ -------- ------- --------
USERNAME VARCHAR2(20) Y
PASSWORD VARCHAR2(20)
NAME VARCHAR2(20)
ADDRESS VARCHAR2(20) Y
ZIP NUMBER(6) Y
EMAIL VARCHAR2(20) Y
//修改某个字段的类型
SQL> alter table customer modify email number(4);
Table altered
SQL> commit;
Commit complete
SQL> desc customer;
Name Type Nullable Default Comments
-------- ------------ -------- ------- --------
USERNAME VARCHAR2(20) Y
PASSWORD VARCHAR2(20)
NAME VARCHAR2(20)
ADDRESS VARCHAR2(20) Y
ZIP NUMBER(6) Y
EMAIL NUMBER(4) Y
//删除某个字段
SQL> alter table customer drop column email;
Table altered
SQL> commit;
Commit complete
SQL> select * from customer;
//修改表的某个字段的名称
SQL> alter table customer rename column address to addr;
Table altered
SQL> commit;
删除表
数据和结构都被删除
所有正在运行的相关事物被提交
所有相关索引被删除
DROP TABLE 语句不能回滚
修改对象的名称
执行RENAME语句改变表, 视图, 序列, 或同义词的名称
必须是对象的拥有者
//修改对象的名称操作
SQL> rename customer to customers;
清空表
TRUNCATE TABLE 语句:
• 删除表中所有的数据
• 释放表的存储空间
TRUNCATE语句不能回滚
可以使用 DELETE 语句删除数据
//清空表的操作
SQL> truncate table customers;
总结:您已经学会如何使用DDL语句创建, 修改, 删除, 和重命名表.
语句 描述
CREATE TABLE 创建表
ALTER TABLE 修改表结构
DROP TABLE 删除表
RENAME 重命名表
TRUNCATE 删除表中的所有数据,并释放存储空间
分享到:
相关推荐
七、包 包(Package)是PL/SQL的高级特性,将相关的过程和函数组合在一起,提供更强大的模块化功能。包包含一个公共接口(定义公开的子程序和变量)和私有部分(隐藏实现细节)。包有助于保持数据库对象的整洁,提高...
总结来说,"ORACLE第七天"是一个深入学习Oracle数据库的模块,涵盖了源码分析、工具使用和实践操作等多个方面,通过博客文章和压缩包内的资源,学习者可以得到丰富的理论知识和实战经验,进一步提升自己的数据库管理...
这篇笔记总结将深入探讨Oracle的核心概念、关键功能以及常见操作,旨在帮助读者理解和掌握Oracle数据库的关键知识点。 一、Oracle数据库基础 Oracle数据库采用SQL(结构化查询语言)作为其主要的数据交互方式,支持...
Oracle 学习总结 Oracle 是一种关系数据库管理系统,由 Larry Ellison 和 Bob Miner 于 1977 年创立。它是一种对象关系数据库管理系统,支持多种编程语言,包括 Java、Python、C++ 等。 一、创建 Oracle 数据库...
### 韩顺平Oracle课堂资料总结 #### 一、Oracle权限管理与操作 ##### 权限概述 在Oracle数据库中,权限管理是确保数据安全的重要手段之一。权限分为系统权限(System Privileges)和对象权限(Object Privileges)...
七、ORACLE 表的更新操作 表的更新操作是指对表中的数据进行更新、插入、删除等操作。在 Oracle 数据库中,可以使用 UPDATE、INSERT、DELETE 等语句来实现表的更新操作。 八、ORACLE 表与视图的管理 表与视图的...
七、回滚段和事务管理 优化回滚段和事务管理可以降低锁冲突,提高并发性能。 八、自动优化器 Oracle的自动优化器可以根据统计信息自动选择最佳执行路径。定期更新统计信息,确保优化器做出正确的决策。 九、实时...
七、Oracle 权限设置 最后,我们介绍了 Oracle 权限设置的基本命令。我们可以使用 Alter 命令修改用户密码,并使用 Grant 命令授予用户权限。 结语:Oracle Java 环境配置是一个复杂的过程,但通过按照本文中的...
以上就是对Oracle数据库常用优化方法的总结,每一种方法都需要根据实际环境进行细致的分析和实践,才能找到最适合的优化策略。在日常运维中,我们应持续学习和探索,以应对不断变化的业务需求和挑战。
Oracle数据库知识点总结 章节目录 一、Oracle数据库概述 二、Oracle数据库架构与组件 三、SQL语言基础 四、PL/SQL编程 五、数据库对象管理 六、数据备份与恢复 七、性能优化与安全管理 八、如何学习Oracle数据库 九...
#### 七、连接Oracle客户端 - **DLL文件**: 如果使用.NET开发工具连接Oracle数据库,需要确保项目的bin目录中包含了必要的DLL文件,包括`oci.dll`、`Oracle.DataAccess.dll`、`oraociei11.dll`和`OraOps11w.dll`。 ...
#### 七、安装成功 **5. 根据输出日志执行脚本文件** 安装完成后,可以根据输出的日志文件执行一些必要的脚本。 **6. 查看监听是否启动** 检查Oracle监听器是否已经启动。 示例命令: ``` lsnrctl status ``` ...
### 个人经验总结:Oracle数据库SCN号详解 #### 一、引言 在Oracle数据库管理与维护过程中,了解SCN(System Change Number)的概念及其作用至关重要。SCN是Oracle数据库内部用于跟踪数据库状态变化的一个重要机制,...
Oracle 调优总结 Oracle 调优是数据库管理员和开发人员日常工作中的一个关键部分。只有当数据库的性能达到最佳状态时,才能确保业务的顺利运行。下面总结了 Oracle 调优的一些关键点: 一、了解表结构和索引情况 ...
七、总结 在本文档中,我们详细介绍了如何使用 IMPDP 和 EXPDP 工具来实现全备数据库的导入和导出。我们从建立测试数据开始,创建备份目录,创建逻辑目录,全备数据库,删除原来的数据表,最后使用 IMPDP 工具将...
Oracle 存储过程总结 Oracle 存储过程是数据库系统中的一种重要组件,它可以将复杂的业务逻辑封装在一起,提高数据库系统的性能和可维护性。本篇文章将对 Oracle 存储过程进行总结,包括创建存储过程、变量、游标、...
本资料“Oracle进阶 工作中最常用的知识点总结”深入探讨了Oracle数据库的核心概念和技术,对于想要提升Oracle技能的专业人士来说,是一份极具价值的学习资源。 一、Oracle数据库体系结构 Oracle数据库由多个组件...
### Oracle SQL性能优化技巧大总结 #### 一、选择最有效率的表名顺序 **背景**:在基于规则的优化器(RBO)中,Oracle解析器处理FROM子句中的表名是从右向左的。为了提高查询效率,需要合理安排表的顺序。 **技巧...
#### 七、总结 通过上述介绍,我们了解了Oracle数据库中几种主要日志文件的作用及其查看方法。这些日志对于维护数据库系统的稳定性和解决故障具有重要意义。实际操作中,根据具体需求灵活运用上述方法,可以有效...