/*-----------------------创建和管理表-----------------------------*/
一、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. 安装 SQL Server 2008 R2 的硬件和软件要求(转)

    以下各部分列出了安装和运行 SQL Server 2008 R2 的最低硬件和软件要求.有关 SharePoint 集成模式下的 Analysis Services 的要求的详细信息,请参阅硬件和软件 ...

  2. Java导出excel并下载功能

    我们使用的导出并下载功能是利用一个插件叫POI的插件提供的导出功能,很实用:首先先导入Jar包: Jar包下载地址:http://poi.apache.org/   官方文档地址:http://poi ...

  3. 优先队列(priorityqueue)

    队列是先进先出的线性表,顾名思义,优先队列则是元素有优先级的队列,出列的顺序由元素的优先级决定.从优先队列中删除元素是根据优先权的高低次序,而不是元素进入队列的次序.优先队列的典型应用是机器调度等. ...

  4. Sublime 学习记录(四) Alignment 插件

    1)  Alignment 插件的安装 打开命令面板 输入pci 回车 输入Alignment 回车安装好即可 2)  Alignment 用处 用于代码对齐 3) Alignment 快捷键 默认为 ...

  5. (原)css 响应式媒体查询 模板

    @media only screen and (max-width:340px) { html,input{ font-size:80%; } } @media only screen and (ma ...

  6. 查看Android系统当前运行的activity

    在Appium进行自动化测试的时候,往往需要知道你要测试的应用的包名和activity的名字,这样才可以进行自动化测试. 在我之前的博客中也提到了获取activity的名字,但是并不是很方便,甚至浪费 ...

  7. 5.7.13mysql 无法登陆

    话不多说 用的http://dev.mysql.com/downloads/mysql/下的ZIP  Archive安装方式 下载 解压,然后吧bin目录添加到系统path环境变量下.然后将my-de ...

  8. [string]Roman to Integer,Integer to Roman

    一.Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within ...

  9. 安装gVim

    从Vim官网下载其安装包,安装并首次运行后,开启控制台并执行如下命令: %HOMEDRIVE% cd %HOMEPATH% mkdir vimfiles cd vimfiles mkdir backu ...

  10. Android Fragment真正意义上的onResume和onPause

    Fragment虽然有onResume和onPause的,但是这两个方法是Activity的方法,调用时机也是与Activity相同,和ViewPager搭配使用这个方法就很鸡肋了,根本不是你想要的效 ...