oracle alter table详解

2023-05-16

//建测试表
create table dept(
       deptno number(3) primary key,
       dname varchar2(10),
       loc varchar2(13) 
       );
create table employee_info(
       empno number(3),
       deptno number(3),
       ename varchar2(10),
       sex char(1),
       phone number(11),
       address varchar2(50),
       introduce varchar2(100)
       );
--
//0.重命名
  //0.1 表:rename dept to dt;
           rename dt to dept;
  //0.2 列:alter table dept rename column loc to location;
           alter table dept rename column location to loc;
//1.添加约束
  //1.1 primary key
      alter table employee_info add constraint pk_emp_info primary key(empno);
  //1.2 foreign key
      alter table employee_info add constraint fk_emp_info foreign key(deptno)
      references dept(deptno);
  //1.3 check
      alter table employee_info add constraint ck_emp_info check
      (sex in ('F','M'));
  //1.4 not null
      alter table employee_info modify phone constraint not_null_emp_info not null;
  //1.5 unique
      alter table employee_info add constraint uq_emp_info unique(phone);
  //1.6 default
      alter table employee_info modify sex char(2) default 'M';
//2.添加列
   alter table employee_info add id varchar2(18);
   alter table employee_info add hiredate date default sysdate not null;
//3.删除列
   alter table employee_info drop column introduce;
//3.修改列
  //3.1 修改列的长度
      alter table dept modify loc varchar2(50);
  //3.2 修改列的精度
      alter table employee_info modify empno number(2);
  //3.3 修改列的数据类型
      alter table employee_info modify sex char(2);
  //3.4 修改默认值
      alter table employee_info modify hiredate default sysdate+1;
//4.禁用约束
  alter table employee_info disable constraint uq_emp_info;
//5.启用约束
  alter table employee_info enable constraint uq_emp_info;
//6.延迟约束
  alter table employee_info drop constraint fk_emp_info;
  alter table employee_info add constraint fk_emp_info foreign key(deptno)
        references dept(deptno)
  deferrable initially deferred;
//7.向表中添加注释
  comment on table employee_info is 'information of employees';
//8.向列添加注释
  comment on column employee_info.ename is 'the name of employees';
  comment on column dept.dname is 'the name of department';
//9.清除表中所有数据
  truncate table employee_info;
//10.删除表
  drop table employee_info;
--
//下面来看看刚刚才我们对表dept和表employee_info所做的更改
//user_constraints视图里面包含了刚刚才我们创建的所有约束,以及其他信息,
//你可以用desc user_constraints命令查看其详细说明
select constraint_name,constraint_type,status,deferrable,deferred
from user_constraints
where table_name='EMPLOYEE_INFO';
--
CONSTRAINT_NAME                CONSTRAINT_TYPE STATUS   DEFERRABLE     DEFERRED
------------------------------ --------------- -------- -------------- ---------
PK_EMP_INFO                    P               ENABLED  NOT DEFERRABLE IMMEDIATE
FK_EMP_INFO                    R               ENABLED  DEFERRABLE     DEFERRED
NOT_NULL_EMP_INFO              C               ENABLED  NOT DEFERRABLE IMMEDIATE
SYS_C005373                    C               ENABLED  NOT DEFERRABLE IMMEDIATE
UQ_EMP_INFO                    U               ENABLED  NOT DEFERRABLE IMMEDIATE
CK_EMP_INFO                    C               ENABLED  NOT DEFERRABLE IMMEDIATE
//我们可以通过user_cons_columns视图查看有关列的约束信息;
select owner,constraint_name,table_name,column_name
from user_cons_columns
where table_name='EMPLOYEE_INFO';
--
OWNER                          CONSTRAINT_NAME                TABLE_NAME                     COLUMN_NAME
------------------------------ ------------------------------ ------------------------------ ---------------
YEEXUN                         PK_EMP_INFO                    EMPLOYEE_INFO                  EMPNO
YEEXUN                         CK_EMP_INFO                    EMPLOYEE_INFO                  SEX
YEEXUN                         NOT_NULL_EMP_INFO              EMPLOYEE_INFO                  PHONE
YEEXUN                         SYS_C005373                    EMPLOYEE_INFO                  HIREDATE
YEEXUN                         UQ_EMP_INFO                    EMPLOYEE_INFO                  PHONE
YEEXUN                         FK_EMP_INFO                    EMPLOYEE_INFO                  DEPTNO
//我们将user_constraints视图与user_cons_columns视图连接起来
//查看约束都指向哪些列
column column_name format a15;
select ucc.column_name,ucc.constraint_name,uc.constraint_type,uc.status
from user_constraints uc,user_cons_columns ucc
where uc.table_name=ucc.table_name and
      uc.constraint_name=ucc.constraint_name and
      ucc.table_name='EMPLOYEE_INFO';
