1、主键和外键
主键:关系型数据库中的一条记录中有若干个属性,若其中的某一个属性组(注意是组,可以是一个,也可以是多个)能唯一标识一条记录,那么该属性组就是主键
外键:关系型数据库表中的一列或者某几列的组合,它的值与另外一张表的某一列或者某几列相匹配,且为另一张表的主键(即这张表的某一列或某几列是另外一张表的主键,称这一列或几列为另外一张表的外键)

注1:一张表主键只能有一个,可以有多个外键以及唯一索引

注2:Oracle数据库共有5个约束:主键、外键、非空、唯一、条件
非空:这个列的值不能为空(NOT NULL)
唯一:这个列的值在表中是唯一存在的,不能重复,但可以为空值(NULL)
条件:可以对列的值设定在某个范围内,如人的年龄就不能为负数等。

注3:主键和唯一约束的区别
表的主键是列的值为表中的唯一标识,不能为空值(NULL),而表的唯一约束是列的值在表中唯一存在,可以为空值(NULL)

2、表的创建及删除
无约束创建:

复制代码代码如下:
create table Items(ItemNO number(2),ItemName varchar2(20));

删除:

复制代码代码如下:
drop table Items;

有主键约束创建:

复制代码代码如下:
create table Items(ItemNO number(2) constraint PK_Items primary key,ItemName varchar2(20) not null);
有外键约束创建:
[code]
create table Business(BusiNo number(2) constraint PK_Business primary key,
BusiName varchar2(32) not null,ItemNO number(2),constraint FK_Business
foreign key(ItemNO) references Items(ItemNO),StartTime date);

注:constraint:定义表中约束所必须的关键字
primary key:主键约束关键字
foreign key...references...:创建表的外键关键字

3、to_date:Oracle的一个内部函数,可以把字符串变成时间

复制代码代码如下:
insert into Business(Busino,Businame,Itemno,Starttime) 
values(4,'SuperMarket',2,to_date('2008-08-08','YYYY-MM-DD'));

4、创建有“唯一”和“条件”约束的表

复制代码代码如下:
create table Computers(
CompNo number(4) constraint PK_Comp primary key,
CompModel varchar2(64) unique,
BuyTime date,
Price number(7,2) constraint ch_price check(price>0 and price<=30000),
Owner varchar2(32));

注:unique:为唯一约束关键字
constraint...check...:为条件约束的关键字

5、创建新表business_copy,并复制business表的数据
create table business_copy as select * from business;

注:create table:创建表的关键字
as select * from business:把business中的数据全部复制到business_copy中(不复制表的约束)

6、把备份表中的数据导入新表

复制代码代码如下:
insert into business(busino,businame,itemno,starttime) select * from business_copy;

7、常用的字段数据类型
Number(p,s):数值类型,其中p最小值为1,最大值为38,s最小值为-84,最大值为124
Date:日期类型,用于记录时间
Char(size):定长字符串类型,知道规定的长度,可以节省很大空间,比如性别,F表示女,M表示男
varchar(size):可变长字符串类型
Blob(二进制大对象类型):用于存储二进制对象,比如照片、文档资料等
Clob(字符大对象类型):用于存储字节的大对象数据,比如简历之类
Bfile(二进制文件):存储大对象,比如电影胶片等

8、修改表结构
增加一个表字段

复制代码代码如下:
alter table items add(manager VARCHAR2(6));

注:alter,这是Oracle数据库中更改数据库参数、表结构等均会使用到
add:这里是增加一个列的关键字

修改表的字段最大值

复制代码代码如下:
alter table items modify(manager varchar2(8));

删除表的某一列
[code]
alter table items drop column manager;

