选择主键的原则:

  • 最少性
  • 尽量选择使用单个键作为主键
  • 稳定性
  • 尽量选择数值更新少的列作为主键

1、创建数据表(CREATE TABLE)

--创建数据表Student
create table Student(
SID number(2) constraint PK_SID primary key,--指定该列为主键列,并指定主键名为PK_SID
SName varchar2(16) not null
)--创建数据表Class
create table Class(
CID number(2) constraint PK_CID primary key,--指定该列为主键列,并指定主键名为PK_CID
CName varchar2(16) not null
)

2、重命名、删除数据表

--将数据表Student重命名为Stu
alter table Student rename to Stu;--删除数据表Studentdrop table Student;

3、添加、重命名、删除字段、修改字段数据类型

--为数据表Student添加字段SGender和SCID
alter table Student add (SGender char(2));
alter table Student add (SCID number(2));
--删除数据表Student中的字段SGender
alter table Student drop column SGender;
--将数据表Student中的字段SID重命名为StuID
alter table Student rename column SID to StuID;
--修改数据表Student中字段SID的数据类型
alter table Student modify SID number(2);

4、添加、删除字段约束

--为数据表Student中的字段SGender添加约束,并指定该约束的名称为ch_gender,指定该列的值只能是'男'或'女'
alter table Student add constraint ch_gender check(SGender='男' or SGender='女');
--删除数据表Student中约束名为ch_gender的约束
alter table Student drop constraint ch_gender;

5、查看、添加、重命名、删除、禁用、启用主键

--查看数据表Student中已定义的主键
select * from user_cons_columns where table_name='STUDENT';
--将数据表Student中的字段SName设为主键列,并指定该主键的名称为PK_Name
alter table Student add constraint PK_Name primary key(SName);
--删除主键名为PK_Name的主键
alter table Student drop constraint PK_Name;
--将主键名PK_StuID重命名为PK_SID
alter table Student rename constraint PK_StuID to PK_SID;
--禁用主键
alter table Student disable primary key;
--启用主键
alter table Student enable primary key;

6、查看、添加、重命名、删除、禁用、启用外键

--查看数据表中已存在的外键
select owner,constraint_name from user_constraints where constraint_type='R'--P 主键 R 外键
--添加外键
alter table Student add constraint FK_SCID foreign key(SCID) references Class(CID)
--删除外键
alter table Student drop constraint FK_SCID
--重命名外键
alter table Student rename constraint FK_SClassID to FK_SCID
--禁用外键
alter table Student disable constraint FK_SCID
--启用外键
alter table Student enable constraint FK_SCID

转载于:https://www.cnblogs.com/cs569/p/7469272.html

