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ı.