内容导航:
Oracle数据库中的表和Excel类似,但是学好用好了会更强大。
同时,重点理解表结构相关操作是SQL
语言中DDL
相关内容。
表
是数据库中最基本的对象,是数据实际存储的地方。Oracle数据库中的数据存储在一张二维表中,在表中通过行和列来组织数据。通常表中一行成为记录
,表中一列成为字段
,一张表一般有多个列。
在Oracle数据库中,每个表都有一个名称,而且表名在同一方案中是唯一的。其命名规则如下:
student
表上创建的各种对象,一般命名中应该包含student
。$
、_
、#
这三种符号。dual
不能用,开发工具和软件产品中的保留字不能用。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。 |
创建表即定义表的结构,主要包含表的基本信息、字段信息、约束信息和表空间信息。语法格式如下:
CREATE TABLE table_name
(
col1 VARCHAR2(32),
col2 VARCHAR2(32)
)
TABLESPACE tablespace_name;
默认表空间为登录用户的默认表空间。
--------------------------------------------------------------------------------
--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
);
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--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;
--------------------------------------------------------------------------------
在进行数据库应用系统开发和调试过程中,经常需要查看表的结构信息。
使用DESC
、SELECT
命令来查看表结构。一旦表创建成功,其信息存储在Oracle数据库的多个字典中。具体数据字典如下:
序号 | 字典名称 | 简介 |
---|---|---|
01 | DBA_TABLES | 存储表的表空间、存储参数、块空间管理参数、事务处理参数等信息。 |
02 | DBA_TAB_COLUMNS | 存储表的字段信息。 |
03 | DBA_CONSTRAINTS | 存储表的约束信息。 |
04 | DBA_CONS_COLUMNS | 存储字段的约束信息。 |
修改表名命令的一般格式为:
RENAME <旧表名> TO <新表名>;
其中,RENAME
是重新命名关键字。
示例代码:
--------------------------------------------------------------------------------
RENAME friend to my_friend;
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--添加列
Alter Table Friend
Add (AddTime date);
ALTER TABLE messagerecord
add( msgStatus varchar2(2));
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--修改列
Alter Table Friend
MODIFY(Remark varchar2(32));
ALTER TABLE messagerecord
MODIFY (msgStatus varchar(4));
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--删除列
Alter Table Friend
DROP (addtime);
ALTER TABLE messagerecord
drop (msgStatus);
--------------------------------------------------------------------------------
表一旦定义成功,则一直会存储在数据库中,但是有时候发现有的表不再需要,此时应该删除此表,以释放存储空间。我们可以使用命令行方式删除表,或者在Sql Developer中删除。
--删除表
Drop Table Friend;
Drop Table MessageRecord;
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;