oracle创建表的方法和一些常用命令的更多相关文章

  1. Oracle创建 表空间 用户 给用户授权命令

    //创建表空间 create tablespace ACHARTSdatafile 'D:\oradata\orcl\ACHARTS01.DBF' size 800mautoextend on nex ...

  2. Oracle创建表语句(Create table)语法详解及示例、、 C# 调用Oracle 存储过程返回数据集 实例

    Oracle创建表语句(Create table)语法详解及示例 2010-06-28 13:59:13|  分类: Oracle PL/SQL|字号 订阅 创建表(Create table)语法详解 ...

  3. oracle创建表之前判断表是否存在,如果存在则删除已有表

    Mysql 创建表之前判断表是否存在,如果存在则删除已有表 DROP TABLE IF EXISTS sys_area; CREATE TABLE sys_area ( id int NOT NULL ...

  4. Oracle创建表空间和表

    创建表空间和表ORACLE物理上是由磁盘上的以下几种文件:数据文件和控制文件和LOGFILE构成的oracle中的表就是一张存储数据的表.表空间是逻辑上的划分.方便管理的.数据表空间 (Tablesp ...

  5. Oracle创建表空间、用户管理、角色管理

    内容:Oracle创建表空间.用户管理.角色管理 1.用系统用户登录Oracle 默认的系统用户: sys/system.sysman.scott sys:权限最大,超级用户,可以完成所有任务, 默认 ...

  6. Gulp安装流程、使用方法及cmd常用命令导览

    Gulp安装流程.使用方法及CMD常用命令导览 来自前端小白的gulp及周边知识学习总结 一.名词介绍: Npm--node包管理工具 一开始我不理解,包管理工具是什么鬼.后来用到的gulp也好,gu ...

  7. Activiti 配置Oracle不能自动创建表解决方法

    使用配置文件创建工作流表 <bean id="processEngineConfiguration" class="org.activiti.engine.impl ...

  8. Oracle创建表及管理表

    转自:https://www.linuxidc.com/Linux/2018-05/152566.htm   1. Oracle表的创建及管理 创建表包括三个要素,表名,列名,数据类型.每个表都有对应 ...

  9. Oracle创建表空间、用户名、密码步骤教程

    第一步,以最高级别 SYSDBA 身份登录数据库 cmd 进入命令行 登录方式一: C:\Documents and Settings\Administrator>sqlplus sys/sys ...

随机推荐

  1. C# 中使用Linq和Lambda表达式对List<T>进行排序

    C#中List<T>排序的两种方法 List<Student> stu = (List<Student>)Session["StudentList&quo ...

  2. [leetcode.com]算法题目 - Plus One

    Given a number represented as an array of digits, plus one to the number. class Solution { public: v ...

  3. webApp在各大Android市场上的发布

    本来打算每个月都写上一篇博客的,可是计划永远赶不上变化,不过这其中也有自己的懒惰,果然过年让整个人懈怠了不少.年后一直在赶项目以致于到今天才动手写这篇文章. 这一篇主要写点在公司的要求下发布的webA ...

  4. tkinter之Frame

    tkinter的Frame即容器,在容器内部好像不能再嵌套一个Frame.

  5. POJ 2485

    #include<iostream> #define MAXN 505 #define inf 1000000000 using namespace std; typedef int el ...

  6. windows10升级系统后,无法远程桌面连接服务器

    远程桌面,身份验证错误:要求的函数不正确等解决办法 https://www.cnblogs.com/LuckWJL/p/9018710.html

  7. 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 3、Python Basics with numpy (optional)

    Python Basics with numpy (optional)Welcome to your first (Optional) programming exercise of the deep ...

  8. 剑指offer十五之反转链表

    一.题目 输入一个链表,反转链表后,输出链表的所有元素. 二.思路 详细分析见代码注释 三.代码 public class Solution {     public ListNode Reverse ...

  9. Linux发邮件

    一.mail命令 1.配置 vim /etc/mail.rc 文件尾增加以下内容  set from=1968089885@qq.com smtp="smtp.qq.com"set ...

  10. 为什么要设置Java环境变量(windows)

    在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH.正确地配置这些环境变量,是能够顺利学习.开发的前提.而经常出现的问题是:有的学习者能够按照提示 ...