《Oracle编程自学与面试指南》04:表(Table)

课程封面-Oracle Database-AT阿宝哥


内容导航

  • 前言
  • 1、表
    • 1.1、表名
    • 1.2、数据类型
  • 2、创建表
    • 2.1、在默认表空间创建表
    • 2.2、在指定表空间创建表
  • 3、查看表
  • 4、修改表
    • 4.1、重命名
    • 4.2、添加列
    • 4.3、修改列
    • 4.4、删除列
  • 5、删除表结构
  • 6、删除表数据

前言

Oracle数据库中的表和Excel类似,但是学好用好了会更强大。

同时,重点理解表结构相关操作是SQL语言中DDL相关内容。


1、表

是数据库中最基本的对象,是数据实际存储的地方。Oracle数据库中的数据存储在一张二维表中,在表中通过行和列来组织数据。通常表中一行成为记录,表中一列成为字段,一张表一般有多个列。

1.1、表名

在Oracle数据库中,每个表都有一个名称,而且表名在同一方案中是唯一的。其命名规则如下:

  • 表名称要尽量简短,且能够说明表的特征和语义。
  • 一般父表和子表中外键关联的字段最好使用同一个名字。
  • 与表相关的对象的命名要和表名联系起来。比如,要在student表上创建的各种对象,一般命名中应该包含student
  • 避免使用引号、关键字、非字符非数字的字符,除非是$_#这三种符号。
  • 尽量不使用特殊字符,如中欧字符集、亚洲字符集。尽管从Oracle 8i开始可以使用中文字符命名表和列,但是尽量不要用,除非有特殊需求。
  • Oracle关键字和dual不能用,开发工具和软件产品中的保留字不能用。
  • 表中最多可以有1000个字段。
  • 表名不区分大小写。

1.2、数据类型

Oracle数据库中表的字段具有名称、数据类型和长度等属性。

Oracle数据库中常用的数据类型如下:

序号 类型 简介
01 CHAR(n) 用于存储长度为n的定长字符串。
02 VARCHAR(n) 用于存储长度为n的变长字符串。
03 NUMBER(p,s) 用于存储带符号的整数或浮点数,p指总有效位数,s指小数位数。
04 INT 用于存储长整型数据,也可以写INTEGER。
05 SMALLINT 用于存储短整型数据。
06 FLOAT(n) 用于存储经度至少为n位的浮点数。
07 DATE 用于存储日期,包含年、月、日,格式为YYYY-MM-DD。
08 TIME 用于存储时间,包含时、分、表,格式为HH:MM:SS。

2、创建表

创建表即定义表的结构,主要包含表的基本信息、字段信息、约束信息和表空间信息。语法格式如下:


CREATE  TABLE table_name
(
	col1  VARCHAR2(32),
	col2  VARCHAR2(32)
) 
TABLESPACE tablespace_name;


2.1、在默认表空间创建表

默认表空间为登录用户的默认表空间。

--------------------------------------------------------------------------------
--Sample1:创建表,默认表空间为登录用户的默认表空间
CREATE
  TABLE Friend
  (
    OwnerID  VARCHAR2(32),
    FriendID VARCHAR2(32),
    Remark varchar2(24)
  );
  
CREATE  TABLE  messagerecord(
    comeuser  VARCHAR2(32),
    touser    VARCHAR2(32),
    messagecontent  VARCHAR2(1000),
    sendtime date
);
 
 --------------------------------------------------------------------------------

2.2、在指定表空间创建表


--------------------------------------------------------------------------------
--Sample2:创建表,表空间为指定空间
CREATE
  TABLE Friend
  (
    OwnerID  VARCHAR2(32),
    FriendID VARCHAR2(32),
    Remark varchar2(24)
  )
  TABLESPACE Users ;
  
  
  
CREATE  TABLE  messagerecord(
    comeuser  VARCHAR2(32),
    touser    VARCHAR2(32),
    messagecontent  VARCHAR2(1000),
    sendtime DATE
)TABLESPACE Users;
  
--------------------------------------------------------------------------------


3、查看表

在进行数据库应用系统开发和调试过程中,经常需要查看表的结构信息。

使用DESCSELECT命令来查看表结构。一旦表创建成功,其信息存储在Oracle数据库的多个字典中。具体数据字典如下:

序号 字典名称 简介
01 DBA_TABLES 存储表的表空间、存储参数、块空间管理参数、事务处理参数等信息。
02 DBA_TAB_COLUMNS 存储表的字段信息。
03 DBA_CONSTRAINTS 存储表的约束信息。
04 DBA_CONS_COLUMNS 存储字段的约束信息。

4、修改表

4.1、重命名

修改表名命令的一般格式为:


RENAME  <旧表名>  TO  <新表名>;

其中,RENAME是重新命名关键字。

示例代码:


--------------------------------------------------------------------------------

RENAME friend to my_friend;
--------------------------------------------------------------------------------

4.2、添加列

--------------------------------------------------------------------------------
--添加列
Alter Table  Friend
  Add (AddTime date);
  
ALTER  TABLE  messagerecord
  add( msgStatus varchar2(2));
--------------------------------------------------------------------------------

4.3、修改列


--------------------------------------------------------------------------------
--修改列
Alter Table  Friend
  MODIFY(Remark varchar2(32));

ALTER TABLE  messagerecord
  MODIFY (msgStatus varchar(4));
--------------------------------------------------------------------------------

4.4、删除列


--------------------------------------------------------------------------------
--删除列
Alter Table  Friend
  DROP (addtime);
  
ALTER  TABLE messagerecord
  drop (msgStatus);
--------------------------------------------------------------------------------


5、删除表结构

表一旦定义成功,则一直会存储在数据库中,但是有时候发现有的表不再需要,此时应该删除此表,以释放存储空间。我们可以使用命令行方式删除表,或者在Sql Developer中删除。

5.1、Drop Table

--删除表
Drop  Table  Friend;


Drop  Table MessageRecord;

6、删除表数据

Delete TableName :删除数据,但是有日志记录;
Truncate Table TableName:删除数据,没有日志记录;

--截断表
Truncate  Table  Friend;

--Step1:插入测试数据
Insert into  Friend  values('0001','0002','Baby');
Insert into  Friend  values('0002','0002','Baby');
Insert into  Friend  values('0003','0002','Baby');
Insert into  Friend  values('0004','0002','Baby');
Insert into  Friend  values('0005','0002','Baby');



insert  into  MessageRecord  values('阿宝哥','小伙伴','Hello',null);

--Step2:查询数据
Select  *  from  Friend;

SELECT * FROM messagerecord;

--Step3:删除数据/或者截断表
Delete FRIEND;
Truncate  Table  Friend;

DELETE  messagerecord;
truncate table   messagerecord;


你可能感兴趣的:(《Oracle)