表的基本操作(创建与管理)
数据表的基本概念
数据表是一种“行与列”数据的组合,也是数据库中最基本的组成单元,所有数据操作都是建立在数据表之上的。
表中最基本的组成单元是字段,每一个字段都有其类型。
基本数据类型在前面有介绍最常用的VARCHAR2,NUMBER,DATE.
表的创建
CREATE TABLE 用户名.表名称(
字段名称 字段类型 [DEFAULT]
字段名称 字段类型 [DEFAULT]
......
);
表名称及字段名称的定义要求如下:
-
必须以字母开头
-
长度1-30个字符
-
表名称起名要有意义,由字母,数字,下划线组成
-
同一个用户不能使用相同的表名称
-
不能是保留字
例
CREATE TABLE member(
mid NUMBER(5)
name VARCHAR2(50)
age NUMBER(3)
birthday DATE
);
小提示:创建完成后可以使用 SELECT * FROM tab;进行查询创建是否成功;
除了创建新表,还可以复制已知数据表的单列或多列组成新表
格式:
CREATE TABLE 表名称 AS 子查询;
例:
CREATE TABLE myemp10 AS SELECT * FROM emp WHERE deptno=10;
数据表重命名
格式:
RENAME 旧表名称 TO 新表名称;
例:将member表修改为mldnuser表;
RENAME member TO mldnuser;
数据字典
在Oracle中专门提供了一组数据专门用于记录数据库对象信息、对象结构、管理信息、存储信息的数据表,那么这种类型的表就成为数据字典。
分为:
静态数据字典:由表和视图组成
动态数据字典:随数据库运行不断更新的数据表。
表的截断
立即清空数据表,释放资源。
格式:
TRUNCATE TABLE 表名称;
例:截断mldnuser表
TRUNCATE TABLE mldnuser;
表的删除
一般格式:
DROP TABLE 表名称;
闪回:删除之后会留下残余(以防误删除,还留在数据库的回收站recyclebin中)
如果需要恢复:
格式:
FLASHBACK TABLE 表名称 TO BEFORE DROP;
如果需要彻底删除不经回收站
格式:
DROP TABLE 表名称 PURGE;
如果已经执行了第一条语句将信息放入回收站里去了想要删除
格式:
PURGE TABLE 表名称;
如果想要清空回收站
PURGE RECYCLEBIN;
修改表结构
(如果可以尽量把表删了重新加入建立,alter指令慎用)
格式:
ALTER 数据类型 名称;
为表中增加数据字段时需给出字段名称,类型,默认值
格式:
ALTER TABLE 表名称 ADD (字段名称 字段类型 DEFAULT 默认值,...);
如果发现表中某一列设计不合理,对已有列进行修改;
格式:
ALTER TABLE 表名称 MODIFY(字段名称 字段类型 DEFAULT 默认值);
例: 将name字段的长度修改为30,将sex字段的默认值修改为女;
ALTER TABLE member MODIFY(name VARCHAR2(30));
ALTER TABLE member MODIFY(sex VARCHAR2(3) DEFAULT'女');
删除表中的一列
ALTER TABLE 表名称 DROP COLUMN 列名称;
无用字段设置
将表中字段设置为无用状态
ALTER TABLE 表名称 SET UNUSED(列名称);
添加注释
COMMENT ON TABLE 表名称( | COLUMN 表名称.列名称) IS '注释内容';
设置可见/不可见列
如果在设计数据表的时候考虑到日后还要增加若干个列,如果提前增加会让查询者不知道这些列做什么,为此可将暂时不使用的列定义为不可见状态,但需要这些列的时候再进行恢复。
格式:
ALTER TABLE 表名称 MODIFY(name INVISIBLE);
表空间
(划重点!!!)
表空间时oracle数据库之中最大的一个逻辑结构,每个oracle数据库都会由若干个表空间所组成,而每一个表空间将由多个数据文件组成。用户所创建的数据表也统一被表空间所管理。
一般分为两类:
系统表空间:在数据库创建时与数据库一起建立起来的。
非系统表空间: 由具备制定管理员权限的数据库用户建立,用于保存用户数据、索引等数据库对象。
创建表空间:
CREATE [TEMPORARY] TABLESPACE 表空间名称
( [DATAFILE | TEMPFILE 表空间文件保存路径... ] [SIZE 数字[ K | M ]]
[AUTOEXTEND ON | OFF] [NEXT 数字 [K | M]]
[LOGGING | NOLOGGING];)
说明:
- DATAFILE:保存表空间的路径,可以设置多个保存路径;
- TEMPFILE:保存零四表空间的磁盘路径;
- SIZE:开辟的空间大小,其单位有K(字节)和M(兆);
- AUTOEXTEND:是否为自动扩充表空间 ON|OFF;
- NEXT:可以定义表空间的增长量;
- LOGGING | NOLOGGING:对DML进行日志记录,记录下的日志可以用于数据恢复。
例:
永久表空间
CREATE TABLESPACE mldn_data
DATAFILE 'd:\mldnds\mldn_data01.dbf' SIZE 50M,
AUTOEXTEND on NEXT 2M
LOGGING;
暂时表空间
CREATE TEMPORARY TABLESPACE mldn_temp
TEMPFILE 'd:\mldnds\mldn_temp01.dbf' SIZE 50M
AUTOEXTEND on NEXT 2M;
创建数据表并使用特定表空间
格式:
CREATE TABLE 用户名.表名称(
字段名称 字段类型 DEFAULT 默认值,
字段名称 字段类型 DEFAULT 默认值,
......
)TABLESPACE 表空间名称;
吐槽:表的知识是真的多!!!