Oracle 数据库之管理数据表(表、索引、视图)

--一、数据定义语方DDL  用来创建表的语言称为数据库定义语句 date definition language 其主要是create alter drop
--create 表
create table test(
id varchar(32),
name varchar2(32),
note varchar2(32)
);
--alter 表
alter table test add age number(8);
alter table test drop column note;
--drop 表
drop table test;
--如果想在某个方案下创建表
create table hr.test(
id varchar(32),
name varchar2(32),
note varchar2(32)
);
--如果没权限,则
grant create any table to scott;
grant create any view to scott;
grant create any procedure scott;
--主键约束
create table test(
id varchar2(32) primary key;
name varchar2(32)
);
--建议的方法是在列或表级别使用constaint
create table test(
id varchar2(32) constraint test_pk primary key,
name varchar(32)
);
create table test(
id varchar2(32),
empno varchar2(32),
name varchar(32),
constraint id_pk primary key(id),
constraint empno_nu unique(empno)
);
--外键约束
create table test(
id varchar(32) references test1(id);
);
create table test(
id varchar(32),
c_name varchar(32),
constraint id_fk foreign key(ids) references test1,
);
--检查性约束
create table test(
id varchar2(32),
age integer default 0 check(age between 1 and 200),
sex varchar2(2) default '男' check (sex in ('男','女'))
);
--查看表约束
select * from user_cons_columns;
--修改表
alter table test add varchar2(32);
--修改表列字段长度
alter table test modify varchar2(32);
--删除表列
alter table test drop column c_name;
--重命名表列
alter table test rename c_name to c_names;
--修改约束
alter table test add constraint id_pk primary key(id);
--删除约束
alter table test drop constraint id_pk;
--移除数据表
drop table test;
--二、索引  优:检索数据速度;缺:占用额外物理空间,对表修改时,需动态的进行维护;
create table emp_index as select * from emp;
select * from all_indexes where table_name=upper('emp_index');
--原理:每张表都有一个rowid伪列,用来标志一条记录所在的物理位置;
create index idx_emp_ename on emp_index(ename);
--重命名索引名
alter index idx_emp_ename rename to idx_emp_ename1;
--合并和重建索引
alter index idx_emp_ename coalesce;
--分配索引空间
alter index idx_emp_ename allocate extent(size 100k);
--释放索引空间
alter index idx_emp_ename deallocate unused;
--删除索引
drop index idx_emp_ename;

--三、视图
--创建视图
create view dept_emp as select a.id,b.deptname from emp a,dept b where a.deptid=b.id;
--如果要禁止视图上执行insert,update和delete操作,可使用with read only;
--修改视图
create or replace view viewname dept_emp as ...
--删除视图
drop view viewname;
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值