DDL資料定義

2021-08-13 16:46:51 字數 4504 閱讀 3577

1.3、修改資料庫

1.4、刪除資料庫

二、表2.2、查詢表

2.3、[hive 表結構](

2.4、修改表

2.4.3、刪除表

1)建立乙個資料庫,資料庫在hdfs上的預設儲存路徑是/user/hive/warehouse/*.db。

hive (

default

)> create database hivetest;

2)避免要建立的資料庫已經存在錯誤,增加if not exists判斷。(標準寫法)

hive (

default

)> create database hivetest;

failed: execution error,

return code 1 from org.apache.hadoop.hive.ql.exec.ddltask. database hivetest already exists

hive (

default

)> create database if not exists hivetest;

3 ) 建立乙個資料庫,指定資料庫在hdfs上存放的位置

1.顯示資料庫

hive> show databases;
2.過濾顯示查詢的資料庫

hive> show databases;

okdefault

hivetest

time taken:

0.029 seconds, fetched:

2row

(s)hive>

1.顯示資料庫資訊

hive> desc database db_hive;

okdb_hive hdfs:

//chb1:

9000

/user/hive/warehouse/hivetest.db root user

2.顯示資料庫詳細資訊,extended

hive> desc database extended db_hive;

okdb_hive hdfs:

//chb1:

9000

/user/hive/warehouse/hivetest.db root user

hive (

default

)> use hivetest;

使用者可以使用alter database命令為某個資料庫的dbproperties設定鍵-值對屬性值,來描述這個資料庫的屬性資訊。資料庫的其他元資料資訊都是不可更改的,包括資料庫名和資料庫所在的目錄位置

# 修改 設定dbproperties

hive> alter database hivetest set dbproperties

('createtime'

='20200720');

oktime taken:

0.083 seconds

# 使用desc database extended db_name; 檢視修改資訊

hive> desc database extended hivetest;

okhivetest hdfs:

//chb1:

8020

/user/hive/warehouse/hivetest.db root user

time taken:

4.808 seconds, fetched:

1row

(s)hive>

1.刪除空資料庫

hive>drop database db_hive2;

2.如果刪除的資料庫不存在,最好採用 if exists判斷資料庫是否存在

hive> drop database db_hive;

failed: semanticexception [error 10072

]: database does not exist: db_hive

hive> drop database if exists db_hive2;

3.如果資料庫不為空,可以採用cascade命令,強制刪除

hive> drop database db_hive;

failed: execution error,

return code 1 from org.apache.hadoop.hive.ql.exec.ddltask.

invalidoperationexception

(message:database db_hive is not empty. one or more tables exist.

)hive> drop database db_hive cascade;

create [external] table [if not exists] table_name 

[(col_name data_type [comment col_comment],.

..)]

[comment table_comment]

[partitioned by (col_name data_type [comment col_comment],.

..)]

[clustered by (col_name, col_name,..

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

..)] into num_buckets buckets]

[row format row_format]

[stored as file_format]

[location hdfs_path]

desc formatted table_name

1、語法

alter table table_name rename to new_table_name

2.4.2.1、語法
更新列

alter table table_name change [column] col_old_name col_new_name column_type [comment col_comment]

[first|after column_name]

增加和替換列

alter table table_name add|replace columns (col_name data_type [comment col_comment],...)

注:add是代表新增一欄位,字段位置在所有列後面(partition列前),replace則是表示替換表中所有字段。

2.4.2.2、例項操作

(1)查詢表結構

hive> desc dept_partition;

(2)新增列

hive (

default

)> alter table dept_partition add columns

(deptdesc string)

;(3)查詢表結構

hive> desc dept_partition;

(4)更新列

hive (

default

)> alter table dept_partition change column deptdesc desc int

;(5)查詢表結構

hive> desc dept_partition;

(6)替換列

hive (

default

)> alter table dept_partition replace columns

(deptno string, dname

string, loc string)

;(7)查詢表結構

hive> desc dept_partition;

hive (

default

)> drop table dept_partition;

資料定義語言(DDL)

建立資料庫表 create table uc userid varchar2 53 not null,userloginname varchar2 35 not null,userpassword varchar2 25 not null,userextend varchar2 1000 在orac...

資料定義語言 DDL

1.1資料庫 建立資料庫 mysql 檢視資料庫 show databases 建立資料庫 create database siyn 連線資料庫 mysql use siyn oracle 刪除資料庫 mysql drop database siyn 1.2表 建立表 臨時表,複製表 mysql 檢...

資料定義語言(DDL)

1 資料庫 檢視所有資料庫 show databases 切換資料庫 use 資料庫名 建立資料庫 create database mydb1 刪除資料庫 drop database mydb1 修改資料庫編碼 alter database mydb1 character set utf8 2 資料...