创建表

建表语法:

CREATE TABLE 表名 (

 列1 数据类型 [primary key],

 列2 数据类型 default 默认值 [not null],

  …,
constraint 约束名 约束类型(列),

)
/

例如,创建学生信息表:

--创建表
CREATE TABLE INFOS(
STUID VARCHAR2(7) NOT NULL, --学号 学号=‘S’+班号+2位序号
STUNAME VARCHAR2(10) NOT NULL, --姓名
GENDER VARCHAR2(2) NOT NULL, --性别
AGE NUMBER(2) NOT NULL, --年龄
SEAT NUMBER(2) NOT NULL, --座号
ENROLLDATE DATE, --入学时间
STUADDRESS VARCHAR2(50) DEFAULT '地址不详', --住址
CLASSNO VARCHAR2(4) NOT NULL --班号 班号=学期序号+班级序号
)

注意:在 Oracle 代码中, “/” 执行缓存区中的语句,由于缓冲区中只存储一条刚刚保存过语句,由于每条语句没有用分号结尾,只是保存在缓冲区,因此每条语句后面都有单独一行“/” 。

数据类型

Oracle数据库中常用的数据类型有CHAR、VARCHAR2、NUMBER、DATE、TIMESTAMP、CLOB、BLOB、LONG。

类型

含义

CHAR(length)

存储固定长度的字符串。参数length指定了长度,如果存储的字符串长度小于length,用空格填充。默认长度是1,最长不超过2000字节。

VARCHAR2(length)

存储可变长度的字符串。length指定了该字符串的最大长度。默认长度是1,最长不超过4000字符。

NUMBER(p,s)

既可以存储浮点数,也可以存储整数,p表示数字的最大位数(如果是小数包括整数部分和小数部分和小数点,p默认是38为),s是指小数位数。 Number(10,3)

DATE

存储日期和时间,存储纪元、4位年、月、日、时、分、秒,存储时间从公元前4712年1月1日到公元后4712年12月31日。TO_DATE()系统函数,格式化日期。

TIMESTAMP

不但存储日期的年月日,时分秒,以及秒后6位,同时包含时区。

CLOB

存储大的文本,比如存储非结构化的XML文档

BLOB

存储二进制对象,如图形、视频、声音等。

LONG

LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的。LONG 数据类型中存储的是可变长字

  能够操作 LONG 的 SQL 语句:

    1、Select语句

    2、Update语句中的SET语句

    3、Insert语句中的VALUES语句

  数据类型的限制:

    1、一个表中只能包含一个 LONG 类型的列。

    2、不能索引LONG类型列。

    3、不能将含有LONG类型列的表作聚簇。

    4、不能在SQL*Plus中将LONG类型列的数值插入到另一个表格中,如insert into ...select。

    5、不能在SQL*Plus中通过查询其他表的方式来创建LONG类型列,如create table as select。

    6、不能对LONG类型列加约束条件(NULL、NOT NULL、DEFAULT除外),如:关键字列(PRIMARY KEY)不能是 LONG 数据类型。

    7、LONG类型列不能用在Select的以下子句中:where、group by、order by,以及带有distinct的select语句中。

    8、LONG类型列不能用于分布查询。

约束类型

【】内是惯性命名法

--主键约束
ALTER TABLE 表名 ADD CONSTRAINT 主键约束名【PK_表名】 PRIMARY KEY(列名) --唯一约束
ALTER TABLE 表名 ADD CONSTRAINT 唯一约束名【UN_表名_列名】 UNIQUE(列名) --默认约束
ALTER TABLE 表名 MODIFY 列名 DEFAULT 默认值 --检查约束
ALTER TABLE 表名 ADD CONSTRAINT 检查约束名【CK_表名_列名】 CHECK(列名 条件) --外键约束
ALTER TABLE 表名 ADD CONSTRAINT 外键约束名【FK_子表名_主表名_列名】 FOREIGN KEY REFERENCES 主表名(列名)

例如:为学生信息表添加约束

--为INFOS 添加主键约束
ALTER TABLE INFOS ADD CONSTRAINT PK_INFOS PRIMARY KEY(STUID) --为INFOS 添加唯一约束
ALTER TABLE INFOS ADD CONSTRAINT UN_INFOS_CLASSNO UNIQUE(CLASSNO) --为INFOS 添加默认约束
ALTER TABLE INFOS MODIFY ENROLLDATE DEFAULT TO_DATE('2018-01-01','YYYY-MM-DD') --为INFOS 添加检查约束
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_GENDER CHECK(GENDER='男' OR GENDER='女') --为INFOS 添加外键约束
ALTER TABLE SCORES ADD CONSTRAINT FK_SCORES_INFOS_STUID FOREIGN KEY(STUID) REFERENCES INFOS(STUID)

删除约束

--删除约束
ALTER TABLE 表名 DROP 约束名

修改表

--添加列(加字段)

--语法: alter table 表名 add(列名 数据类型 [not null], …);

alter table person add address01 varchar2(300);

alter table person add address02 varchar2(300);

​
--修改列的类型 --语法: alter table 表名 modify(列名 数据类型 [not null], …); alter table person modify address01 varchar2(500); ​
--修改列名 --语法: alter table 表名 rename column 旧列名 to 新列名; alter table person rename column address02 to address; ​
--删除列 --语法: alter table 表名 drop(列名 1, 列名 2, …); alter table person drop column address;

删除表

--语法(如果没有指定 purge 参数,被删除的表就会保存在回收站中)
drop table 表名 [purge]; --删除 userinfo表
--保存在回收站中,可以从回收站中恢复.
drop table userinfo; --永久删除表,不会保存在回收站中
drop table userinfo purge;

复制表

--语法:
create table 表名 as select 列名 from 表名 [where 条件]; --复制表的结构和数据: --创建一个 userinfo表的备份表(复制表的结构和数据) create table userinfo as select * from user; --只复制表的结构: create table userinfo as select * from user where 1=2;

Oracle数据库教程-数据定义语言(表操作)的更多相关文章

  1. Oracle 数据库基本操作——实用手册、表操作、事务操作、序列

    目录: 0. 参考链接与参考手册1. oracle 实用(常用操作)指令2. 数据库基本操作语法 a) 表操作 1)创建表 2)更新表 3)删除表 4)查询 b) 事务操作 c) 序列操作 1)创建序 ...

  2. mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)

    0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...

  3. oracle 数据库误删数据,误删表的恢复

    1.某表的数据误删了,那么可以查询这个表某一时间节点之前的数据,并放到一个新建的表里. create table temptable as select * from t_billdefi  as O ...

  4. oracle DDL(数据定义语言)基本语句

    --创建表格 create table  production( ProductIdvarchar2(10), ProductNamevarchar2(20), ProductPricenumber( ...

  5. Oracle language types(语言种类) 表的相关操作 DDL数据定义语言

    数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...

  6. Oracle数据库 — DDL:数据定义语言

    1.数据定义语言:用于定义数据库的结构,比如创建.修改或删除数据库对象: 包括: CREATE TABLE:创建数据库表:创建表的命名规则: 2.以字母开头:在 1–30 个字符之间:只能包含 A–Z ...

  7. oracle数据库语言(1)--数据定义语言

      1.数据定义语言 (DDL)DATE DEFINITION LANGUAGE 作用是用于增删改 数据库对象 (1) 创建表格 CREATE TABLE EMP ( -------创建 名为 EMP ...

  8. oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言

    DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...

  9. Oracle数据库,数据的增、删、改、查

    oracle数据库中,数据的增.删.改.查,通过SQL语句实现 SQL:结构化查询语言: 特点:不区分大小写:字符串用单引号引起来:语句结束用分号表示结束: 行注释,在语句的最前面加"--& ...

随机推荐

  1. PHP similar_text() 函数

    实例 计算两个字符串的相似度并返回匹配字符的数目: <?php高佣联盟 www.cgewang.comecho similar_text("Hello World",&quo ...

  2. luogu P4166 [SCOI2007]最大土地面积 凸包 旋转卡壳

    LINK:最大土地面积 容易想到四边形的边在凸包上面 考虑暴力枚举凸包上的四个点计算面积. 不过可以想到可以直接枚举对角线的两个点找到再在两边各找一个点 这样复杂度为\(n^3\) 可以得到50分. ...

  3. Python爬取10000条“爆款剧”——《三十而已》热评,并做可视化

    前言 继<隐秘的角落>后,又一部“爆款剧”——<三十而已>获得了口碑收视双丰收,王漫妮.顾佳.钟晓芹三个女主角的故事线频频登上微博热搜.该剧于2020年7月17日在东方卫视首播 ...

  4. Python网络数据采集PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书

    点击获取提取码:jrno 内容提要 本书采用简洁强大的 Python 语言,介绍了网络数据采集,并为采集新式网络中的各种数据类 型提供了全面的指导.第一部分重点介绍网络数据采集的基本原理:如何用 Py ...

  5. [转]Java 逃逸分析

    作者:栈长  公众号:Java技术栈 记得几年前有一次栈长去面试,问到了这么一个问题:Java中的对象都是在堆中分配吗?说明为什么! 当时我被问得一脸蒙逼,瞬间被秒杀得体无完肤,当时我压根就不知道他在 ...

  6. 一文学会MySQL的explain工具

    开篇说明 (1) 本文将细致介绍MySQL的explain工具,是下一篇<一文读懂MySQL的索引机制及查询优化>的准备篇. (2) 本文主要基于MySQL5.7版本(https://de ...

  7. java交换两个参数值的四种方法

    第一种:添加中间变量,算是最经典最简易的一种了. //添加一个中间变量 int x = 1, y = 2; int z; z = x;x = y;y = z; System.out.println(x ...

  8. Android 的Fragment组件(写完放假。。。)

    今天写的有点晚,做个题目有点慢,然后搞其他事搞定就到了0点,总结下就差不多该睡了. 今天学长讲的是Fragment: 一个可以将activity拆分成几个完全独立封装的可重用的组件,每个组件有自己的生 ...

  9. 干!一张图整理了 Python 所有内置异常

    在编写程序时,可能会经常报出一些异常,很大一方面原因是自己的疏忽大意导致程序给出错误信息,另一方面是因为有些异常是程序运行时不可避免的,比如在爬虫时可能有几个网页的结构不一致,这时两种结构的网页用同一 ...

  10. 因网络时代与云端应用而生的AGPL-3.0授权条款

    ​ 此篇文章转载自:因應網路時代與雲端應用而生的 AGPL-3.0 授權條款 如你所见,原文为繁体,我将其转为简体并将"网路"替换为"网络",方便阅读.并未修改 ...