Oracle 创建数据表以及对数据表、字段、主外键、约束的操作相关推荐

  1. sql向数据库表中插入列,sql给表的列添加说明,sql添加主外键约束,增加列,增加字段

    规则代码 use 数据库名--向表中插入列alter table 表名 add 列名 类型go--给表的列添加说明 execute sp_addextendedproperty 'MS_Descrip ...

  2. Oracle 主外键约束

    一 主键(Primary Key) 1 一个表只能有一个主键,作为主键的列具有唯一(unique)和非空约束(not null): 2 对列创建了主键约束的同时,会自动对列创建一个索引: 3 创建表时 ...

  3. oracle查看外键约束哪个字段,oracle 查看主外键约束(转)

    oracle 查看主外键约束(转) 上一篇 / 下一篇  2011-07-05 17:37:49 / 个人分类:数据库 select a.constraint_name, a.table_name, ...

  4. 【2 - 数据库是如何存储数据的】Sql Server - 郝斌(字段、记录、表;图形化界面及sql语句建表;六种约束;一对一、一对多、多对多、数据库关系图;主外键)

    课程地址:数据库 SQLServer 视频教程全集(99P)| 22 小时从入门到精通_哔哩哔哩_bilibili 目录 数据库是如何解决数据存储问题的 1. 表的相关数据 2. create tab ...

  5. mysql 有外键 怎么插入数据_外键约束的表怎么插入数据

    有外键的情况应该先添加主表数据,再添加副表数据. 如:有以下两张表 班级表: CLASSID NAME 1 一班 2 二班 学生表: SID NAME CLASSID 1 张三 1 2 李四 1 3 ...

  6. 数据库元数据数据字典查询_5_列出给定表的主键、外键约束

    列出给定表的主键.外键约束 需求描述 需求:查询出给定的表emp的外键约束信息. 解决方法:通过各个数据库里提供的与外键约束相关的数据字典进行查询. 注: 数据库数据集SQL脚本详见如下链接地址 员工 ...

  7. SQL外键约束多表查询级联删除子查询

    文章目录 一.外键 1.创建外键约束 2.删除外键约束 3.外键约束提示 二.级联删除 三.多表查询 1.笛卡尔积 2.内连接查询 1.隐式内连接 2.显示内连接 3.外连接查询 1.左外连接 2.右 ...

  8. 数据库建表时一定要设置外键约束关系吗?

    数据库建表时一定要设置外键约束关系吗? 我们都知道每张数据表都有一个能够确定每行数据唯一性的字段,也就是主键.而在关系数据库中,常常有两表存在一定关系的情况.即一张表的主键跟另一张的外键存在对应关系, ...

  9. oracle 外键约束 权限,ORACLE外键约束(FORIGEN KEY)

    外键约束的定义是,让另一张表的记录来约束自己.这里的另一张表就是主表. 当主表的记录删除时,我们可以跟随主表删除记录(ON DELETE CASCADE).或者相应字段设置为空(ON DELETE S ...

  10. oracle外键约束的各种选项,聊聊Oracle外键约束的几个操作选项

    三.On delete cascade 对于应用开发人员而言,严格外键约束关系是比较麻烦的.如果直接操作数据库记录,就意味着需要手工处理主子表关系,处理删除顺序问题.On delete cascade ...

最新文章

  1. CSS3---8.盒模型
  2. php如何通过变量销毁unset的过程讲解
  3. ubuntu安装php-curl拓展
  4. mysql可连接_mysql开启远程可连接
  5. 互掐盗播风云再起 三大视频网站存和解可能
  6. 全球IPv4地址正式耗尽!
  7. VS2019 配置OpenGL
  8. 时间序列计量经济学模型
  9. 细说SDRAM控制器
  10. 商业银行资产托管业务读书笔记
  11. 计算机网页文档无法复制怎么办,关于电脑浏览器网页不能复制网页文字的恢复教程...
  12. Python淘宝爬虫
  13. C++隐藏任务栏图标
  14. Brute Force(暴力破解)
  15. 解决vender-base.66c6fc1c0b393478adf7.js:6 TypeError: Cannot read property ‘validate‘ of undefined问题
  16. 简易的Java版 eval()函数
  17. 抽奖机(用除法)1.0-python
  18. 计算机奥林匹克竞赛基础知识,竞赛考什么?五大学科竞赛基础常识盘点
  19. ch.ethz.ssh2._MindTerm SSH客户端3.4版已发布
  20. 华为模拟器eNSP防火墙向导配置

热门文章

  1. httpd-2.2和httpd-2.4虚拟主机的实现
  2. 来自damon的zencart二次开发教程-2.2登录模块分析
  3. 基于51单片机实现模拟IIC总线时序
  4. union-find算法分析(2)
  5. VB无所不能之三:VB截获Windows消息的钩子
  6. shell中$后加引号有什么用($string和$'string')
  7. Promise深度学习---我のPromise/A+实现
  8. [20170606]11G _optimizer_null_aware_antijoin.txt
  9. IdentityServer4 实现 OAuth 2.0(密码模式 - HTTP Post 方式)
  10. Ember.js 入门指南——handlebars属性绑定