Orcle数据库概述二之表管理

数据表:数据表是数据库中最常用的数据库中最常用的数据库对象

表空间:

表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。
所有的数据对象都存放在指定的表空间中。但主要存放的是表,所以称作表空间。

关于表空间:

一个数据库可以包含多个表空间,一个表空间只能属于一个数据库。

一个表空间可以包含多个数据文件,一个数据文件只能属于一个表空间。

表空间可以划分成更细的逻辑存储单元。


创建表空间语法:
create tablespace 表空间名 
datafile '存放数据文件路径及文件名称.dbf(如:C:\app\Administrator\oradata\orcl\test1.dbf)'
size 32M --初始文件的大小
autoextend on next 64M --设置自动增长,下一个增长的大小
maxsize 1024M; --文件最大值

新建用户指定默认表空间:
create user 用户名 identified by 密码 default tablespace 表空间名

表名和列名命名规则:
必须以字母开头
必须在1~30个字符之间
必须只能包含A-Z,a-z,0-9,_,$和#
必须不能和用户定义的其他对象重名
必须不能是Orcle的保留字

常见数据类型:
字符型:
• varchar2(n):变长字符串,n代表允许的最大字节长度,最大4000字节,例如  varchar2(8)
•char(n):同上,定长字符串,最大2000字节,例如char(8) ,长度不够会填充半角空格,查询效率高
•clob:大字符串数据,最大4G ,默认数据在4000字节内,存储在表段空间中,超过4000字节就会用LOB段存储,查询效率低
数字型:
•number:存储整型或者浮点型,最大38位精度
•number(n):仅存储整数,n代表最大位数 例如number(4) -9999~9999
•number(p,s):存储浮点数,p代表最大精度,s代表小数位数 例如 number(6,2)
日期型:
•date: 【dd-mm月-yy 】存储年月日时分秒,精确到秒
•timestamp(n):时间戳,精确到纳秒,n代表秒后面的位数例如 timestamp(3),还包括了时区的信息
二进制类型
•blob:大二进制数据,最大4G
Oracle数据类型没有布尔类型true和false


创建表:
create table test(
testno number(2),
tname varchar(20),
loc varchar(15));

伪列:
rowid: 表数据行的物理地址,在插入数据时生成,在数据库中是唯一的
rownum:查询结果的自增编号(以下条件一定为假:rownum>n,rownum>=n,ronum=1以外的值)

alter tabler 语句:
添加:alter table 表名 add(列名 数据类型 如:alter table test add(job_id varchar2(9));
修改:alter table 表名 modify (列名 数据类型) 如:alter table test modify (last_name varchar2(30));
删除:alter table 表名 drop (列名) 如:alter table test drop(job_id);

删除表:
数据和结构都被删除:drop table test;

改变对象的名称:
执行rename语句改变表,视图,序列或同义词的名称
rename test to detail_test;

清空表:
truncate table语句:
删除表中所有的数据,释放表的存储空间
truncate table detail_test;
注:truncate语句不能回滚,可以使用delete语句删除数据

表的注释:
使用comment语句给表或列添加注释
comment on table test is '这是test表';
可以通过下列数据字典视图查看所添加的注释:
•ALL_COL_COMMENTS
•USER_COL_COMMENTS
•ALL_TAB_COMMENTS
•USER_TAB_COMMENTS

表的闪回操作:
通过数据字典查看“回收站”信息:
select * from user_recyclebin
还原误删除的表:
flashback table 表名 to before drop;
清空“回收站”:
purge recyclebin;
直接一次性删除表:
drop table 表名 purge;

--表空间-->创建用户-->授权--->用户登录--->创表--->数据操作

附:一些Oracle语句

创建学生表:
create table student(
stu_id number(6),
stu_name varchar2(50),
stu_sex char(6),
stu_age number(3),
stu_hiredate date
);

删除表对象:
drop table student;
rowid伪列:当条记录的物理地址,唯一的,产生了以后不会发生变化
rownum:记录结果的排序,从1开始增1:rownum>=n(=除1外)为假
select rownum,s.* from student s where rownum<2;
select rownum,s.* from student s where rownum>2;

修改表结构:
alter table student add(stu_tel number(11),stu_address varchar2(100));
alter table student modify(stu_tel number(20));
alter table student drop(stu_address);

修改表名:
rename student to stu;

给表添加注释:
comment on table stu is '这是一个学生表';
comment on column stu.stu_id is ‘这是学生编号’;
查看表注释:
select * from user_tab_comments;

创建一个新的员工表,数据来源于已有的员工表
1,授权
grant select on emp to 用户名
2,复制表
create table newemp as select * from soctt.emp;
3,查看复制效果
select * from newemp;

使用数据字典,查看用户下对象的信息
select * from user_objects;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值