Impala - Tabloyu Değiştir

Impala'daki Alter table deyimi, belirli bir tabloda değişiklik yapmak için kullanılır. Bu ifadeyi kullanarak mevcut bir tablodaki sütunları ekleyebilir, silebilir veya değiştirebiliriz ve ayrıca yeniden adlandırabiliriz.

Bu Bölüm, söz dizimi ve örneklerle çeşitli alter deyimlerini açıklamaktadır. Öncelikle, adında bir tablomuz olduğunu varsayalım.customers içinde my_db Aşağıdaki verilerle Impala'daki veritabanı

ID   NAME     AGE   ADDRESS    SALARY
--- --------- ----- ----------- --------
1   Ramesh    32    Ahmedabad   20000
2   Khilan    25    Delhi       15000
3   Hardik    27    Bhopal      40000
4   Chaitali  25    Mumbai      35000
5   kaushik   23    Kota        30000
6   Komal     22    Mp          32000

Ve veritabanındaki tabloların listesini alırsanız my_dbbulabilirsin customers Tabloya aşağıda gösterildiği gibi.

[quickstart.cloudera:21000] > show tables;

Query: show tables 
+-----------+ 
| name      | 
+-----------+ 
| customers | 
| employee  | 
| student   | 
| student1  | 
+-----------+

Bir tablonun adını değiştirmek

Sözdizimi

Temel sözdizimi ALTER TABLE mevcut bir tabloyu yeniden adlandırmak aşağıdaki gibidir -

ALTER TABLE [old_db_name.]old_table_name RENAME TO [new_db_name.]new_table_name

Misal

Aşağıda, tablonun adını kullanarak değiştirmeye bir örnek verilmiştir. alterBeyan. Burada tablonun adını değiştiriyoruzcustomers kullanıcılara.

[quickstart.cloudera:21000] > ALTER TABLE my_db.customers RENAME TO my_db.users;

Yukarıdaki sorguyu yürüttükten sonra, Impala tablonun adını gerektiği gibi değiştirerek aşağıdaki mesajı görüntüler.

Query: alter TABLE my_db.customers RENAME TO my_db.users

Geçerli veritabanındaki tabloların listesini, show tablesBeyan. Adlı tabloyu bulabilirsinizusers onun yerine customers.

Query: show tables 
+----------+ 
| name     | 
+----------+ 
| employee | 
| student  | 
| student1 | 
| users    | 
+----------+ 
Fetched 4 row(s) in 0.10s

Tabloya sütun ekleme

Sözdizimi

Temel sözdizimi ALTER TABLE mevcut bir tabloya sütun eklemek aşağıdaki gibidir -

ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])

Misal

Aşağıdaki sorgu, mevcut bir tabloya nasıl sütun ekleneceğini gösteren bir örnektir. Burada account_no ve phone_number olmak üzere iki sütun ekliyoruz (her ikisi de bigint veri türündedir)users tablo.

[quickstart.cloudera:21000] > ALTER TABLE users ADD COLUMNS (account_no BIGINT, 
phone_no BIGINT);

Yukarıdaki sorguyu yürütürken, belirtilen sütunları adlı tabloya ekleyecektir. student, aşağıdaki mesajı görüntüler.

Query: alter TABLE users ADD COLUMNS (account_no BIGINT, phone_no BIGINT)

Tablonun şemasını doğrularsanız usersYeni eklenen sütunları aşağıda gösterildiği gibi bulabilirsiniz.

quickstart.cloudera:21000] > describe users;
 
Query: describe users 
+------------+--------+---------+ 
| name       | type   | comment | 
+------------+--------+---------+ 
| id         | int    |         | 
| name       | string |         | 
| age        | int    |         |
| address    | string |         | 
| salary     | bigint |         | 
| account_no | bigint |         | 
| phone_no   | bigint |         | 
+------------+--------+---------+ 
Fetched 7 row(s) in 0.20s

Bir tablodan sütun bırakma

Sözdizimi

ALTER TABLE'ın temel sözdizimi DROP COLUMN mevcut bir tabloda aşağıdaki gibidir -

ALTER TABLE name DROP [COLUMN] column_name

Misal

Aşağıdaki sorgu, mevcut bir tablodan sütun silme örneğidir. Burada adlı sütunu siliyoruzaccount_no.

[quickstart.cloudera:21000] > ALTER TABLE users DROP account_no;

Yukarıdaki sorguyu yürütürken, Impala aşağıdaki mesajı görüntüleyen account_no adlı sütunu siler.

Query: alter TABLE users DROP account_no

Tablonun şemasını doğrularsanız users, adlı sütunu bulamıyorsunuz account_no silindiğinden beri.

[quickstart.cloudera:21000] > describe users; 

Query: describe users 
+----------+--------+---------+ 
| name     | type   | comment | 
+----------+--------+---------+ 
| id       | int    |         | 
| name     | string |         | 
| age      | int    |         | 
| address  | string |         | 
| salary   | bigint |         | 
| phone_no | bigint |         |
+----------+--------+---------+ 
Fetched 6 row(s) in 0.11s

Bir sütunun adını ve türünü değiştirme

Sözdizimi

ALTER TABLE'ın temel sözdizimi change the name and datatype Mevcut bir tablodaki bir sütunun oranı aşağıdaki gibidir -

ALTER TABLE name CHANGE column_name new_name new_type

Misal

Aşağıda, alter ifadesini kullanarak bir sütunun adını ve veri türünü değiştirmeye bir örnek verilmiştir. Burada sütunun adını değiştiriyoruzphone_no to email ve veri türü string.

[quickstart.cloudera:21000] > ALTER TABLE users CHANGE phone_no e_mail string;

Yukarıdaki sorguyu yürütürken, Impala aşağıdaki mesajı görüntüleyerek belirtilen değişiklikleri yapar.

Query: alter TABLE users CHANGE phone_no e_mail string

Tablo kullanıcılarının meta verilerini şu şekilde doğrulayabilirsiniz: describeBeyan. Impala'nın belirtilen sütunda gerekli değişiklikleri yaptığını görebilirsiniz.

[quickstart.cloudera:21000] > describe users; 
Query: describe users 
+----------+--------+---------+ 
| name     | type   | comment | 
+----------+--------+---------+ 
| id       | int    |         | 
| name     | string |         | 
| age      | int    |         | 
| address  | string |         | 
| salary   | bigint |         | 
| phone_no | bigint |         |
+----------+--------+---------+ 
Fetched 6 row(s) in 0.11s

Ton kullanarak bir Tabloyu Değiştirme

Impala Sorgu düzenleyicisini açın ve alter içindeki ifadeyi ve aşağıdaki ekran görüntüsünde gösterildiği gibi yürüt düğmesini tıklayın.

Yukarıdaki sorguyu yürütürken tablonun adını değiştirecek customers -e users. Aynı şekilde, tümalter sorguları.