Oracle中创建与管理表

Oracle中创建与管理表

常见的数据库对象

 
 

对象

 
 
 

描述

 
 
 

 
 
 

基本的数据存储集合,由行和列组成

 
 
 

视图

 
 
 

从表中抽出的逻辑上相关的数据集合

 
 
 

序列

 
 
 

提供有规律的数值

 
 
 

索引

 
 
 

提供查询的效率

 
 
 

同义词

 
 
 

给对象起别名

 

Oracle数据库中的表

1、  用户定义的表

a)        用户自己创建并维护的一组表

b)        包含了用户所需的信息

2、  数据字典

a)        由Oracle Server自动创建的一组表

b)        包含数据库信息

查询数据字典

         查看用户定义的表

         Selecttable_name from user_tables;

查看用户定义的各种数据库对象

         Selectdistinct object_type from user_objects;

查看用户定义的表,视图,同义词和序列

         Select* from user catalog;

命名规则

         表明和列明

a)      必须以字母开头

b)      必须在1-30个字符之间

c)      必须只能包含A_Z   a_z    0-9 _  $  #

d)      必须不能和用户定义的其他对象重名

e)      必须不能是Oracle 的保留字

f)       Oracle默认存储是都存为大写

g)      数据库名只能是1-8位,datalink可以是128位,和其他一些特殊字符

Create table 语句

1、  必须具备

a)        Create   table权限

b)        存储空间

2、  必须指定

a)        表名

b)        列名数据类型 数据类型的大小

查询其他用户的表

1、  其他用户的表不属于本用户的空间

2、  如果要查询其他用户下的表,要使用其他用户的用户名作为前缀

userA                   userB

select  *  from userB.employees;

default值

1、  执行insert操作时,可以为其指定默认值

2、  值、表达式和SQL语句都可以作为默认值

3、  其他的列名或者是伪列都是非法的

4、  默认值的类型必须和该列的类型一致

创建表

1、  语法

Create  table  dept (deptno number(2),

Dname  varchar2(14),

Loc      varchar2(13));

2、  确认

Describe  dept

Oracle字段类型详解

         字段类型         中文说明         限制条件             其他说明

1、char           固定长度字符创     最大长度2000  bytes

2、varchar2       可变长度的字符串   最大长度4000 bytrs     可做索引的最大长度749

3、nchar     根据字符集而定的固定长度字符串  最大长度1000  字符

4、nvarchar2  根据字符集而定的可变长度字符串   最大长度2000  字符

5、date      日期(日-月-年)  DD-MM-YY(HH-MI-SS)   经过严格测试,无千虫问题

6、long      超长字符串         最大长度2G(231-1) 足够存储大部头著作

7、raw   固定长度的二进制数据    可存放多媒体图像声音等

8、long  raw   固定长度的二进制数据   最大长度2G  同上

9、blob   二进制数据  最大长度4G

10、clob    字符数据  最大长度4G

11、nclob   根据字符集而定的字符数据  最大长度4G

12、bfile    存放在数据库外的二进制数据  最大长度4G

13、rowid   数据表中记录的唯一行号

14、nrowid   二进制数据表中记录的唯一行

15、number(p,s) 数字类型  p为精度  s为小数位

16、declmal(p,s) 数字类型  p为精度  s为小数位

17、integer  整数类型  小的整数

18、float   浮点数类型   number(38),双精度

19、real    实数类型    number(63),精度更高

使用子查询创建表

1、  时候用as  subquery选项,将创建表和插入数据结合起来

Create  table  table[(column,column….)] As subquery;

2、  指定的列和子查询中的列要一一对应

3、  通过列名和默认值定义列

例子:create table dept80 as select employee_id,last_name,salary*12annsal,hire_date from employees where department_id=80;

Alter table 语句

使用alter table语句可以:

1、  追加新的列

2、  修改现有的列

3、  为新加的列定义默认值

4、  删除一个列

追加一个新列

1、  使用add字句追加一个新列

Alter table dept80 add(job_id varchar(9));

修改一个列

1、  可以修改列的数据类型,尺寸,和默认值

Alter  table  dept80 modify (last_name varchar(30));

2、  对默认值的修改只影响今后对表的修改

删除一个列

1、  使用drop  column字句删除不在需要的列

Alter  tabledept80  drop column job_id;

删除表

1、  数据和结构都被删除

2、  所有正在运行的相关事务被提交

3、  所有相关索引被删除

4、  Drop  table 语句不能回滚

Drop  table  dept80;

改变对象的名称

1、  执行rename语句改变表,视图,序列,或同义词的名称

Rename  dept  to detail_dept;

2、  必须是对象的拥有者

清空表

1、  truncate  table语句:

a)        删除表中的所有数据

b)        释放表的存储空间

Truncate  table detail_dept;

c)        truncate语句不能回滚

d)        可以使用delete语句删除数据

约束

1、  约束是表一级的限制

2、  如果存在依赖关系,约束可以防止错误的删除数据

3、  约束的类型

a)        Not  null

b)        Unique

c)        Primary  key

d)        Foreign  key

e)        Check

约束规则

1、  用户可以自定义约束,也可以使用Oracle  Server的sys_cn格式命名约束

2、  约束创建的时机

a)        创建表的时候,同时创建约束

b)        表结构创建完成后

3、  约束可以定义在列一级,或者是表一级

4、  通过数据字典查看约束

非空约束

1、  保证列的值不能为空

唯一性的约束

主键约束

外键约束

1、  foreign  key:在子表中,定义了一个表级的约束

2、  references:指定表和父表中的列

3、  on  delete  cascade:当删除父表时,级联删除子表记录

4、  on  delete  set null :将子表的相关依赖记录的外键值置为null

check约束

1、  定义每一行记录所必须满足的条件

2、  下面的表达式可以使用在check约束中

a)        引用currval,nextval,level,和rownum

b)        调用sysdate,uid,user,和userenv函数

c)        另一个表的查询记录

违反约束

         1、不能删除有外键约束的记录

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值