基本SQL文

実際にサンプルを用いてSQLを説明していきましょう。
ここでは、すでにデータベースは作ってあると想定して始めます。

まずはテーブルを作りましょう。
下の図のテーブルを作成することにします。



上記のテーブルを作るSQLは

create table User(ID int, PASS varchar(8), NAME varcher(10))

となります。
varcher(8) というのは8バイトの文字列可変長型ってことです。

テーブルを作る場合のSQLは


create table テーブル名(項目名(フィールド名) データ型 , ・・・・・)
 

です。
それと、SQL文では

大文字小文字区別しない

って事です。
大文字で書いても、小文字で書いても、一緒です。

これで実際にテーブルは作られました。しかし、作っただけではテーブルの中身は空です。
今はこんな状態です



なので、データを入れましょう。
一番上の図みたく、IDは1 PASSはxxxxxx NAMEはkazan と入れてみます。

insert into User(ID,PASS,NAME) values(1,'xxxxxx','kazan')

これで、



こうなったと思います。
テーブルに登録する場合のSQLは


insert into テーブル名(項目名,・・・) values(,・・・)
 

項目名と、値は順番と数が対応していなければいけません。
値は、文字列の場合、シングルクォーテーション「'」で囲みます。数字の場合は付けません。
 
 
それでは登録したデータを、更新してみます。

IDは2 PASSはxxxxxxx NAMEは順ちゃん★
にしてみたいと思います。

update User set ID=2, PASS='xxxxxxx',NAME='順ちゃん★'

このようになります


更新するときのSQLは


update テーブル名 set 項目名=値, 項目名=値, ・・・・
 

アップデート文はインサート文に比べて、項目と値がセットになっているので、わかりやすいと思います。
 
 
では、今作ったデータを削除します。Userテーブルの中身を空にしましょう。

delete from User

これで、Userテーブルの中身が空になりました。
削除のSQLは


delete from テーブル名
 

です。
 
 
最後にSQL文の中では一番使うであろう、検索文(データを取得する文)を紹介します。
ではUserテーブルが以下と仮定して、



ここから全てのデータを取りたいと思います。

select * from User

です。「*」というのは全ての項目をとってくると言う意味です。

select ID from User

と書けば、全てのID項目のデータをとってくると言う意味になります。
というわけで、検索文SQLは


select 項目名 , 項目名 , ・・・(又は*) from テーブル名
 

複数の項目を取ってきたい場合は

select ID,PASS,NAME from User

みたくなります。
 
 
以上のSQL文を知っていれば、大体OKでしょう。
ただ、もう1つだけ知っときたいのが、条件を絞るためのSQL文です。

例えば、



で、IDが1の人のデータが欲しいってなったときに、上記の検索SQLだと、全てをとってきてしまいます。
そこで、条件を絞り込む時のSQL文が

「Where」

です。
実際に、上のUserテーブルからIDが1の人のデータをとります。

select * from User where id=1

これで、IDが1の全ての項目をとってきます.
この「where」ですが、検索だけではなく、更新、削除のSQL文にも使います。


select 項目名 , 項目名 , ・・・(又は*) from テーブル名 where 項目名=

update テーブル名 set 項目名=値, 項目名=値, ・・・・ where 項目名=

delete from テーブル名 where 項目名=
 

となります。
上の文だと1つしか条件が絞れませんが、複数条件を用いるときは「and」を用います。

UserテーブルからIDが10以下の人で、NAMEがkazanのデータをとる。

select * from User where id <= 10 and name = 'kazan'


select 項目名 , 項目名 , ・・・(又は*) from テーブル名 where 項目名= and 項目名= and 項目名= ・・・・・
 

そして、もうひとつ、データを並び替えるSQL文です。

UserテーブルのIDを昇順にして、全てのデータを取る、というような命令だと、

select * from User order by id asc

最後の「asc」はあってもなくても構いません。
逆に降順だと、

select * from User order by id desc


この場合「desc」は省略できません
続いて、

UserテーブルのIDを降順にして、IDが10以下のデータを表示

select * from User where id <= 10 order by id desc



select * from テーブル名 order by 項目名 asc(又はdesc)
 

以上のSQLを知っておけば、とりあえずは大丈夫でしょう。
これも全て覚える必要がなく、こういうのがあるくらいに思っておけばいいです。使うときにまた読み返せばいいのです。