Oracle数据库教程-数据定义语言(表操作)
创建表
建表语法:
- 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数据库教程-数据定义语言(表操作)的更多相关文章
- Oracle 数据库基本操作——实用手册、表操作、事务操作、序列
目录: 0. 参考链接与参考手册1. oracle 实用(常用操作)指令2. 数据库基本操作语法 a) 表操作 1)创建表 2)更新表 3)删除表 4)查询 b) 事务操作 c) 序列操作 1)创建序 ...
- mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)
0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...
- oracle 数据库误删数据,误删表的恢复
1.某表的数据误删了,那么可以查询这个表某一时间节点之前的数据,并放到一个新建的表里. create table temptable as select * from t_billdefi as O ...
- oracle DDL(数据定义语言)基本语句
--创建表格 create table production( ProductIdvarchar2(10), ProductNamevarchar2(20), ProductPricenumber( ...
- Oracle language types(语言种类) 表的相关操作 DDL数据定义语言
数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...
- Oracle数据库 — DDL:数据定义语言
1.数据定义语言:用于定义数据库的结构,比如创建.修改或删除数据库对象: 包括: CREATE TABLE:创建数据库表:创建表的命名规则: 2.以字母开头:在 1–30 个字符之间:只能包含 A–Z ...
- oracle数据库语言(1)--数据定义语言
1.数据定义语言 (DDL)DATE DEFINITION LANGUAGE 作用是用于增删改 数据库对象 (1) 创建表格 CREATE TABLE EMP ( -------创建 名为 EMP ...
- oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言
DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...
- Oracle数据库,数据的增、删、改、查
oracle数据库中,数据的增.删.改.查,通过SQL语句实现 SQL:结构化查询语言: 特点:不区分大小写:字符串用单引号引起来:语句结束用分号表示结束: 行注释,在语句的最前面加"--& ...
随机推荐
- Python for循环语句
Python for 循环语句:遍历任何序列的项目,可以是字符串.列表.元组.字典.集合对象. 流程图: 第一种: ''' for 迭代对象 in 序列: 代码块(一行语句或多行代码) ''' 第二种 ...
- MYSQL的事物四大特性
MYSQL的事物四大特性(ACID) 1.什么是事物? 事务(Transaction)是并发控制的基本单位.所谓的事务,它是由单独单元的一个或者多个sql语句组成,在这个单元中,每个mysql语句是相 ...
- PHP array_udiff_uassoc() 函数
实例 比较两个数组的键名和键值(使用用户自定义函数进行比较),并返回差集: <?phpfunction myfunction_key($a,$b){if ($a===$b){return 0;} ...
- PHP next() 函数
实例 输出数组中的当前元素和下一个元素的值: <?php$people = array("Peter", "Joe", "Glenn" ...
- PHP attributes() 函数
实例 返回 XML 的 body 元素的属性和值: <?php$note=<<<XML<note><to>Tove</to>高佣联盟 www ...
- 7.1 NOI模拟赛 dp floyd
这是一道非常垃圾的题目 且 数据范围简直迷惑选手.. 可以发现 题目中有 边权递增 边的条数 所有边权值不同 最小边权和等条件. 看起来很难做 一个想法 边权递增+边的1的权值都不相同可以想到 关系存 ...
- angularjs脏检查
angularjs实现了双向绑定,与vue的defineProperty不同,它的原理在于它的脏检查机制,以下做了一些总结: angular.js介绍 AngularJs是mvvm框架,它的组件是vm ...
- Spring 自动装配机制
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...
- SAFe必备——提高团队敏捷性
规模化敏捷之于项目群,就像Scrum之于敏捷团队.为了创建高质量业务解决方案,企业需要提高自身能力,提升团队和技术敏捷性,实现真正的规模化敏捷. 敏捷发布火车 实现团队和技术敏捷性,首先需要敏捷团队围 ...
- three.js 着色器材质之glsl内置函数
郭先生发现在开始学习three.js着色器材质时,我们经常会无从下手,辛苦写下的着色器,也会因莫名的报错而手足无措.原因是着色器材质它涉及到另一种语言–GLSL,只有懂了这个语言,我们才能更好的写出着 ...