サポートタイムズ

サポートタイムズはカスタマーサポートの“今”を届けるメディアです。(Powered by CallConnect)

Twitter Facebook

サポートが最初に知るべきプログラミング言語 SQL とは

f:id:sennba3:20160622114654g:plain

カスタマーサポートでもプログラミングができればいいに越したことはありません。サポートにおいて特に重要なプログラミング言語となるであろう SQL について簡単にご紹介します。

SQL とは

SQL とは、データベースに保存された情報を取得、更新、削除ができる命令文のことです。例えば、自社のサービスのユーザー情報を知りたい時に通常のカスタマーサポートであれば何かしらの管理ツールがあり、それを参照して情報を得ていることかと思います。その情報を取得するために裏で実行されているものが SQL であり、SQL が書けるようになれば管理ツールでは取得しきれないより細かな条件で情報を取得できるようになります。

例えば以下のような文が SQL です。

SELECT * FROM Users WHERE user_id=1;

上記の場合、"ユーザーIDが1であるユーザー情報を取得せよ"という命令になります。もし見つかれば対象ユーザーの情報を返し、見つからなければ0件の結果を返します。この where はあらゆる条件を指定することができます。例えば「会員登録日が昨日以降の全ユーザーを取得」や「ステータスが1のユーザーのみを取得」といった具合です。すでにサポートをしているということは、何かしらデータを持っていることでしょう。データベースにはユーザー情報以外にシステムのあらゆる情報が保存されているため、そのデータ構造は自社のエンジニアしか知ることができません。

エンジニアに教えてもらいながらぜひ SQL の使い方を身につけてみてください。これで日頃エンジニアに聞かなければならないことの大半は解決できるのではないでしょうか。

SQL の脅威

SQL を使えば、あらゆるデータを操作することができます。それは裏を返すと危険な命令まで出すことのできるということになります。例えば 「1000万件あるようなデータをすべて取得せよ」という命令を出してしまったら、データベースの負荷は一気に上がります。また、データベースはデータ取得の他にデータの更新・削除も当然できます。間違って以下のコマンドを叩いてしまったら、身の毛もよだつことが起きます。

DELETE FROM Users;

これは全ユーザーデータを消去するコマンドです。このように自由には責任がつくものなのです。

ところで、本当にこのコマンドを実行してしまったら、すべてが終わりなのでしょうか。そんなことはありません。最近ではほぼすべてのデータベースで自動バックアップ機能が備わっており、すぐに気づけば元に戻すことができます。ただし、そのバックアップ以降に保存されたデータは消えてしまいます。やらないほうがいいに越したことはありません。

怖がらせてしまったかもしれませんが、そもそもそんなコマンドを叩かなければいいだけです。 SELECT 文と WHERE による絞り込みだけをやるようにすればこのような間違いを犯すことはないでしょう。

SQL を知ることはサービスを知ること

SQL を知っているエンジニアでも、それぞれのサービスのデータ構造によって叩くコマンドは変わってきます。つまり、SQLを発行できる人は、そのサービスのデータ構造を知っている人だけなのです。それは従来ですとサービスに携わるエンジニアだけになります。サポートがSQLを叩けるようになる魅力はここにあります。サービスも知っているし、ユーザーの問題も知っている。さらに中のデータ構造も知っていれば、あらゆる部署から感謝れる"サポートエンジニア"になることができるでしょう。

エンジニアは基本的に教えるのが好きですので、気が向いたときに「SQLを教えてください!」と言ってみてはいかがでしょうか。

そんなサポート担当者とエンジニアの素敵な関係を持ったサービスが増えるといいですね。

最後に、SQLを学ぶにはドリル形式が良いと思います。以下のような書籍です。

スッキリわかる SQL 入門 ドリル215問付き! (スッキリシリーズ)

スッキリわかる SQL 入門 ドリル215問付き! (スッキリシリーズ)