/*-----------------------创建和管理表-----------------------------*/
一、Orcale之中的数据类型:
1.NUMBER、DATE、VARCAHR、CLOB、BLOB

二、表的建立
CREATE TABLE 表名称(
 字段名1  字段类型  [DEFAULT 默认值],
 字段名2  字段类型  [DEFAULT 默认值],
 ...
 字段名N  字段类型  [DEFAULT 默认值]
);

CREATE TABLE 表名称 AS(子查询)
·如果子查询写的是 SELECT * FROM emp,表示把表结构和表内容一起复制
·如果子查询写的是 SELECT * FROM WHERE 1==2,加入了一个永远不成立的条件,则表示只复制表结构,不复制内容!

三、表单的删除
DROP TABLE 表名称

四、表的修改
1、增加列:
·ALTER TABLE 表名称 ADD(列的名称 列的类型 DEFAULT 默认值,...);
 ALTER TABLE person ADD(address VARCHAR(200) DEFAULT'暂无地址');
2、修改列:
·ALTER TABLE 表名称 MODIFY(列的名称 列的类型 DEFAULT 默认值)
 ·但是,在修改表结构的时候,如果假设数据中对应的字段里有一个很长的数据,是无法将表的长度缩小的

五、表的重命名[Orcale特有]
·RENAME 命令:RENAME 旧的表名  TO  新的表名;

六、截断表
清空表数据,但是希望立刻清空,而不需要rollback,commit之类的
TRUNCATE TABLE 表名称;

七、表约束【重点】
·主键约束:主键表示唯一的标识,本身不能为空,不可重复
·唯一约束:在一个表之中只允许建立一个主键约束,其他表如果希望不能出现重复值的话,则可以用唯一约束
·检查约束:检查一个列的内容是否合法  NUMBER(5)
·非空约束:NOT NULL
·外键约束:在两张表进行约束的操作

范例:
DROP TABLE person;  --删除
CREATE TABLE person(  --创建
pid VARCHAR(18)  PRIMARY KEY,
name VARCHAR(200),
age NUMBER(3) NOT NULL CHECK(SEX IN('男','女')),--非空约束 检查约束
birthday DATE,
sex VARCHAR(2) DEFAULT '男'
CONSTRAINT person_pid_key PRIMARY KEY(pid); --主键
CONSTRAINT person_name_unique UNIQUE(name); --唯一约束
CONSTRAINT person_age_ck CHECK(age BETWEEN 0 AND 150)  --检查约束
);

1、主键约束(PRIMARY KEY)
·可以在建立表的时候加你,默认不能为空且不能后重复!
·也可以在建表后再加入:
 指令  约束别名 约束
 CONSTRAINT person_pid_pk PRIMARY KEY(pid)

2、非空约束:和主键一样能够在建表时候添加,也可以在之后添加,NOT NULL

3、唯一约束(UNIQUE):表示唯一约束,也能在建表时候添加

4、检查约束(CHECK):判断插入的内容是否合法
例:年龄 CHECK(SEX IN('男','女'))
年龄  CHECK(age BETWEEN 0 AND 150)

5、外键约束(FOREGIN KEY):
CONSTRAINT person_book_pid_fk FOREGIN KEY(pid) REFERENCES person(pid) ONDELETE CASCADE;
表示级联删除

七、修改约束:
·如果一个表已经建立完成了之后,则可以为其添加约束。
CREATE TABLE person(
pid  VARCHAR(18) ,
name  VARCHAR(200),
age  NUMBER(3),
birthday DATE,
sex  VARCHAR(2) DEFAULT '男'
);

ALTER TABLE 表名称 ADD CONSTRAINT 约束名  约束类型(约束字段);
命名规范:
·PRIMARY KEY :主键字段_PL
·UNIQUE:  主键_UK
·CHECK: 主键_CK
·FOREIGN KEY:  父字段_子字段_FK

ALTER TABLE person ADD CONSTRAINT person_age CHECK(age BETWEEN 0 AND 150);
ALTER TABLE book ADD CONSTRAINT person_book_pid_fk FOREIGN KEY(pid) REFERENCES person(pid) ONDELETECASDE;

八、删除约束 上面的ADD修改成DROP

ALTER TABLE person DROP CONSTRAINT person_age CHECK(age BETWEEN 0 AND 150);

九、ROWNUM(重点)
ROWNUM其实是在查询之后才给定的编号
表示行号,实际上此是一个列,一个伪列,此列在任意表之中存在
SELECT ROWNUM,ename FROM emp;
    ROWNUM ENAME
---------- ----------
         1 ALLEN
         2 WARD
         3 JONES
         4 MARTIN
         5 BLAKE
         6 CLARK
         7 SCOTT
         8 KING
         9 TURNER
        10 ADAMS
        11 JAMES
        12 FORD
        13 MILLER

ROWNUM不能使用BETWEEN n AND m 来进行截取。如果想要进行中间截取
则只能采用子查询。

SELECT *
FROM (SELECT ROWNUM rn,e.* FROM emp e WHERE ROWNUM<=10) temp
WHERE temp.rn>5;