--
COLUMN_NAME     CONSTRAINT_NAME                CONSTRAINT_TYPE STATUS
--------------- ------------------------------ --------------- --------
EMPNO           PK_EMP_INFO                    P               ENABLED
DEPTNO          FK_EMP_INFO                    R               ENABLED
PHONE           NOT_NULL_EMP_INFO              C               ENABLED
HIREDATE        SYS_C005373                    C               ENABLED
PHONE           UQ_EMP_INFO                    U               ENABLED
SEX             CK_EMP_INFO                    C               ENABLED
--
//这里有个constraint_type,他具体指下面几种类型:
//C:check,not null
//P:primary key
//R:foreign key
//U:unique
//V:check option
//O:read only
--
//我们可以通过user_tab_comments视图获得对表的注释
select * from user_tab_comments
where table_name='EMPLOYEE_INFO';
TABLE_NAME                     TABLE_TYPE  COMMENTS
------------------------------ ----------- --------------------------
EMPLOYEE_INFO                  TABLE       information of employees
--
//我们还可以通过user_col_comments视图获得对表列的注释:
select * from  user_col_comments
where table_name='EMPLOYEE_INFO';
--
TABLE_NAME                     COLUMN_NAME                    COMMENTS
------------------------------ ------------------------------ ---------------------------
EMPLOYEE_INFO                  EMPNO                          
EMPLOYEE_INFO                  DEPTNO                         
EMPLOYEE_INFO                  ENAME                          the name of employees
EMPLOYEE_INFO                  SEX                            
EMPLOYEE_INFO                  PHONE                          
EMPLOYEE_INFO                  ADDRESS                        
EMPLOYEE_INFO                  ID                             
EMPLOYEE_INFO                  HIREDATE 
--
select * from user_col_comments
where table_name='EMPLOYEE_INFO' and
      comments is not null;
