Oracle 模式对象

本文详细介绍了Oracle数据库中的模式对象,包括约束类型如主键、唯一性、非空、外键和检查约束。讲解了如何创建、修改和删除表,以及如何使用SQL语句进行数据插入、选择和更新。此外,还探讨了表的完整性约束,如非空约束、主键和外键。同时,文章还涵盖了索引创建、同义词操作、分区表的管理以及PL/SQL中的异常处理和游标应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

chap 3 模式对象

数据库约束有五种:

  •      主键约束(PRIMARY KEY)
  •      唯一性约束(UNIQUE)
  •      非空约束(NOT NULL)
  •      外键约束(FOREIGN KEY)
  •      检查约束(CHECK)

 

constraint   xskc_p1 PRIMARY KEY(XH, KCH)         约束constraint

把已经存在的表放入表空间中

alter table xs  move tablespace users!!!!

foreign key (cpno) references course(cno)

【例1创建XS表中计算机专业学生的记录备份。

CREATE TABLE XS_JSJ   AS SELECT *     FROM SCOTT.XS_KC

 WHERE CJ>100

【例2】(再次重复!!)(1) XS中增加2列:JXJ(奖学金等级)DJSM(奖学金等级说明)

ALTER TABLE SCOTT.XS  ADD ( JXJ NUMBER(1), DJSM VARCHAR2(40) DEFAULT  '奖金1000');

  (2) 在表XS中修改名为DJSM的列的默认值。

 ALTER TABLE SCOTT.XS   MODIFY ( DJSM DEFAULT '奖金800' );

  (3) 在表XS中删除名为JXJDJSM的列。

  ALTER TABLE SCOTT.XS    DROP COLUMN JXJ;

  ALTER TABLE SCOTT.XS     DROP COLUMN DJSM;

按照约束的用途可以将表的完整性约束(constraint)分为5

1.NOT NULL   非空约束。指定一列不允许存储空值。这实际就是一种强制的CHECK约束 

 2.PRIMARY    KEY  主键约束。指定表的主键

 3. UNIQUE   唯一约束。指定一列或一组列只能存储唯一的值 

 4. CHECK   检查约束。指定一列或一组列的值必须满足某种条件 

5. FOREIGN   KEY    指定表的外键。外键引用另外一个表中的一列,在自引用的情况中,则引用本表中的一列 

例1:  向XSCJ数据库的表XS中插入如下的一行:

061101  王林  计算机  男  19870201  50

INSERT INTO XS(XH,XM,ZYM,XB,CSSJ,ZXF)     

 VALUES('061101','王林', '计算机','',

TO_DATE('19860210','YYYYMMDD'),50);

例2:select TO_DATE('19860210','YYYYMMDD') from dual

TO_DATE(字符串, '格式’)

作用:将字符转换为日期类型 

!!!  SQL> create table xs1 as select * from xs;

   SQL> truncate table xs1;

 

这个是重点了啊

  1. list(列表) 分区     列表分区表是基于特定值对表进行分区,其分区列的值为非数值型或日期类型,并且分区列的取值范围较少,所以一般为字符型, partition by list子句,列表值相同的行将被存储到同一分区中)

 

create table part_book1

     (  bid number(4),

        bookname VARCHAR2(20),

        bookpress VARCHAR2(30),

      booktime date)

partition by list(bookpress)

  (partition part1 values('清华大学出版社') tablespace system,

  partition part2 values('教育出版社') tablespace users);

alter table part_book1

add partition part3 values(default) tablespace system;

 

 

 

create table part_book

 (  bid number(4),

     bookname  VARCHAR2(20),

     bookpress  VARCHAR2(30),

     booktime date)

      partition by range(booktime)

        (partition part1 values less than(to_date('20100101','yyyymmdd'))  tablespace system,

          partition part2 values less than (to_date('20120101','yyyymmdd'))   tablespace users,

          partition part3 values less than (MAXVALUE)  tablespace users

        );

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值