设为首页 加入收藏

TOP

Oracle 构造与已知表结构相同的表问题
2014-11-24 18:08:33 】 浏览:2636
Tags:Oracle 构造 已知 结构 相同 问题

//构造一个与已知表就够相同的表,我们常用的方法为:
//create table t_name as
//select col_name from t_exists
//where 1=0;
//这种构造方法,减少了我们的工作量,带了很大的方便;
//但是你知道吗?这种构造表的方法,仅仅是构造表的结构与
//已知表结构相同,其他的关于表、列的约束,列的默认值,注释
//等这些都没有复制过来。
create table student(
stu_no number(5),
stu_name varchar2(20),
sex char(1),
age number(3))
--
alter table student
add constraint pk_stu primary key(stu_no);
alter table student
modify sex default 'M'
add constraint ck_sex check(sex in('F','M'));
comment on table student is '学生信息表';
comment on column student.stu_no is '学生学号';
comment on column student.stu_name is '学生姓名';
comment on column student.sex is '性别';
comment on column student.age is '学生年龄';
--
SQL> desc student;
Name Type Nullable Default Comments
-------- ------------ -------- ------- --------
STU_NO NUMBER(5) 学生学号
STU_NAME VARCHAR2(20) Y 学生姓名
SEX CHAR(1) Y 'M' 性别
AGE NUMBER(3) Y 学生年龄
--
create table t_stu as
select * from student
where 1=0;
--
SQL> desc t_stu;
Name Type Nullable Default Comments
-------- ------------ -------- ------- --------
STU_NO NUMBER(5) Y
STU_NAME VARCHAR2(20) Y
SEX CHAR(1) Y
AGE NUMBER(3) Y
//从表结构,我们看到了,t_stu表只是复制了student表的结构,
//而我们刚刚才为student表添加的primary key,default,comment,
//全部都没有复制过来。
//如果你不仅想要构造表结构,而且还要向表中添加现存表中的数据,
//你可以这样写:
create table t_emp as
select * from scott.emp
order by sal
where 1=1;//这个条件可有可无
//实例:
SQL> create table t_emp as
2 select * from scott.emp
3 where rownum<=5
4 order by sal;
--
SQL> select rownum,t.* from t_emp t;
ROWNUM EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ----- ---------- --------- ----- ----------- --------- --------- ------
1 7369 SMITH CLERK 7902 1980-12-17 800.00 20
2 7521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00 30
3 7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 1400.00 30
4 7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30
5 7566 JONES MANAGER 7839 1981-4-2 2975.00 20


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Oracle 根据行列号取值 下一篇根据RMAN的一个全备份进行异机恢复

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目