--
TABLE_NAME                     COLUMN_NAME                    COMMENTS
------------------------------ ------------------------------ ------------------------
EMPLOYEE_INFO                  ENAME                          the name of employees
--
//最后我们来查看一下修改后的表:
desc employee_info;
Name     Type         Nullable Default   Comments              
-------- ------------ -------- --------- --------------------- 
EMPNO    NUMBER(2)                                             
DEPTNO   NUMBER(3)    Y                                        
ENAME    VARCHAR2(10) Y                  the name of employees 
SEX      CHAR(2)      Y        'M'                             
PHONE    NUMBER(11)                                            
ADDRESS  VARCHAR2(50) Y                                        
ID       VARCHAR2(18) Y                                        
HIREDATE DATE                  sysdate+1
--
desc dept;
Name   Type         Nullable Default Comments               
------ ------------ -------- ------- ---------------------- 
DEPTNO NUMBER(3)                                            
DNAME  VARCHAR2(10) Y                the name of department 
LOC    VARCHAR2(50) Y
--

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oracle alter table详解 的相关文章

  • Oracle group by 中的字符串聚合

    我已经形成了一个大型查询 它使用以下数据条件获取大型数据集 Column1 Column2 M1 OTH M1 HHM M1 RES M2 HHM M2 RES M3 OTH M3 RES 我需要将其形成为 M1 OTH HHM RES M
  • SQL选择符号||是什么意思意思是?

    什么是 在 SQL 中做什么 SELECT a b AS letter 表示字符串连接 不幸的是 字符串连接不能在所有 sql 方言之间完全移植 ANSI SQL 中缀运算符 mysql concat 可变参数函数 caution 表示 逻
  • oracle中是否有相当于concat_ws的东西?

    我有大量的列试图聚合在一起 其中大多数都有 NULL 值 我想分隔确实以 出现的值但我在oracle中找不到有效的方法来做到这一点 CONCAT WS 正是我所需要的 因为它不会在 NULL 值之间添加分隔符 但 Oracle 不支持这一点
  • SQL*Loader - 如何忽略具有特定字符的某些行

    如果我有一个以下格式的 CSV 文件 fd sdf dsfds dsfd fd asdf dsfds dsfd fd sdf rdsfds dsfd fdd sdf dsfds fdsfd fd sdf dsfds dsfd fd sdf
  • 如何从 Oracle 中的 select 语句调用带有 Rowtype 参数的函数

    我有一个 oracle 函数 它有一个 in 参数 它是表的行类型 我需要从 select 语句将当前行传递给这个函数 以便它进行一些处理并返回一个值 是否有一个伪变量可以在 select 语句的上下文中使用 相当于触发器中的旧的和新的 我
  • 在 Oracle 中创建数据库链接时出错

    我有两个数据库 需要编写跨数据库查询 所以我试图创建一个数据库链接 CREATE PUBLIC DATABASE LINK DBLink CONNECT TO SchemaName IDENTIFIED BY 123 using DBNam
  • 如何使用 Java 创建多个模式连接?

    我必须使用两个数据库 DB2 Oracle 我在 DB2 数据库中有一个名为NAVID 我想使用 Java 为 Oracle 中的所有表创建相同的架构 public class automateExport static String va
  • 在Oracle中查找不包含数字数据的行

    我试图在一个非常大的 Oracle 表中找到一些有问题的记录 即使该列是 varchar2 列 也应包含所有数值数据 我需要找到不包含数字数据的记录 当我尝试在此列上调用 to number col name 函数时 它会抛出错误 我想你可
  • 如何在 Oracle 上生成版本 4(随机)UUID?

    该博客解释说 输出sys guid 对于每个系统来说不是随机的 http feuerthoughts blogspot de 2006 02 watch out for sequential oracle guids html http f
  • Oracle内置函数元数据

    有没有办法获取 Oracle 内置聚合和其他功能的元数据 例如AVG STDDEV SQRT ETC 我需要知道对象 id 和参数元 In the SYS ALL OBJECTS查看我找不到任何有用的东西 我也尝试过搜索SYS ALL AR
  • ORACLE:未找到数据——但数据存在

    调试包过程 当实际上有数据时却找不到数据 仅测试 SELECT SELECT trim trailing from GL SECURITY as DUMMY FROM b2k user b2k WHERE sms username FUCH
  • Oracle Blob 在 PHP 页面中作为 img src

    我有一个网站当前使用文件服务器上的图像 这些图像显示在页面上 用户可以根据需要拖放每个图像 这是使用 jQuery 完成的 图像包含在列表中 每张图片都非常标准 img src network path image png height 8
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • Oracle - 获取星期几

    今天是星期二 为什么当我运行这个 SQL 语句时 它说今天不是星期二 SELECT CASE WHEN TO CHAR sysdate Day Tuesday THEN Its Tuesday ELSE Its Not Tuesday EN
  • 如何检查oracle数据库中分配给模式、角色的对象的权限(DDL、DML、DCL)?

    大多数时候 我们都在与愚蠢的事情作斗争 以获取架构 角色及其对象的权限详细信息 并尝试找到一些简单的方法来获取有关它的所有详细信息以及伪查询代码 以批量生成授予语句以供进一步使用执行 所以我们在这里得到它 关于数据字典视图前缀的一些简单介绍
  • Oracle JDBC 预取:如何避免 RAM 不足/如何使 oracle 更快高延迟

    使用 Oracle java JDBC ojdbc14 10 2 x 加载包含多行的查询需要很长时间 高延迟环境 这显然是 Oracle JDBC 中的默认预取默认大小 10 每 10 行需要一次往返时间 我正在尝试设置一个激进的预取大小来
  • PLSql 返回值

    我再次使用一些 PLSql 我想知道 是否有任何方法可以像选择一样使用以下函数 而不必将其转换为函数或过程 这样我就可以从包含它的脚本中看到代码 代码如下 DECLARE outpt VARCHAR2 1000 flow rI VARCHA
  • Oracle 中的 Json_object 返回 ORA-00907: 缺少右括号

    我正在尝试将 Oracle 表数据转换为 JSON 文件 我有三个数据库 下面的代码在一个数据库中以 JSON 文件形式提供输出 但其他两个数据库抛出ORA 00907 missing right parenthesis error 从语法
  • 存储过程错误 PLS-00201:必须声明标识符“UTL_HTTP”

    我正在尝试创建一个从服务请求一些 XML 数据的存储过程 我在网上找到了几个示例 它们都指向使用这个 UTL HTTP 包 但是 每次我尝试用它来编译我的存储过程时 我都会收到错误 PLS 00201 identifier UTL HTTP
  • 向带有检查约束 SQL 的表添加列

    我想向表中添加一列 然后添加一个检查约束以确保其大于 0 我似乎无法让它在 oracle sl Developer 中运行 Alter TABLE store101 add column Base salary Number 7 2 con

