Oracle表的相关操作

一.创建表
create table 表名称(
    字段 数据类型 [default value],
    字段 数据类型 [default value]
);
要求 :
 1.必须以字母开头(由字母, 数字, _, #,组成)
 2.长度1-30个字符
 3.名称要有意义
 4.不是Oracle中的保留字

二.复制表
create table 表名称 as 子查询
复制表结构和数据
create table emp20 as select * from emp where deptno=20;

只复制表结构(子查询的where条件是一个不成立的条件)
create table empnull as select * from emp where 1=2;

三.重命名表(事务会自动提交,rollback无效)
rename 旧表名称 to 新表名称
rename 

四.截断表,把表的数据删除,表结构存在(事务会自动提交,rollback无效)
truncate table 表名称

五.删除表
drop table 表名称; (BIN..残留)
完全删除: drop table 表名称 purge;

六.闪回技术
查询回收站: select * from recyclebin;
闪回表: flashback table 表名称 to before drop;

删除回收站里的一张数据表: purge table 表名称;
删除回收站里的所有数据表: purge recyclebin;

编写数据库的脚本
--删除数据表
drop table stu purge; 
--创建数据表
create table stu(
  sid number,
  sname VARCHAR2(50) default '无名氏'
);
--添加数据
insert into stu(sid,sname) values(001,'SMITH');
insert into stu(sid,sname) values(002,'SCOTT');
insert into stu(sid,sname) values(003,'LUCY');
--提交事务
commit;

七.修改表结构(alter)
1.添加字段
    alter table 表名称 add (字段名 数据类型 [default value]),[(字段名 数据类型 [default value])];

2.修改表中字段
    alter table 表名称 modify (字段名 数据类型 [default value]);
    
    例:alter table stu modify (sname varchar2(30));
       alter table stu modify (sex varchar2(10) default '男');
    
    注:mysql中的语法 要加column关键字
        ALTER TABLE attachment modify column attachment.attach_origin int default '0';
3.删除表中字段
    alter table 表名称 drop column 列名;
    例:
    alter table stu drop column age;
   无用状态的设置(将列设置为无用状态,列的数据存在)
    (1)alter table 表名称 set unused (列名);
    (2)alter table 表名称 set unused column 列名;

    例: alter table stu set unused (sex);
    无用状态下
    删除: alter table 表名 drop unused column;

    
八.列的约束    字段 数据类型 [约束条件]{unique,not null,primary key}
    非空约束 (not null) 

    唯一约束 (unique UK(缩写))表中数据不能重复,null值(可以重复)不受唯一约束影响
        
        添加唯一约束的另一种方法: email varchar2(30),constraint uk_email unique(email)

    主键约束 (primary key pk) 标识唯一约束(not null + unique)
        sid number constraint pk_sid primary key(sid)

    复合主键 只有当这两个主键的id值一样时才报错
        sid number constraint pk_sid primary key(sid)
        pid number constraint pk_sid primary key(sid)

    检查约束 (ck check)用户自行编写内容的检查条件(不建议使用) 注:MySQL不支持
        age number(3) check(age between 0 and 150) 设置年龄在[0-150]之间
        constraint ck_age check(age between 0 and 150)

    外键约束(FK foreign key) 表的关联
        被引用的列必须具有主键约束或唯一约束

        constraint 外键名 foreign key(从表外键字段) references 主表名 (主表主键)

        A表的主键被B表的外键引用,B表的主键被A表的外键引用
        drop table stu cascade constraint;


    修改约束
        增加约束:
        alter table 表名称 add constraint 约束名称 约束类型(约束字段)
            alter table stu add constraint pk_sid primary key(sid)
            通过数据字典查看约束
            select * from user_constraints where table_name = 'STU';
        alter table 表名称 modify (字段 数据类型 not null);

        删除约束:
        alter table 表名称 drop constraint 约束名称;(数据字典 )
        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗恋花香

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值