关于oracle表的操作

 
2.修改表.
        Alter table table_name
        Add column_name type [default expression]    增加新列
           Modify datatype default expression           修改已有列和属性
    Storage storage_clause                  修改存储特征
    Drop drop_clause                              删除约束条件
       a.改变表所在的表空间
                                    alter    table   name   move   tablespace   newtablespace
        例: ①在表xs中添加两列.jsj,djsm
                   Alter table xs add(jxj num<img src="<img src="<img src="">">">ber(1),djsm varchar(40) default ‘奖金1000’);
            ②在表xs中修改名为djsm的列的默认值
         Alter talbe xs modify(djsm default ‘奖金800’)
             ③在表中删除名为jxj和djxm的列.
                          Alter table xs drop column jxj;
                 Alter table xs drop column djsm;
             ④修改表xs_kc的存储特征
         Alter talbe xs pctfree 20 maxtrans 200
             ⑤为表xs_jsj加上主键
         Alter table xs_jsj add (constraint “pk_jsj” primary key(xh));
              ⑥ 增加列
                  语法:ALTER TABLE [schema.] table_name ADD column_definition type
                  例: ALTER TABLE orders ADD order_date DATE;
            ⑦更改列
            语法:ALTER TABLE [schema.] table_name MODIFY column_name new_attributes;
              例: ALTER TABLE orders MODITY (quantity number(10,3),status varchar2(15));
              ⑧.更改表名:
                 alter table t rename to s;
              ⑨.更改列名
                 alter table t rename column n to s;
3.约束
Oracle数据库的完整性约束规则
            唯一性约束(Unique constraint)
            唯一性约束可以保护表中多个数据列,保证在保护的数据列中任何两行的数据都不相同。唯一性约束与表一起创建,在唯一性约束创建后,可以使用ALTER TABLE语句修改。
            语法:
                column_name data_type CONSTRAINT constraint_name UNIQUE
                如果唯一性约束保护多个数据列,那么唯一性约束要作为表约束增加。语法如下:
                                CONSTRAINT constraint_name (column) UNIQUE
                                USING INDEX TABLESPACE (tablespace_name)
                                STORAGE (stored clause)
    唯一性约束由一个B-tree索引增强,所以可以在USING子串中为索引使用特殊特征,比如表空间或存储参数。CREATE TABLE语句在创建唯一性约束的同时也给目标数据列建立了一个唯一的索引。 Feedom.net国内最早的网管网站
                                CREATE TABLE insured_autos (policy_id NUMBER CONSTRAINT pk_policies PRIMARY KEY, vin VARCHAR2(10), coverage_begin DATE, coverage_term NUMBER, CONSTRAIN unique_auto UNIQUE (policy_id,vin) bitsCN_com
                                USING INDEX TABLESPACE index STORAGE (INITIAL 1M NEXT 10M PCTINCREASE 0) )用户可以禁用未以性约束,但他仍然存在,禁用唯一性约束使用ALTER TABLE 语句
            ALTER TABLE insured_autos DISABLE CONSTRAIN unique_name;                   
删除唯一性约束,使用ALTER TABLE....DROP CONSTRAIN语句                       ALTER TABLE insured_autos DROP CONSTRAIN unique_name;           注意用户不能删除在有外部键指向的表的唯一性约束。这种情况下用户必须首             先禁用或删除外部键(foreign key)。 bitscn.com中国网管联盟
        删除或禁用唯一性约束通常同时删除相关联的唯一索引,因而降低了数据库性能。经常删除或禁用唯一性约束有可能导致丢失索引带来的性能错误。要避免这样错误,可以采取下面的步骤:                                          
            1、在唯一性约束保护的数据列上创建非唯一性索引。
            2、添加唯一性约束
                    主键(Primary Key)约束 bitscn.com中国网管联盟                                     表有唯一的主键约束。表的主键可以保护一个或多个列,主键约束可与NOT NULL约束共同作用于每一数据列。NOT NULL约束和唯一性约束的组合将保证主键唯一地标识每一行。像唯一性约束一样,主键由B-tree索引增强。 09hr.com网管求职         创建主键约束使用CREATE TABLE语句与表一起创建,如果表已经创建了,可以使用ALTER TABLE语句。
                                CREATE TABLE policies (policy_id NUMBER CONSTRAINT pk_policies PRIMARY KEY, holder_name VARCHAR2(40), gender VARCHAR2(1), marital_status VARCHAR2(1), date_of_birth DATE );
                                  与唯一性约束一样,如果主键约束保护多个数据列,那么必须作为一个表约束创建。 bitscn.com中国网管联盟
                                CREATE TABLE insured_autos (policy_id NUMBER, vin VARCHAR2(40), coverage_begin DATE, coverage_term NUMBER, CONSTRAINT pk_insured_autos PRIMARY KEY (policy_id,vin) USING INDEX TABLESPACE index STORAGE (INITIAL 1M NEXT 10M PCTINCREASE 0) );             
                                  禁用或删除主键必须与ALTER TABLE 语句一起使用
                                ALTER TABLE policies DROP PRIMARY KEY;
                                ALTER TABLE policies DISABLE PRIMARY KEY;
1、创建约束
                            CREATE TABLE students
                            (student_id    VARCHAR2(10) NOT NULL,
                            student_name VARCHAR2(30) NOT NULL,
                            college_major VARCHAR2(15) NOT NULL,
                            status        VARCHAR2(20) NOT NULL,
                            state         VARCHAR2(2),
                            license_no    VARCHAR2(30)) TABLESPACE student_data;
2、创建主键
                            ALTER TABLE students
                            ADD CONSTRAINT pk_students PRIMARY KEY (student_id)
                            USING INDEX TABLESPACE student_index;
3、创建Unique约束
                            ALTER TABLE students
                            ADD CONSTRAINT uk_students_license
                            UNIQUE (state, license_no)
                            USING INDEX TABLESPACE student_index;
4、创建Check约束
                            ALTER TABLE students
                               ADD CONSTRAINT ck_students_st_lic
                                    CHECK ((state IS NULL AND license_no IS NULL) OR
                                          (state IS NOT NULL AND license_no is NOT NULL));
                            添加check约束
            alter table emp add constraint con check(dept_salary>0);
             con 为约束名, dept_salary为字段名
                                
5、创建外键约束
                            ALTER TABLE students
                            ADD CONSTRAINT fk_students_state
                            FOREIGN KEY (state) REFERENCES state_lookup (state);
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值