SQLite でデータ抽出

SQLite でデータ抽出
#10 データを抽出してみよう
http://dotinstall.com/lessons/basic_sqlite/6410
を参考に、データの抽出
select 見たいカラム名 from テーブル名
でみることができる
見たいカラム名には * とすると
指定したテーブルの中のカラム全部が対象になる
mysql とかでもよくみかける構文はこの意味
動画を参考にやろうとしても
データがないので、まずは必要なテーブルとかを作成
動画の .schema を元に作成してデータ挿入しておく
create table user(name,score);
insert into user(name,score) values(‘taguchi’,200);
insert into user(name,score) values(‘sasaki’,100);
insert into user(name,score) values(‘hiroshi’,400);
insert into user(name,score) values(‘hiyano’,500);
すでに users というテーブルは使っているので
user というテーブルを作成
select score from user;
で同じ結果をみることができる
構文は
select カラム名 from テーブル名;
ただ引き出すだけだと意味があまりないので
並び替えと合わせて使うことで効率的にデータ管理参照ができる
select * from user order by score;
このように
order by をつけることで
score の小さい順に並び替えが可能
select * from user order by score desc;
というように、 選択したカラム名の後に
desc
をつけると、今度は大きい順にならべることができる
今回なら
score の大きい順に並び替えで表示している
また、検索結果の表示を絞り込むことも可能
select * from user order by score desc limit 3;
とすれば
score の値の大きい順上位3つからの表示となる
ちょっと長い構文なので
メモ
order by score desc
でsocre の中から大きい順に表示
desc をつけると大きい順になる
limit 3
で3つ表示
となっている
select * from user order by score limit 3;
とすれば、score の小さい順に表示になる
よく使うものとして
条件を指定するため where を使うやりかた
select * from user where score >= 200;
とすることで、
score >= 200 の条件に該当するものだけ
表示するようになる
構文は
select カラム名 from テーブル名 where 条件
あと、条件を指定するときに
java script とか PHP などでは
if のところの条件で
~でないという意味で
!=
を使ったけど
SQLite の場合には
<>
と書く
select * from user where name <> ‘taguchi’;
とすれば、名前が taguchi 以外の人の名前が
表示される
あと、name が taguchi のみ表示とするなら
select * from user where name = ‘taguchi’;
となる
java script や PHP の場合
name == ‘taguchi’
と条件式に書くけど、SQLite の場合は
name = ‘taguch’
となるので注意
ちなみに、文字列の場合は = の代わりに like でもOK
select * from user where name = ‘taguchi’;

select * from user where name like ‘taguchi’;
は同じ結果になる
あと、SQLite では、ワイルドカードが使えるけど
通常、 Linux コマンドとかで
ワイルドカードを示すのは * だけど
SQLite では % になる
select * from user where name like ‘tag%’;

name の中で
tag を含む、すべての名前ということになります

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です