这样才能够显示6-10的数据

Oracle表管理的更多相关文章

  1. 五、oracle 表管理

    一.表名和列名的命名规则1).必须以字母开头2).长度不能超过30个字符3).不能使用oracle的保留字4).只能使用如下字符 a-z,a-z,0-9,$,#等 二.数据类型1).字符类char 长 ...

  2. Oracle 表管理 约束 索引

    表的约束与完整性: 1.实体完整性 主键唯一性 2.域完整性 不能向number中插入varchar 3.参照完整性 外键 以别的表的字段作为外键,再插入该表时所插入外键的值必须在被参照表中该字段有那 ...

  3. OracleDBA之表管理

    下面是Oracle表管理的部分,用到的测试表是oracle数据库中scott用户下的表做的测试,有的实验也用到了hr用户的数据,以下这些东西是我的麦库上存的当时学Oracle的学习笔记今天拿出来和大家 ...

  4. Oracle表空间管理

    oracle表空间相关常用命令小结: 1.ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;              //修改表空间数据文件类型 2.ALT ...

  5. Oracle的学习二:表管理(数据类型、创建/修改表、添加/修改/删除数据、数据查询)

    1.Oracle表的管理 表名和列名的命名规则: 必须以字母开头: 长度不能超过30个字符: 不能使用oracle的保留字: 只能使用如下字符:A-Z, a-z, 0-9, $, # 等. Oracl ...

  6. oracle 表空管理方式(LMT)、ASSM段管理方式、一级位图块、二级位图块、三级位图块。

    今天是2013-12-16,今天和明天是我学习oracle生涯中一个特殊的日子.今天晚上进行了一下表空间管理方式的学习,在此记录一下笔记. 对于oracle数据库最小i/0单位是数据块,最想分配空间单 ...

  7. Oracle 表空间的日常维护与管理

    目录 Oracle 表空间的日常维护与管理 1.创建数据表空间 2.创建临时表空间 3.创建 UNDO 表空间 4.表空间的扩展与修改大小 5.表空间重命名 6.表空间的删除 7.更改表空间的读写模式 ...

  8. Oracle表空间概述及其基本管理

    最近在工作中遇到有同事对Oracle表空间的理解有问题,所以写了这篇文章.我会从概念,管理及特别需要关注的点等几个维度对表空间进行一些介绍.本文以介绍表空间为主,涉及到的其他概念不展开描述.有问题的地 ...

  9. Oracle 表结构管理

    表其实是数据的'容器'.oracle有几种类型的表: 普通表(ordinary table)又叫堆组织表. 聚簇表(clustered table) 分区表(partition table) 外部表( ...

随机推荐

  1. ubuntu 下node 环境的安装

    1. 安装nodejs sudo apt-get install nodejs 注意:包名是nodejs 2. 建立node软连接 #找到nodejs位置 which nodejs # /usr/bi ...

  2. 步步学LINQ to SQL:使用LINQ检索数据【转】

    [IT168 专稿]该系列教程描述了如何采用手动的方式映射你的对象类到数据表(而不是使用象SqlMetal这样的自动化工具)以便能够支持数据表之间的M:M关系和使用实体类的数据绑定.即使你选择使用了自 ...

  3. NYOJ 46-最少乘法次数(数论)

    题目地址:pid=46">NYOJ 46 思路:能够化成二进制来求解.结果是最高位的位数-1+最高位后面1的个数.比如:对于3.它的二进制代码为11,就是用这个最高位(2-1)加上后面 ...

  4. Linux 程序启停脚本

    start.sh #!/bin/sh java -jar ./program.jar & echo $! > /var/run/program.pid stop.sh #!/bin/sh ...

  5. Cocos2d-x 3.1.1 Lua演示样例 ActionEaseTest(动作)

    Cocos2d-x Lua演示样例 ActionEaseTest(动作)   本篇博客介绍Cocos2d-x中的动作,Cocos2d-x为我们提供了丰富的动作接口,以下笔者就具体介绍一下:   本系列 ...

  6. 代码混淆 GSON完满解决

    头疼的问题,json使用了google的gson三方包,可是混淆的时候出了问题 明明已经按照gson的官方文档,把混淆脚本加上去了,却还是出问题. 今天同事找到一篇博客,关于这个问题的: 我们是将js ...

  7. Java报错--Unsupported major.minor version 52.0

    遇到一个Java相关的报错: ... java.lang.UnsupportedClassVersionError: ... : Unsupported major.minor version 52. ...

  8. RAID技术

    RAID:其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵.容量巨大的硬盘.所以称为廉价磁盘冗余数组 RAID级别: RAID 0亦称为带区集.它是将多个 ...

  9. web api (.NET 4.5)

    摘自http://blog.csdn.net/fangxing80/article/details/7318289 在刚刚发布的 ASP.NET MVC 4 中,有一个值得注意的新特性——Web Ap ...

  10. Parallel多线程

    随着多核时代的到来,并行开发越来越展示出它的强大威力!使用并行程序,充分的利用系统资源,提高程序的性能.在.net 4.0中,微软给我们提供了一个新的命名空间:System.Threading.Tas ...