数据库表结构相关修改

简介: 数据库表结构相关修改
该文章主要内容为表结构的变化,包括表名修改、字段的新增、删除和修改,下面为具体内容:

一、新建表

1,Oracle

create table oracle_test(
name       varchar(20)       comment '姓名' 
,age       decimal(3)        comment '年龄' 
,sex       varchar(10)       comment '性别' 
,school    varchar(40)       comment '学校' 
)
;

2,hive

create table hive_test(
name       string       comment '姓名' 
,age       decimal(3)   comment '年龄' 
,sex       string       comment '性别' 
,school    string       comment '学校' 
)
row format delimited
fields teminated by '\t'
;

二、修改表名

1,Oracle

格式:rename 当前表名 to 新表名;
示例:rename oracle_test to oracle_test2;
释义:修改表oracle_test的表名为oracle_test2

2,hive

格式:alter table 表原来的名字 rename to 表新的名字
示例:alter table hive_test rename to students;
释义:将表名由 hive_test 修改为 students 。

三、修改列名

1,Oracle

格式:alter table 表名 rename column 当前列名 to 新列名;
示例:alter table oracle_test rename column age to birthday;
释义:修改表oracle_test的age字段名称为birthday

2,hive

格式:alter table 表名字 change column 列原来的名字 列的新名字 列的新字段类型
示例:alter table hive_test change column school class string;
释义:将表 hive_test 的字段 school 修改为 class,并且字段类型为 string;

四、新增字段

1,Oracle

格式:alter table 表名 add (新字段 字段类型(字段长度) );
示例:alter table oracle_test add (class varchar(20) );
释义:表oracle_test新增字段class,数据类型为varchar,字段长度为20

2,hive

格式:alter table 表名 add columns (新字段 字段类型 comment '字段注释');
示例:alter table hive_test add columns (c_time string comment '当前时间'); 
释义:表hive_test新增字段c_time,字段类型为string,注释为当前时间
注意:新增的字段会放在该表的最后一个字段位置

五、在指定位置新增字段

1,Oracle

Oracle只可以在表的最前面或者最后面新增字段,不可以指定字段的位置
(1)如果表很大需要采用视图的方式
(2)如果数据量不是很大,可以通过字段转移的方式,但是不推荐这种方式
(3)如果数据量很小,那就可以先删除,再新建表,但是再删除表之前,一定要做好数据的备份

2,hive

格式:alter table 表名 change 需要指定位置的字段 需要指定位置的字段 字段类型 after 指定的字段位置 ;
示例:alter table hive_test change c_time c_time string after sex ;  
释义:将表hive_test的c_time字段指定到sex字段之后
注意:这里需要两步,先新增字段在表的最后,然后在指定字段的位置

六、删除表字段

1,Oracle

格式:alter table 表名 drop column 字段名;
示例:alter table oracle_test drop column sex;
释义:删除表oracle_test的sex字段

2,hive

hive中不支持alter table table_name drop columns这种语法,支持replace
可以采用:
-- 新建表,如果表存在,则直接进行删除字段的操作
create table hive_test2 (
col1 string,
col2 string);

--删除column_2
alter table hive_test2 replace columns(
col1 string);    --col2 不写,即删除col2,保留col1

七、修改表的字段类型

1,Oracle

格式:alter table 表名 modify (字段名 字段类型 默认值 是否为空);//默认值和是否为空可以不写
示例:alter table oracle_test modify(age varchar(10));
释义:修改表oracle_test的age字段为varchar类型,字段长度为10

2,hive

格式:alter table 表名  change column 原字段名称  现字段名称  数据类型;
示例:alter table hive_test  change column age  age  string;
释义:修改表hive_test的age字段的数据类型为string

我是晓之以理的喵,欢迎大家多多交流~~

相关文章
|
5月前
|
存储 数据库
工作流Flowable 数据库表结构说明、Flowable 数据字典说明
工作流Flowable 数据库表结构说明、Flowable 数据字典说明
286 0
|
5月前
|
存储 关系型数据库 数据库
什么是数据库表结构
什么是数据库表结构
|
11月前
|
NoSQL 前端开发 Java
基于springboot的学生成绩在线管理系统(部署文档+数据库表结构文档)。Javaee项目,springboot项目.
基于springboot的学生成绩在线管理系统(部署文档+数据库表结构文档)。Javaee项目,springboot项目.
|
11月前
|
NoSQL Java 关系型数据库
基于SSM的图书管理系统(部署文档+数据库表结构文档)。Javaee项目。
基于SSM的图书管理系统(部署文档+数据库表结构文档)。Javaee项目。
|
5月前
|
存储 关系型数据库 MySQL
MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)
MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)
219 0
|
3月前
|
存储 SQL 数据库
如何避免数据库表结构冗余?
【7月更文挑战第28天】如何避免数据库表结构冗余?
36 5
|
5月前
|
自然语言处理 关系型数据库 数据库
|
3月前
|
Web App开发 缓存 数据管理
数据管理DMS使用问题之执行SHOW CREATE TABLE命令查看表结构时,数据库管理员和普通授权账号看到的为什么不一样
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
3月前
|
SQL Java 持续交付
实时计算 Flink版产品使用问题之源数据库一直在新增表或修改表结构,需要进行相应的修改和重启,该如何简化
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
SQL 关系型数据库 MySQL
mysqldiff - Golang 针对 MySQL 数据库表结构的差异 SQL 工具
Golang 针对 MySQL 数据库表结构的差异 SQL 工具。https://github.com/camry/mysqldiff
87 7
下一篇
无影云桌面