创建与管理表
数据库中对象:有表、视图、索引、序列、同义词等。
表:基本的数据存储的集合,由行与列组成
视图:从表中抽出的逻辑上相关的数据集合。
序列: 提供有规律的数值
索引:提高查询效率
同义词:给对象起的别名。
Oracle数据库中的表
1、 用户自定义表
表名和列名的命名规范:
l 必须以字母开头
l 必须在 1–30 个字符之间
l 必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
l 必须不能和用户定义的其他对象重名
l 必须不能是Oracle 的保留字
创建表必须具备:
l 必须具备:
• CREATE TABLE权限
• 存储空间
l 必须指定:
• 表名
• 列名, 数据类型, 尺寸
创建表的语法
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即可,需要使用范式对数据库中表进行处理.
范式是数据库设计中一个重要的过程,可以通过它来消除数据库中冗余的数据。因此,在设计数据库之前,还需要对数据库中的表进行范式出来,以确保数据库遵从适当的范式,从而使设计数据库更加规范,范式为数据库提供了许多好处,具有很多有点:
大大减少了数据冗余
改进了数据库整体的组织
增加数据库设计的灵活性
在创建数据库时我们还必须理解函数依赖:
函数依赖的定义为:设有关系模式R(U),X和Y都是U的子集;若对于R(U)的任一可能的关系r,r中不存在俩行记录在X上的值相同而在Y上的值不同,则称属性子集X函数决定属性子集Y,或者称Y函数依赖X,则记为X--------->Y.
下面我以学生信息为例分析:
学号,学生姓名,出生日期,学生性别,所属班级,所属院系,系主任姓名,课程编号,成绩.
分析:
学号: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 语句可以:
l 追加新的列
l 修改现有的列
l 为新追加的列定义默认值
l 删除一个列
使用 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;
删除表
l 数据和结构都被删除
l 所有正在运行的相关事物被提交
l 所有相关索引被删除
l DROP TABLE 语句不能回滚
修改对象的名称
l 执行RENAME语句改变表, 视图, 序列, 或同义词的名称
l 必须是对象的拥有者
//修改对象的名称操作
SQL> rename customer to customers;
清空表
l TRUNCATE TABLE 语句:
• 删除表中所有的数据
• 释放表的存储空间
l TRUNCATE语句不能回滚
l 可以使用 DELETE 语句删除数据
//清空表的操作
SQL> truncate table customers;
总结:您已经学会如何使用DDL语句创
分享到:
相关推荐
本文将基于标题和描述中的内容,对Oracle的基础知识、安装步骤以及SQL查询语句进行详尽的阐述。 首先,新安装的Oracle数据库的配置步骤至关重要。在安装完成后,需要通过Database Configuration Assistant(DBCA)...
### Oracle基础知识总结初学者必备 Oracle数据库作为一款广泛使用的数据库管理系统,在企业和开发领域扮演着重要的角色。对于初学者而言,掌握其基础知识是非常必要的。本文将根据提供的内容进行深入解析,并结合...
"Oracle核心基础总结"涵盖了Oracle数据库系统的基础知识,对于初学者和需要巩固基础的IT从业者来说,是非常宝贵的资源。以下是Oracle核心基础的一些关键知识点: 1. 数据库概念:了解数据库的基本构成,如表、索引...
系统的总结了oracle的基础知识,对oracle基础想补充的朋友应该很有帮助,语言简练,都是开发时常用到的知识
以下是对文档中提到的Oracle基础命令的详细解释: 1. **数据泵语句**:Oracle数据泵(Data Pump)是一种高速数据传输机制,用于在数据库之间导入和导出数据。创建目录对象是为了指定数据泵操作的数据文件存放位置。...
以下是对Oracle基础知识的详细总结: 第一章:Oracle概述 Oracle数据库是Oracle公司的产品,提供了一整套数据管理解决方案。它支持多种操作系统平台,如Windows、Linux、Unix等。Oracle采用SQL作为查询语言,并提供...
以下是我对Oracle学习的一些心得和总结,主要聚焦于数据库对象,尤其是表及其约束。 1. **数据库对象**: 数据库对象是Oracle中的基本组成部分,包括表、视图、索引、存储过程、函数、触发器等。这些对象共同构成...
本文将根据"oracle学习总结(适合刚学习oracle的人)"这一主题,深入探讨Oracle数据库的基础知识,帮助初学者建立起对Oracle的基本理解。 1. **Oracle简介**:Oracle数据库是由美国甲骨文公司开发的一款产品,它...
掌握SQL的基础语法,如SELECT、INSERT、UPDATE、DELETE语句,以及联接(JOIN)、子查询、聚合函数(COUNT、SUM、AVG等)和分组(GROUP BY)等,是每个Oracle开发者的基本功。 二、创建表 创建表是数据库设计的第一...
本总结将深入探讨Oracle基础知识,包括过程、游标、包、视图以及导入导出等关键概念。 首先,让我们关注“过程”。在Oracle中,过程是一系列SQL语句和PL/SQL代码的集合,它们可以执行特定任务。过程可以接受参数,...
本文将根据提供的文档内容,总结和扩展Oracle数据库的基础知识点,帮助初级程序员更好地理解和掌握Oracle。 #### 一、Oracle 用户管理 1. **创建用户** - 命令格式:`CREATE USER 用户名 IDENTIFIED BY 密码;` ...
一、Oracle数据库基础 Oracle数据库采用SQL(结构化查询语言)作为其主要的数据交互方式,支持ACID(原子性、一致性、隔离性和持久性)事务特性,确保数据的完整性和一致性。Oracle数据库系统由多个组件构成,包括...
本文将深入讲解Oracle数据库的基础命令,涵盖数据库的基本概念、关系数据库模型、数据操作语言(DDL、DML、DCL)以及数据库设计方法。 首先,理解数据库基础至关重要。数据库是一个组织和存储数据的系统,它允许...
1. **SQL语言**:Oracle数据库的基础是SQL(结构化查询语言),用于数据查询、更新、插入和删除。在实例中,我们可能看到如何使用SELECT语句进行复杂查询,JOIN操作连接多个表,以及如何使用WHERE子句进行条件筛选。...
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性...
Oracle数据库是世界上最广泛使用的数据库管理系统之一,主要用于存储和管理...这些是Oracle数据库的基础知识,对于理解和操作Oracle数据库至关重要。通过深入学习和实践,可以更好地掌握Oracle的各种特性和高级功能。
总结,Oracle基础知识涵盖了数据库架构、数据类型、SQL操作、表空间管理以及备份恢复策略等多个方面。掌握这些基础知识对于理解和使用Oracle数据库至关重要,有助于构建高效稳定的企业级数据环境。
本资料“oraclePPT总结及笔记”是针对青软实训的学员们设计的一套全面的学习资源,旨在帮助他们深入理解和掌握Oracle数据库的相关知识。以下是基于这个主题的详细知识点讲解: 1. **Oracle数据库基础**: - 数据库...
### Oracle学习总结 #### SQL基础语法 1. **数据定义语言(DDL)** - **创建表**:`CREATE TABLE table_name (column_name datatype constraints,...);` - `NOT NULL`:指定列不允许有空值。 - `UNIQUE`:指定列...