随机推荐

  • 判断单链表中是否存在回环

    判断单链表是否存在回环原理很简单 xff0c 即假设有两个指针p1 xff0c p2 在每次循环的时候 xff0c p1先走一步 xff0c p2走两步 xff0c 直到p2碰到空指针或两者相等时循环结束 xff0c 如果两个指针相等则说明
  • linux yum安装卸载jdk8

    1 gt 安装 1 yum y list java 列出jdk列表 2 yum install y java 1 8 0 openjdk demo x86 64 xff08 安装这个java version 正常显示 xff0c 但是jav
  • 使用Document解析xml

    1 引入maven jar包 lt dependency gt lt groupId gt dom4j lt groupId gt lt artifactId gt dom4j lt artifactId gt lt version gt
  • 【math】 向量运算:叉乘

    文章目录 1 定义2 几何意义3 拓展应用 1 定义 c 61 a b 向量的叉乘 xff0c 即求同时垂直两个向量的向量 xff0c 即c垂直于a xff0c 且c垂直于b 假设向量a 61 a x a y a z b 61 b x b
  • 基于Mahout的电影推荐网站的设计与实现(JAVA语言实现)

    1 概要 本系统是一个以Mysql为数据库 xff0c 利用Java servlet开发的基于B S结构的电影推荐网站 服务器是Apache Tomcat xff0c 推荐库是Apache Mahout xff0c 在Eclipse环境下进
  • Java与设备(PLC)通信

    通信名词 上位机 指可以直接发出操控命令的计算机 xff0c 一般是PC host computer master computer upper computer 控制者和提供服务者是上位机 xff1b 工控机 工作站 触摸屏可作为上位机
  • DAMA学习笔记

    第1章 数据管理 1 1 引言 1 数据管理 xff1a 为了实现数据价值 xff0c 制定计划 制度并执行 监督 2 数据管理专业人员 xff1a 技术人员 xff08 数据库管理员 网络管理员 程序员 xff09 和业务人员 xff08
  • 2023 学习日志

    2023 01 03 mybatis源码学习 学习视频 xff1a https www bilibili com video BV1Tp4y1X7FM p 61 1 amp vd source 61 cc82a52a9b9b8b31eca3
  • oracle create view语法

    视图实际上是一个或多个表上的预定义查询 xff0c 这些表称为基表 视图并不存储数据 xff0c 只是在查询视图时才访问基表 视图的优点 xff1a 限制用户只能通过视图检索数据 xff0c 对用户屏蔽基表 可以将复杂的查询编写为视图 xf
  • EL表达式两个foreach嵌套循环

    集合List中加List泛型的泛型 List lt RiskEvaSuitQuestion gt riskEvaSuitQuestionList 61 riskEvaSuitQuestionService getQueList 100003
  • JQuery通过radio,select改变隐藏显示div

    1 xff09 select下拉框控制div的隐藏与显示 lt script gt function checkYear var selectValue 61 34 select name 61 39 periodType 39 34 va
  • 开科唯识笔试

    对于这次的笔试 xff0c 我只想说BiShi 几道编程题加一道SQL题 1 找出所有三位数中的水仙花数 public void getNarcissusNums int g 61 0 s 61 0 b 61 0 sum 61 0 for
  • JDBC批量插入

    最近项目中有用到JDBC技术 xff0c 存在大量数据要进行插入 xff0c 通过研究采用批量插入速度快的不是一点点 下面简单比较了一下普通插入与批量插入5W条数据的时间效率 常规插入 xff1a 耗时12952ms public stat
  • exe应用程序无法启动,因为应用程序的并行配置不正确

    问题 xff1a exe应用程序无法启动 xff0c 因为应用程序的并行配置不正确 有关详细信息 xff0c 请参阅应用程序事件日志 xff0c 或使用命令行 sxstrace exe 工具 原因查找 xff1a 1 xff09 开始 所有
  • TortoiseSVN is locked in another working copy

    TortoiseSVN提交报错 TortoiseSVN is locked in another working copy 原因 xff1a 可能是因为打开了多个commit会话 xff0c 然后又去修改了提交文件的内容 xff0c 导致文
  • Java对接企业微信

    最近需要对接企业微信 xff0c 例如将风险测评结果推送给企业微信中对应的用户 xff0c 然后用户对结果进行查看与确认操作 xff0c 所以这里就涉及到两方面 xff1a 1 xff09 将外部系统内容推送到企业微信 xff1b 2 xf
  • 微众银行面试

    机缘巧合 xff0c 其实并没有换工作的想法 xff0c 却收到了微众的面试邀请 xff0c 就想着去看看当是增长见识吧 xff0c 因为已经好久没准备面试的事情了 xff0c 而且微众毕竟作为腾讯系的看起来好像也不错 说实话那边离地铁站是
  • sequelize的where条件接受动态参数传入

    用法1 问题场景 传入参数 xff1a 数组array 数组元素不定 目标 要实现逻辑 xff1a 遍历数组 xff0c 根据inverted的值对同一个表字段增加一个like查询 要生成的sql语句 xff08 where条件部分 xff
  • 针对github中raw.githubusercontent.com无法加载数据的解决办法

    针对github中raw githubusercontent com无法加载数据的解决办法 1 复制域名raw githubsercontent com到ip138 xff08 https site ip138 com xff09 查询域名
  • oracle alter table详解

    建测试表 create table dept deptno number 3 primary key dname varchar2 10 loc varchar2 13 create table employee info empno nu