表结构操作

本文详细介绍了如何在Oracle数据库中进行表空间创建、用户创建、数据导入导出、主键约束管理、非空约束操作以及表的创建、修改和删除。通过实例展示了SQL语句的使用,包括创建表、修改表结构、添加主键约束、删除约束、插入数据、更新数据和删除数据等操作。
摘要由CSDN通过智能技术生成

--创建表空间
CREATE TABLESPACE TBS_ABIS_CALL_CDR DATAFILE 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/WCDMA/tbs_abis_call_cdr01.DBF'  SIZE 1024M AUTOEXTEND ON NEXT 10M
  MAXSIZE UNLIMITED NOLOGGING EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M SEGMENT SPACE MANAGEMENT AUTO;

WCDMA/tbs_abis_call_cdr01.DBF名字任意
--创建用户
CREATE USER CUSTOMER
  IDENTIFIED BY CUSTOMER
  DEFAULT TABLESPACE CUSTOMER
  TEMPORARY TABLESPACE CUSTOMER_TEMP;
 
GRANT CONNECT,RESOURCE,DBA TO CUSTOMER;
drop user username cascade;

--倒库
exp user/pass@orcl file=d:/orcl.dmp owenr=user log=d:/orcl.log
C:/Documents and Settings/Administrator>exp rdyh/rdyh@rdyh file=e:/rdyh0728.dmp full=y log=e:/rdyh0728.log

imp oran/oran@oran file='d:/oran.dmp' ignore=y commit=y fromuser=oran touser=oran log='d:/oran.log'
要是导的都是小表的话,不写 commit=y 更好
C:/Documents and Settings/Administrator>imp rdyh/rdyh@rdyh file='d:/rdyh0728.dmp' ignore=y commit=y fromuser=rdyh touser=rdyh log='d:/rdyh.log'

1、创建表的同时创建主键约束
一、无命名
create table accounts (
  accounts_number number primary key,
  accounts_balance number
);
二、有命名
create table accounts (
  accounts_number number primary key,
  accounts_balance number,
  constraint yy primary key(accounts_number)
);

2、删除表中已有的主键约束
一、无命名
       SELECT * FROM USER_CONS_COLUMNS WHERE TALBE_NAME='accounts';
找出主键名
       ALTER TABLE ACCOUNTS DROP CONSTRAINT SYS_C003063;
二、有命名
      ALTER TABLE ACCOUNTS DROP CONTRAINT yy;

3、向表中添加主键约束
      ALTER TABLE ACCOUNTS ADD CONSTRAINT PK_ACCOUNTS PRIMARY KEY(ACCOUNTS_NUMBER);

      oracle中not null约束是我们用到的最多的约束之一了。我们可以在创建表时让系统自动指定not null约束的名字来创建,也可以手动的的指定not null约束的名字来创建,也可以在表创建好后手动的修改表已达到增加not null约束的目的。

下面是一个例子:
      create table test_not_null
       (id number not null,
       name varchar2(30) ,
       tel varchar2(20) constraint test_not_null_tel not null);

       在这里我们创建了一个表,并分别给id 和 tel两列创建了not null的约束,其中id的约束是系统自动命名的,而tel的约束使我们手动命名的。对于地二个列name,oracle系统不会自动增加not null的约束。

       我们可以在这个表里面插入一行数据,例如:
       insert into test_not_null(id,tel) values(123,’88888888′);

我们也还可以使用修改表的方式来增加not null约束。例如刚才我们没有在test_not_null上建立空值约束,我们可以现在通过修改的方式来建立.
      alter table test_not_null modify(name not null);

      如果你执行了刚才我们的插入数据的操作,你执行这句话的时候可能会有以下错误:ORA-02296: 无法启用 (SYS.) - 找到空值

这是因为我们刚才在插入数据时已经给name这一列增加了一个空值,现在又要在这一列上增加not null约束,显然是不行的。如果实际问题中我们真的遇到这种需求,例如对于某个字段我们认为原来可以为空,并且再该列插入了很多空值,后来我们发现实际上是不应该为空的,可能会需先将原来的空值全部更新到一个新的有统一意义的值,然后在进行空值约束的加入操作。例如我们可以这样做:
      update test_not_null set name = '不知道' where name is null;

现在我们再增加列的not null约束是没有问题了。
      alter table test_not_null modify(name not null);

表修改

1.创建表:
       a. 创建xs表中计算机专业学生的备份
           Create table xs_jsj as select * from xs where zym='计算机';
       b.完整的例子:
      Create table test (xm char(20) not null,zy varchar(30) default ('计算机'));
                -- Create table
                create table DEPT
                                (
                                    DEPTNO NUMBER(2) not null,
                                    DNAME VARCHAR2(14),
                                    LOC    VARCHAR2(13)
                                  )
                                tablespace USERS
                                pctfree 10
                                initrans 1
                                maxtrans 255
                        storage
                                (
                                 initial 64K
                                 minextents 1
                                 maxextents unlimited
                                 );
                -- Create/Recreate primary, unique and foreign key constraints

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值