前回の記事SQLiteでデータを入れて取り出してみるで、TABLEを作成した。
今回は、TABLEの中で、sql構文で部分的なデータを取得する。
まずは、名前だけを取得したい時は、
sqlite> SELECT name FROM users;
ryoko
kuma
usa
paopom
dorachan
名前と苗字の両方を取得したい時は、nameとfnameの間に','を入れる。
sqlite> SELECT name, fname FROM users;
ryoko|saito
kuma|kumasann
usa|usakosan
paopom|zousan
dorachan|doradora
ryokoという名前の人のデータを全部取得するときは、取得したいfield=で指定する。
sqlite> SELECT * FROM users WHERE name = 'ryoko';
1|ryoko|saito|f
次に、fnameからsanだけがあるものを取得するときは、%を用いる。
sqlite> SELECT * FROM users WHERE fname LIKE '%san';
3|usa|usakosan|f
4|paopom|zousan|m
これだと、kumasannが取得できない。sanの前後に文字を含むを条件に入れたい時は、%を'san'の前後につける。
sqlite> SELECT * FROM users WHERE fname LIKE '%san%';
2|kuma|kumasann|m
3|usa|usakosan|f
4|paopom|zousan|m
fnameでsanを含みかつ性別がmを取得したい時は、ANDを用いる。
sqlite> SELECT * FROM users WHERE fname LIKE '%san%' AND gender = 'f';
3|usa|usakosan|f
逆に、fnameでsanを含むが、性別がm以外を取得したい時は、!=を用いる。
sqlite> SELECT * FROM users WHERE fname LIKE '%san%' AND gender != 'm';
3|usa|usakosan|f
sanを含まず、性別がm以外を取得したい時は、NOT LIKEを用いる。
sqlite> SELECT * FROM users WHERE fname NOT LIKE '%san%' AND gender != 'm';
1|ryoko|saito|f