1:パターンマッチングによる絞り込み(like)
例:漢字の中から始まる苗字のユーザー一覧を取得したい!
select * from users where last_name like ‘中%’;
中を含むユーザー一覧がほしい
select * from users where last_name like '%中%'
子で終わる名前のユーザー一覧がほしい
select * from users where first_name like '%子';
子で終わる3文字の名前のユーザー一覧がほしい。
select * from users where first_name like '__子';
※ポイント
like句を使う。構文は
serect 列1,・・・, from テーブル名 where 列名 like ワイルドカード文字;
2:※ワイルドカード文字
ワイルドカード文字で文字列のパターンを指定することができる
1.’%’・・・0文字以上の任意の文字列
2.’_’・・・任意の1文字
3:取得件数を制限する limit句
例題)10個だけ商品を取得したい!
select * from products limit 10;
明示的に最初から10件取得する場合
select * from products limit 0, 10;
類題)11から10個(20まで)取得したい
select * from products limit 10, 10;
実務でデータベースからデータを本番のデータベースを直接操作する場合は 負荷のかかるクエリ送るとデータベースが 止まってしまいサービスが停止して 事故になることがあるらしいので注意!
理想は本番のデータベースに直接アクセスするのではなく データ解析専用の データベースを用意して、負荷が低い夜間に1日1回本番環境と同期をかけたりする。
MySQLWorkbenchでは最初からデータ取得制限が1000となっている。通常の業務でも制限は1000ぐらいでやるそうだ
例:男性ユーザーの一覧を取得したい!
補足:取得する件数は10件を設定。取得する行は、id,last_name.gender.ER図で確認
ヒント;limit句を使う
select 列名 from テーブル名 where 列名 = 条件 limit 件数;
・性別:users.genderを参照 1:男性 2:女性
select id, last_name, gender from users where users.gender = 1 limit 10
※ポイント
users.gender = 1 で男性のみ表示するように指定している