选择主键的原则:

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

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;
--删除数据表Student
drop 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

Oracle 创建数据表以及对数据表、字段、主外键、约束的操作的更多相关文章

  1. Oracle开发 之 主-外键约束FK及约束的修改

    试验环境: 1)数据库版本:oracle 11.2.0.4 2)建表脚本:以scott的dept及emp表为基础. 父表:dept -- Create table create table DEPT ...

  2. 通过sql命令建表 和 主外键约束以及其他约束

    create table命令 create table dept ( dept_id int primary key, dept_name ) not null, dept_address ) ) c ...

  3. oracle 查看主外键约束

    select a.constraint_name, a.table_name, b.constraint_name from user_constraints a, user_constraints ...

  4. 表有主外键约束时的delete 方法 2008

    --1.禁用约束 ALTER TABLE abppmgr.MST_ITEMMASTER disable CONSTRAINT C0248833319_7676; --2.删除数据 truncate t ...

  5. Oracle:对表的CREATE、ALTER、INSERT、RENAME、DELETE操作练习以及主外键约束

    -创建一个student表,设定表的主键为学号CREATE TABLE student( sno VARCHAR2(10) PRIMARY KEY, --列级约束 sno VARCHAR2(20) C ...

  6. MySQL创建数据表并建立主外键关系

    为mysql数据表建立主外键需要注意以下几点: 需要建立主外键关系的两个表的存储引擎必须是InnoDB. 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型. 外键列和参照列必须创建索引, ...

  7. mysql数据库:分表、多表关联、外键约束、级联操作

    一.分表.外键.级联.多对一 二.多对多 三.一对一 一.分表.外键.级联.多对一 将部门数据与员工数据放到同一张表中会造成 数据重复 结构混乱 扩展维护性差 需要分表 create table de ...

  8. 备忘:MySQL中修改表中某列的数据类型、删除外键约束

    -- MySQL中修改表中某列的数据类型 ALTER TABLE [COLUMN] 表名 MODIFY 列名 列定义; -- 删除外键约束 SHOW CREATE TABLE 表名; -- 复制CON ...

  9. Oracle 外键约束

    本文讨论一下Oracle中的外键约束问题,以及和DB2中的小不同. 首先创建测试环境. -- 创建测试主表. ID 是主键. CREATE TABLE test_main ( id INT, valu ...

  10. 数据库的SQL语句创建和主外键删除操作

    create table UserType ( Id ,), Name nvarchar() not null ) go create table UserInfo ( Id ,), LoginPwd ...

随机推荐

  1. 【TCP/IP】之Java socket编程API基础

    Socket是Java网络编程的基础,深入学习socket对于了解tcp/ip网络通信协议很有帮助, 此文讲解Socket的基础编程.Socket用法:①.主要用在进程间,网络间通信. 文章目录如下: ...

  2. SpringMVC详细实例

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...

  3. Druid数据库监控

    一.简介 Druid是阿里开源的一个JDBC应用组件, 其包括三部分: DruidDriver: 代理Driver,能够提供基于Filter-Chain模式的插件体系. DruidDataSource ...

  4. 【spring AOP】@Pointcut的12种用法

    @Pointcut用来标注在方法上来定义切入点. 使用格式:@ 注解(value="表达标签 (表达式格式)").如:@Pointcut("execution(* com ...

  5. Windows内存管理-分段

    0x01原因 分段的产生原属于安全问题. 一个程序可以自由的访问不属于它的内存位置,甚至可以对那些内容进行修改.这也导致安全问题 促使一种内存隔离的手段 分段的产生. 0x02分段原理 处理器要求在加 ...

  6. 【web】php文件包含(利用phpinfo)

    Docker搭建复现环境 地址:https://github.com/vulhub/vulhub/tree/master/php/inclusion ps. github单独下载一个文件夹的方法: 安 ...

  7. SQL获取当天0点0分0秒和23点59分59秒方法

    SELECT CONVERT(DATETIME,CONVERT(VARCHAR(10),GETDATE(),120)) select cast(convert(varchar(10),getdate( ...

  8. Java abstract 抽象类 和interface接口的异同点

    abstract 抽象类 和interface接口的异同点 相同点: 抽象类和接口都不能实例化,他们都位于继承树顶端,被其他类实现和继承 都可以包含抽象方法,实现接口或者继承抽象类的非抽象类(普通类) ...

  9. MySQL增删改查的常用语句汇总

    MySQL增删改查的常用语句汇总 以下是总结的mysql的常用语句,欢迎指正和补充~ 一.创建库,删除库,使用库 1.创建数据库:create database 库名; 2.删除数据库:drop da ...

  10. 当更新user表时,页面没有的属性,执行update语句不会更改以前的值

    当更新user表时,页面没有的属性,执行update语句不会更改数据库表的值.不会用NULL值去填充