Bigquery

【サンプルコードあり】SQLでBigqueryのテーブル作成・追記・上書き・削除

のんたん

nontan

京大工学部▶︎京大大学院情報学研究科▶︎日系企業のITエンジニア。研究室ではAI×通信の研究も行いAIにも知見あり。友人とプログラミング初学者向けブログ「はやぶさエンジニア」を運営。近日、Webサービスのリリース予定。26歳大阪在住

GCPの代表的サービスBigqueryでとても便利な使い方を紹介します。

SQLだけでBigquery上のテーブルを作成・追記・上書きまでできてしまうので是非覚えてしまいましょう!!

実はテーブルの削除はできず、指定したテーブル内のデータの削除はできるので合わせて確認していきましょう!!

⬅︎ 【Bigquery初心者におすすめのUdemy講座】
   BigQuery で学ぶ非エンジニアのための
   SQL データ分析入門

テーブルの作成(create)

さっそくですが、テーブルの作成についてみていきましょう。

テーブルの作成では、格納したい変数と変数の型(STRING, INT64, FLOAT, TIMESTAMP,,,)を指定してあげる必要があります。

create table <作成したいテーブル名>
(
変数1 変数1の型, # データの型を指定してあげる
変数2 変数2の型,
変数3 変数3の型
) AS
SELECT
データ 
FROM 
<テーブル名>

具体的な例を見ていきましょう。

フルーツの名前と個数と価格のテーブルがあり、名前と価格だけのテーブルを作成するためには下のSQLのようになります。

/*
データセット名.テーブル名 : food.fruits_table
   fruits  num  price
0  apple    10   100
1  orange   15   300
2  grape    32   860
*/


create table `food.price_table` # ここで作成したいテーブル名を指定してあげる
(
fruits STRING,
price INT64,
) 
AS
SELECT # 必要なデータを取ってくる
fruits,
price 
FROM 
`food.fruits_table`

create tableでテーブル作成を宣言してあげるだけでできてしまいました!!

とても便利な関数なので是非活用してみてください!

SQLの構文がとてもわかりやすくまとめられているUdemy講座があるので受けてみるのもおすすめです!

テーブルへの追記(insert into)

続いては、もう既に存在するテーブルに対してデータを追加したい時に便利な関数です。

insert into <追加先のテーブル名>

select 
データ
from
テーブル名

では、具体例とともにみていきましょう!

フルーツのバナナのデータを追加してみましょう!

/*
データセット名.テーブル名 : food.fruits_table
   fruits  num  price
0  apple    10   100
1  orange   15   300
2  grape    32   860
*/

insert into `food.fruits_table` # 追加先のテーブルを指定 

select # 追加したいデータをSELCT分で取得
banana,
20,
150

テーブルの上書き(update)

もうすでにあるテーブルのデータを書き換えたい!ってときがあります。

例えば、ある変数のステータスが変更になって時です。

では実際にデータの上書き方法をみていきましょう。

注意点としてはwhere分が必須ということです。データを絞った対象に対して置換をしていきます!!

update <テーブル名>
set 変数 = 変更したい値
where 条件を絞る # where分が必須!

ではでは具体例です。

りんごの価格が高騰したので変更してみようと思います。

/*
データセット名.テーブル名 : food.fruits_table
   fruits  num  price
0  apple    10   100
1  orange   15   300
2  grape    32   860
*/

update `food.fruits_table`
set price = 1000 # 変更したい値をかく
where fruits = "apple" # where分が必須!

このように指定してあげたデータに対して上書きをすることができます!!

データの削除(delete)

記事の冒頭でも書いたように、SQLでテーブルの消去はできません。

ですが、テーブル内のデータの消去はできるので合わせて紹介します!!

重複のデータがある場合にとても便利ですよ!!

delete from <テーブル名>
where 消去したいデータが取得できる条件 # where分は絶対に必須です

では具体例でみていきましょう!

フルーツのオレンジが売れてしまったので、データを消去したい場合です。

/*
データセット名.テーブル名 : food.fruits_table
   fruits  num  price
0  apple    10   100
1  orange   15   300
2  grape    32   860
*/

delete from `food.fruits`
where fruits = "orange" # オレンジだけを指定してあげます

データを消去する時は慎重に行いましょう!

データ消去前にSELECT分で消去したいデータを指定できるWHERE分をしっかりと作ることが大切です!!

まとめ

いかがだったでしょうか?

Bigqueryでは、SQLを駆使すると新たにテーブルを作成したり、既存のテーブルに追記、上書きが可能なのでとても便利です。

GUIで行うよりも覚えてしまえば、時間がかからずできてしまうのでぜひ使ってみてくださいね!

  • この記事を書いた人
のんたん

nontan

京大工学部▶︎京大大学院情報学研究科▶︎日系企業のITエンジニア。研究室ではAI×通信の研究も行いAIにも知見あり。友人とプログラミング初学者向けブログ「はやぶさエンジニア」を運営。近日、Webサービスのリリース予定。26歳大阪在住

-Bigquery
-, ,

© 2021 はやぶさエンジニア Powered by AFFINGER5