Oracle 创建数据表以及对数据表、字段、主外键、约束的操作
选择主键的原则:
- 最少性
- 尽量选择使用单个键作为主键
- 稳定性
- 尽量选择数值更新少的列作为主键
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 创建数据表以及对数据表、字段、主外键、约束的操作的更多相关文章
- Oracle开发 之 主-外键约束FK及约束的修改
试验环境: 1)数据库版本:oracle 11.2.0.4 2)建表脚本:以scott的dept及emp表为基础. 父表:dept -- Create table create table DEPT ...
- 通过sql命令建表 和 主外键约束以及其他约束
create table命令 create table dept ( dept_id int primary key, dept_name ) not null, dept_address ) ) c ...
- oracle 查看主外键约束
select a.constraint_name, a.table_name, b.constraint_name from user_constraints a, user_constraints ...
- 表有主外键约束时的delete 方法 2008
--1.禁用约束 ALTER TABLE abppmgr.MST_ITEMMASTER disable CONSTRAINT C0248833319_7676; --2.删除数据 truncate t ...
- Oracle:对表的CREATE、ALTER、INSERT、RENAME、DELETE操作练习以及主外键约束
-创建一个student表,设定表的主键为学号CREATE TABLE student( sno VARCHAR2(10) PRIMARY KEY, --列级约束 sno VARCHAR2(20) C ...
- MySQL创建数据表并建立主外键关系
为mysql数据表建立主外键需要注意以下几点: 需要建立主外键关系的两个表的存储引擎必须是InnoDB. 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型. 外键列和参照列必须创建索引, ...
- mysql数据库:分表、多表关联、外键约束、级联操作
一.分表.外键.级联.多对一 二.多对多 三.一对一 一.分表.外键.级联.多对一 将部门数据与员工数据放到同一张表中会造成 数据重复 结构混乱 扩展维护性差 需要分表 create table de ...
- 备忘:MySQL中修改表中某列的数据类型、删除外键约束
-- MySQL中修改表中某列的数据类型 ALTER TABLE [COLUMN] 表名 MODIFY 列名 列定义; -- 删除外键约束 SHOW CREATE TABLE 表名; -- 复制CON ...
- Oracle 外键约束
本文讨论一下Oracle中的外键约束问题,以及和DB2中的小不同. 首先创建测试环境. -- 创建测试主表. ID 是主键. CREATE TABLE test_main ( id INT, valu ...
- 数据库的SQL语句创建和主外键删除操作
create table UserType ( Id ,), Name nvarchar() not null ) go create table UserInfo ( Id ,), LoginPwd ...
随机推荐
- java中super的几种用法,与this的区别
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base"); ...
- vue 第三方图标库
"font-awesome": "^4.7.0", "dependencies": { "axios": "^ ...
- String.split()与StringUtils.split()的区别
import com.sun.deploy.util.StringUtils; String s =",1,,2,3,4,,"; String[] split1 = s.split ...
- JFinal之ActiveRecord开发示例
JFinal独创Db + Record模式示例 JFinal配备的ActiveRecord插件,除了实现了类似Rails ActiveRecrod的功能之外,还实现了Db + Record模式,此模式 ...
- 3.3 GO字符串处理
strings方法 index 判断子字符串或字符在父字符串中出现的位置(索引)Index 返回字符串 str 在字符串 s 中的索引( str 的第一个字符的索引),-1 表示字符串 s 不包含字符 ...
- HTML DOM 对象 - 方法和属性
一些常用的 HTML DOM 方法: getElementById(id) - 获取带有指定 id 的节点(元素) appendChild(node) - 插入新的子节点(元素) removeChil ...
- 看看线程特有对象ThreadLocal
作用:设计线程安全的一种技术. 在使用多线程的时候,如果多个线程要共享一个非线程安全的对象,常用的手段是借助锁来实现线程的安全.线程安全隐患的前提是多线程共享一个不安全的对象 ,那么有没有办法让线程之 ...
- java配置文件的使用 —— 设置一个类为单例模式
阅读本文章前建议先阅读:java通过JDBC访问sqlserver数据库 一.使用原因:通过JDBC连接数据库时有时会需要连接不同的数据库,而jar包.连接url.用户名和密码等都是写定在程序中,不便 ...
- .net 5 开发部署B/S程序。
现在.net 6 已经出来了,visualStudio 2022也发行预览版了. 自 .net5 发布,.net core 与.net framework 已经走向统一.确实越来越好用了. 现在.ne ...
- 【简】题解 AWSL090429 【原子】
预处理出每个原子最近的不能合并的位置 枚举当前位置和前面断开的位置合并 发现还是不能过 考虑用选段树优化 但是因为每次转移的最优点是在前面可以合并的范围内 dp值加上当前的到该点的最大值 因为每个位置 ...