CREATE TABLE語(yǔ)句用于在Impala中的所需數(shù)據(jù)庫(kù)中創(chuàng)建新表。 創(chuàng)建基本表涉及命名表并定義其列和每列的數(shù)據(jù)類(lèi)型。
以下是CREATE TABLE語(yǔ)句的語(yǔ)法。 這里,IF NOT EXISTS是一個(gè)可選的子句。 如果使用此子句,則只有在指定數(shù)據(jù)庫(kù)中沒(méi)有具有相同名稱(chēng)的現(xiàn)有表時(shí),才會(huì)創(chuàng)建具有給定名稱(chēng)的表。
create table IF NOT EXISTS database_name.table_name ( column1 data_type, column2 data_type, column3 data_type, ……… columnN data_type );
CREATE TABLE是指示數(shù)據(jù)庫(kù)系統(tǒng)創(chuàng)建新表的關(guān)鍵字。 表的唯一名稱(chēng)或標(biāo)識(shí)符位于CREATE TABLE語(yǔ)句之后。 (可選)您可以指定database_name和table_name。
以下是create table語(yǔ)句的示例。 在這個(gè)例子中,我們?cè)跀?shù)據(jù)庫(kù)my_db中創(chuàng)建了一個(gè)名為student的表。
[quickstart.cloudera:21000] > CREATE TABLE IF NOT EXISTS my_db.student (name STRING, age INT, contact INT );
執(zhí)行上述語(yǔ)句時(shí),將創(chuàng)建具有指定名稱(chēng)的表,并顯示以下輸出。
Query: create table student (name STRING, age INT, phone INT) Fetched 0 row(s) in 0.48s
[quickstart.cloudera:21000] > use my_db; Query: use my_db
然后,如果您使用show tables查詢獲取表的列表,則可以在其中觀察名為student的表,如下所示。
[quickstart.cloudera:21000] > show tables; Query: show tables +-----------+ | name | +-----------+ | student | +-----------+ Fetched 1 row(s) in 0.10s
為了在HDFS文件系統(tǒng)中創(chuàng)建數(shù)據(jù)庫(kù),需要指定要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)的位置,如下所示。
CREATE DATABASE IF NOT EXISTS database_name LOCATION hdfs_path;
打開(kāi)impala查詢編輯器,并在其中鍵入CREATE Table Statement。 然后單擊執(zhí)行按鈕,如下面的屏幕截圖所示。
執(zhí)行查詢后,輕輕將光標(biāo)移動(dòng)到下拉菜單的頂部,您會(huì)發(fā)現(xiàn)一個(gè)刷新符號(hào)。 如果單擊刷新符號(hào),將刷新數(shù)據(jù)庫(kù)列表,并對(duì)其應(yīng)用最近所做的更改。
單擊編輯器左側(cè)標(biāo)題DATABASE下的下拉菜單。 在那里你可以看到一個(gè)數(shù)據(jù)庫(kù)列表。 選擇數(shù)據(jù)庫(kù)my_db,如下所示。
在選擇數(shù)據(jù)庫(kù)my_db時(shí),您可以看到其中的表列表,如下所示。 在這里你可以找到新創(chuàng)建的表學(xué)生,如下所示。
更多建議: