`
孔雀王子
  • 浏览: 42210 次
  • 性别: Icon_minigender_1
  • 来自: 河北
文章分类
社区版块
存档分类
最新评论

Oracle数据库管理、应用与开发(十二)

阅读更多

十八、创建与管理表

18.1 数据库中的对象

表:基本的数据存储的集合,由行与列组成

视图:从表中抽出的逻辑上相关的数据集合。

序列: 提供有规律的数值

索引:提高查询效率

同义词:给对象起的别名。

18.2 Oracle数据库中的表

18.2.1 用户自定义表

18.2.1.1 表名和列名的命名规范:

必须以字母开头

必须在 1–30 个字符之间

必须只能包含 A–Z, a–z, 0–9, _, $, #

必须不能和用户定义的其他对象重名

必须不能是Oracle 的保留字

18.2.1.2 创建表必须具备的条件

CREATE TABLE权限

存储空间

必须指定表名、列名、数据类型、尺寸

18.2.1.3 创建表的语法

              CREATE  TABLE  table_name

                  (column datatype [DEFAULT expr][, ...]);

           18.2.1.4 数据类型

数据类型            描述

VARCHAR2(size)    可变长字符数据

CHAR(size)        定长字符数据

NUMBER(p,s)      可变长数值数据

DATE              日期型数据

LONG              可变长字符数据,最大可达到2G

CLOB              字符数据,最大可达到4G

RAW (LONG RAW)    原始的二进制数据

BLOB              二进制数据,最大可达到4G

BFILE             存储外部文件的二进制数据,最大可达到4G

ROWID             行地址

           18.2.1.5创建表的分析

    在数据库中必须遵循一定的规范,这些规范称为范式。目前关系数据库有6种方式,数据库只需要满足3NF即可,需要使用范式对数据库中表进行处理。

              下面我以学生信息为例分析

   学生信息表包含的字段:学号、学生姓名、出生日期、学生性别、所属班级、所属院系、系主任姓名、课程编号、成绩

              学号:sid  varchar2

              学生姓名:sname

              出生日期:sbirth  date

              学生性别:ssex      

              所属班级:sclass

              所属院系:sdep

              系主任姓名:dname

              课程编号:cid

              成绩:grade  number(5,2)

根据如上信息可以创建存储学生信息表,包含以上的全部信息,但非规范。

18.2.1.6分析设计过程

                  必须满足3NF,但前提必须满足1NF2NF

属性不可再分(1NF),一对多关系

学生信息表:sidsnamesbirthssexsclasssdepdname

成绩表:sid cid grade

(前提必须满足1NF )表中的所有非主属性都完全依赖于任一候选键。

sid sname

sid sbirth

sid ssex

sid sclass

sdep dname

其他普通属性不应当存在部分依赖于主要属性,此普通属性应当被分离到新的表中去

Student(sid,sname,sbirth,ssex,sclass,sdep)

Dept(sdep,dname)

Grade(sid,cid,grade)

(前提满足2NF)表中的每一个非主属性都不传递依赖于任何候选键。

s(sid,sname,sbirth,ssex,sclass,sdep)

d(sdep,dname)

g(sid,cid,grade)

在满足2NF后分析

Sid sclass

Sclass dep

Sid sdep

Student(sid,sname,sbirth,ssex,sclass)

Class_dept(sclass,sdep)

Ddpt(sdep,dname)

Grade(sid,cid,grade)

18.2.2 Oracle数据字典

           18.2.2.1查询用户自定义表

//查询用户定义的表的名称
SQL> select table_name from user_tables;
//查询用户自定表的详细特征
SQL> select * from user_tables
//等效于
SQL> select * from tabs;
18.2.2.2 查询用户定义的各种数据库对象
SQL> select distinct object_type from user_objects; 
OBJECT_TYPE
-------------------
SEQUENCE
TABLE
INDEX
18.2.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

 

18.3 修改表

       18.3.1 追加、修改和删除字段

使用 ALTER TABLE 语句追加、修改、或删除列的语法形式:

18.3.1.1追加

ALTER TABLE table_name

ADD (column datatype [DEFAULT expr]

              [, column datatype]...);

18.3.1.2 修改

ALTER  TABLE  table_name

MODIFY (column datatype [DEFAULT expr]

              [, column datatype]...);

18.3.1.3删除

ALTER TABLE table

DROP  column  (column_name);

18.3.2 修改列的名称

ALTER TABLE table_name rename column old_column_name

to new_column_name

18.3.3 案例

//采用子查询创建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;

 

18.4 删除表

数据和结构都被删除

所有正在运行的相关事物被提交

所有相关索引被删除

DROP TABLE 语句不能回滚

18.5 修改对象的名称

执行RENAME语句改变表, 视图, 序列, 或同义词的名称

必须是对象的拥有者

//修改对象的名称操作

SQL> rename customer to customers;

18.6 清空表

TRUNCATE TABLE 语句:

删除表中所有的数据

释放表的存储空间

TRUNCATE语句不能回滚

可以使用 DELETE 语句删除数据

//清空表的操作

SQL> truncate table customers;

18.7 总结

您已经学会如何使用DDL语句创建、修改、删除、和重命名表。

语句               描述

CREATE TABLE        创建表

ALTER TABLE          修改表结构

DROP TABLE           删除表

RENAME                重命名表

TRUNCATE              删除表中的所有数据,并释放存储空间

 

 

分享到:
评论

相关推荐

    Oracle数据库系统应用与开发

    Oracle数据库系统是全球广泛使用的...通过深入学习“Oracle数据库系统应用与开发”,无论是初学者还是经验丰富的开发者,都能增强对Oracle数据库的理解,提升开发和管理能力,为实际项目中的高效数据处理打下坚实基础。

    oracle数据库系统应用与开发

    对于初学者来说,理解Oracle数据库系统应用与开发的基础至关重要,这将帮助他们掌握数据库的核心概念,从而在IT行业中建立稳固的基础。 一、Oracle数据库系统概述 Oracle数据库系统是Oracle公司开发的,它采用SQL...

    oracle 数据库管理与应用系统开发代码

    Oracle数据库管理系统是全球广泛使用的大型关系型数据库系统...以上只是Oracle数据库管理与应用系统开发的一部分知识,实际操作中还需要结合具体场景和需求,灵活运用各种工具和技术,以确保系统的稳定运行和高效开发。

    Oracle 10g数据库管理、应用与开发标准教程

    由浅入深地介绍了Oracle 10g系统的使用方法和基本管理。...本书全面介绍使用Oracle数据库管理应用与开发知识,适合作为普通高校计算机专业Oracle教材,也可以作为Oracle数据库开发和应用人员的参考资料。

    oracle 数据库的应用开发

    oracle 数据库的应用开发 oracle 数据库的应用开发

    Oracle数据库的应用开发 Oracle数据库的应用开发.ppt

    Oracle数据库在应用开发中扮演着至关重要的角色,它是一个强大且广泛使用的数据库管理系统,尤其适合企业级的数据存储和处理。本教程将深入讲解如何基于Oracle数据库进行应用开发,包括数据库设计的方法、人事管理...

    Oracle 11g中文版数据库管理、应用与开发标准教程

    Oracle 11g中文版数据库管理、应用与开发标准教程

    Oracle数据库应用与开发

    本课程“Oracle数据库应用与开发”旨在帮助学生深入理解和掌握Oracle数据库的相关知识,包括其基本概念、架构、SQL语言、数据管理、性能优化及应用程序开发等。 一、Oracle数据库基础 Oracle数据库系统基于客户-...

    Oracle数据库应用与开发实例教程

    体验数据库的应用→认识 Oracle的工作环境、体验Oracle 10g环境中常用工具操作→数据库的创建与管理→数据表的创建与管理→管理视图→SQL编程语言→PL/SQL编程语言→管理PLSQL存储过程与触发器 →管理安全性→数据库...

    Oracle数据库应用开发及实践.rar

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着重要的地位...从数据库设计、SQL编程、PL/SQL开发,到事务处理、安全管理以及备份恢复,全方位覆盖了Oracle数据库应用开发的各个方面。

    Oracle数据库应用与开发实例教程[吴海波主编][电子教案]

    吴海波主编的《Oracle数据库应用与开发实例教程》是一本深入浅出的教材,旨在帮助学习者掌握Oracle数据库的使用和开发技巧。本教程结合实际案例,提供了丰富的学习材料,对于学生和专业人士来说都是宝贵的参考资料。...

    Oracle10g数据库管理与应用系统开发光盘

    Oracle10g数据库管理系统是Oracle公司推出的一款强大的关系型数据库管理系统,主要应用于企业级的数据存储、管理和分析。...通过学习和掌握这些内容,可以有效地管理和开发高效、稳定、安全的Oracle数据库应用系统。

    Oracle 数据库管理与应用系统开发

    Oracle 数据库管理与应用系统开发: Oracle编程 创建存储过程 创建自定义类型 使用存储过程和函数 创建存储过程 创建函数 使用触发器和作业 创建触发器 创建序列等 跟踪和调试 创建存储过程 创建...

    Oracle数据库应用与开发案例教程

    《Oracle数据库应用与开发案例教程》是一本专为学习Oracle数据库应用与开发的读者精心编写的教材。本书深入浅出地介绍了Oracle数据库的基础知识、管理技巧以及开发实践,旨在帮助读者掌握Oracle数据库的核心技术和...

    Oracle数据库的开发与应用培训.doc

    Oracle数据库的开发与应用培训

    ORACLe数据库管理员教程

    Oracle数据库管理员教程旨在帮助读者...通过阅读指定的参考书籍,如《ORACLE数据库系统基础》、《数据库管理及应用开发》和《ORACLE数据库管理员教程》,可以深入理解Oracle数据库管理的各个方面,提升DBA的专业技能。

Global site tag (gtag.js) - Google Analytics