美文网首页
数据库DDL操作

数据库DDL操作

作者: 木易楊_a | 来源:发表于2020-08-10 14:48 被阅读0次

库操作

创建库

create databases if not exists 库名;

删除库

drop databases 库名 restrict; restrict 默认关键字(可不写)只能删除空库,里边没有表的;

drop databases if exists 库名

drop databases 库名 cascade; cascade强制删除

查看库的列表信息

show databases;

使用库

use databases;

查看正在使用的库

select  current_databases();

查看库信息

desc databases 库名;

可使用模糊查询 show databases 库名 like 'my%'

修改库

基本不用


表的操作

创建表示例(hive sql)

create [external] table [if not exists] table_name (clo_name type comment "字段描述") comment  '表描述'

[partitioned by (col_name type [comment '描述'])]

[clustered by (col_name,col_name,...)]

[sorted by (col_name [asc|desc],...)into num_buckets buskets]

[row format row_format]

[stored as file_format]

[location hdfs_path]

关键字讲解如下:

1)external 关键字:是否创建外部表,不加时是创建内部表,加上external关键字创建的是外部表

2)partitioned by (col_name type [comment '描述']):指定分区字段 

分区表存的是不同的目录

分区表在添加数据之前先添加分区

alter table table_name add if not exists partition(col_name ='一个分区')

注意:分区字段一定不是建表字段中的字段,是一个全新的字段

3)clustered by (col_name,col_name,...)指定分桶字段clustered by

sorted by (col_name [asc|desc],...)  into num_buckets buskets 指定排序字段

注意:分桶字段一定是建表语句中的某一个字段或多个字段

排序规则指定的是在同一个分桶内的排序规则

into num_buckets buskets;指定分桶个数num_buckets

判断依据:根据建表语句模板字段后边是否跟type类型,因为一个字段在建表语句中不会建两次

4)[row format row_format] 指定分隔符

delimited fields terminated by '' 指定列分隔符

lines terminated by '' 指定行分隔符

5)[stored as file_format] 指定最终表数据的存储格式

textfile 文本格式 默认的格式

rcfile 行列结合的格式

parquet 压缩格式

6)[location hdfs_path] 指定hive 上表的hdfs上的存储路径

不指定的话,存储在配置的路径下      

没指定没配置,默认在  /user /hive /warehouse

复制表,复制表结构不复制数据

 create table t1 like t2;

查看表

show tables;

show tables in 库名;

show tables like 's%';

查看表信息

desc 表名:显示表字段

desc extended 表名:显示表的详细信息(由左至右,连续在一起)

desc formatted 表名:格式化显示表的详细信息(规整的,一行一行的)

删除表

drop table if exists 表名;

清空表

truncate table 表名;清空表中的数据,保留表结构

修改表 alter

修改表名称

alter table 表名 rename to 新表名;

修改表字段信息

    1)添加字段

            alter table 表名 add columns (col_name type,col_name type);

所有新的字段一定要指定类型

    2)修改字段,修改字段类型

            alter table 表名 chage 原始字段 新字段 新字段类型;

注意:在进行修改表字段定义的时候一定注意表字段类型之间的匹配    只能小类型转大类型

            string 类型相当于数值类型属于大类型

            hive1.2.2中没有限制,各种类型之间都可以进行修改

    3)替换列

            alter table table_name replacr columns (in int,name string);由原始表全部字段替换成两个

修改表分区信息

    1)添加分区

        alter table table_name add if not exists partition(city='beijing')

        添加分区的过程中,还可以指定分区的存储路径

        alter table table_name add if not exists partition(city='beijing') location '/user/beijing'

    2)修改分区 修改分区的存储路径

        alter table table_name  set partition(city='shenzhen') location '/user/shenzhen'

    3)删除分区

        alter table table_name drop if exists partition(city='beijing')

查看分区信息,针对分区表

show partitions table_name;

show partitions table_name partiton(city='beijing')

DDL和DML操作如下

https://blog.csdn.net/u010082526/article/details/89087286?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-1-89087286.nonecase

相关文章

  • mysql语句

    DDL:对数据库,表,列进行操作DDL:对数据库,表,列进行操作 关键字:create 创...

  • 01 MySQL基本操作

    一、MySQL数据库基本操作-DDL 1.1 什么是DDL DDL(Data Definition Languag...

  • 2018-08-27数据库、数据库命令

    数据库操作语句梳理 1. DDL****语句 数据库模拟定义语言DDL(Data Definition Langu...

  • mysql基础篇

    MYSQL客户端连接: SQL语法 DDL(Data Definition Language) DDL数据库操作 ...

  • 18Hive中DDL与分区(hive学习1)

    DDL:数据库定义语言DML:数据库操作语言DCL:数据库控制语言Hive的数据类型 Hive完整的DDL建表语法...

  • SQL基础

    SQL基础 DDL 语句 DDL - 数据库定义语言。这些语句对数据库内部对象进行创建、删除、修改等操作。 查看建...

  • Hadoop开发--Hive--DDL

    一、 DDL 操作 启动服务: (一)数据库操作 1. 创建数据库 默认:创建的数据库将放在hdfs:/user/...

  • SQL基础(二)DDL

    DDL 1. 数据库常用操作 *查看所有数据库:SHOW DATABASES * 切换(选择要操作的)数据库:US...

  • SQL之DDL

    DDL是用于操作数据库以及表结构的语句 数据库操作 数据类型 表操作 一.数据库操作 查看所有数据库:SHOW D...

  • 数据库mysql(一)

    数据库学习(mysql) 一.数据库的操作(DDL) 1. create database if not exis...

网友评论

      本文标题:数据库DDL操作

      本文链接:https://www.haomeiwen.com/subject/dbvddktx.html