Capture The Frog

かえるぴょこぴょこw

MENU

軽くSQL

SQLとは

SQLとはStructured Query Languageの略で、データベースとやりとりする言語です。

SQLには、データベースや表などを定義する「データ定義言語」と「データ操作言語」

の2つにわかれます。

 

表の作成

表を定義するには「CREATE TABLE」を使います。

代表的なカラムのタイプとしては、

・INTEGER

負の値も含んだ整数値を格納する。

・CHAR

最大バイト数を指定して文字列を格納する。

格納するデータが指定したものよりも少ない時は、空白で埋められる。

・VARCHAR

最大バイト数を指定して文字列を格納する点は、CHARと一緒だが、

格納するデータが指定したものよりも小さい場合は、その長さに合わせたデータ領域で格納されるという違いがある。

・TEXT

長文の保存に使用する。

しかし、CHAR・VARCHARに比べて検索スピードは遅くなる。

 

具体的な例:Citysという表を作る。項目は、Number・Region・Cityの3つ。


CREATE TABLE Citys(
   Number INTEGER,
    Region  VARCHAR(225),
    City   VARCHAR(225)
);

 実行したらこのようになってるはず

 Number Region City

表に書き込む

表に書き込むには、「INSERT INTO」を使います。

値を作った表の項目の順番で入れていく方法と、項目を指定して値を入れる2通りがあります。

 

具体的な例:上で作ったCitysに値を作った項目の順番で入れていく


INSERT INTO Citys VALUES(
1,'kanntou','Yokohama'
);

具体的な例:Citysに項目を指定して値を入れる


INSERT INTO Citys(Number,City)
VALUES(2,'Oosaka');

この場合は、2行目のRegionのところには既定値(ここではNULL)が入る。

実行したら、このようになってるはず

Number Region City
1 kanntou Yokohama
2 NULL Oosaka

表の表示

表を表示するには、「SELECT」を使います。

「SELECT * FROM 表の名前」で、表の中身を一覧表示する。

*のところに、列の項目の名前(ここでは、Number,Region,City)を入れると

その項目だけが表示されます。このように、表から特定の列を取り出すことを

「射影」といいます。

↓表の一覧表示

SELECT * FROM Citys

 

射影

SELECT City FROM Citys

 表に登録されているCityの列だけ表示される。

 

射影は列の取り出しでしたが、行の取り出しは「選択」といいます。

「選択」をするには、「WHERE」を使う必要があります。

表の一覧表示の後ろにWHERE 取り出したい列の中の要素をいれれば、選択を行うことができます。

具体的な例:Citysからkanntouの行だけ取り出す


SELECT * FROM Citys WHERE Region='kanntou';

 実行結果

 1 kanntou Yokohama

 上のように文字列を指定する場合には、''(シングルクォーテーション)で囲む必要があるので、そこだけ注意!

ちなみにWHEREの後には比較演算子・論理式も使えます。INTEGERのときだけに限りますが。

WHERE Number < 4とか。等しくないときは、<>を使います。

あとは、C言語の比較演算子と同じです。

他のもWHEREの後に続くのは色々あるのですが、今度気が向いたらそれについても記事として書いていきます。

 

表のアップデート

表のアップデートには、「UPDATE」を使います。

具体的な例:Citysの3行目のNULLをkinnkiにアップデートします。


UPDATE Citys
SET Region='kinnki'
WHERE Number=2;

少しわかりにくいかもしれませんが、SETのところで列を決めてkinnkiと書き換えています。そして、WHEREで書き換える行を指定しています。

UFOキャッチャーみたいな感じですね。

表の削除

 表の削除には、「DELETE」を使います。

DELETE FROM CitysでCitysは削除されます。

 

今回は、軽くSQLについてやってきましたが、本当に軽くこの記事には収まりきらないほどにSQLはもっと奥深いです。

時間がないのでこんな浅い感じになってしまって申し訳ないです。

でも、これだけ覚えてればデータベースを少しは触れると思います。

ここまで、付き合っていただきありがとうございました。

おつかれさまです。

では、また。