MySQL select where
DB構造
スキーマ各種→demoスキーマ
→システムスキーマ→システムcfgスキーマテーブル(設定など)
→テーブル各種
テーブル情報に対しての操作、レコード追加、編集、削除など行い
さまざまなテーブルがjoinして出来上がる
テーブルに含まれるカラム、レコード、フィールド
テーブル
データがひとまとまりの表形式になっている
テーブルは複数のカラムとレコードで構成されるカラム
カラムとはテーブルの縦列のこと。格納できるデータの”型”が決まってる。
intカラム、Stringカラムなど決められる。レコード
レコードはテーブルの横列のこと。フィールド
レコードの中の1つの項目のこと。実際にデータが格納されている場所。テーブル操作
//dbコンテナにはいる $ docker-compose exec db bash //mySqlアプリ起動 $ mysql -u root -p pass=root //スキーマDB一覧表示(ログインユーザのスキーマ) $ show databases; +--------------------+ | Database | +--------------------+ | information_schema | | demo | | mysql | | performance_schema | | sys | +--------------------+ //demoスキーマを利用 $ use demo; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
SELECT文
select
→カラム選択
from
→テーブル選択
demoスキーマ配下のitemテーブルを指定し、select *
とすることですべてのカラムを対象とし表示。
$ select * from demo.item; +----+-----------+-------+---------+ | id | name | price | content | +----+-----------+-------+---------+ | 48 | めお | 99998 | めお | | 50 | meooo | 35677 | meo | +----+-----------+-------+---------+ 7 rows in set (0.00 sec)
demoスキーマ配下のitemテーブルを指定し、nameカラムを対象とし表示
$ select name from demo.item; +-----------+ | name | +-----------+ | めお | | meooo | +-----------+
limit
limitをつけることでレコードの表示数を指定できる。
itemテーブルから1レコード表示
mysql> SELECT * FROM demo.item limit 1; +----+-----------+-------+---------+ | id | name | price | content | +----+-----------+-------+---------+ | 2 | めおお | 300 | めお | +----+-----------+-------+---------+
where
どのレコードにするか横軸を選ぶ
- id46のレコードを表示させる。
and
でid=2,price=300のレコードを表示
mysql> SELECT * FROM demo.item where id = 46 limit 10; +----+------+-------+---------+ | id | name | price | content | +----+------+-------+---------+ | 46 | 771 | 96 | aa77 | +----+------+-------+---------+ mysql> SELECT * FROM demo.item where id = 2 and price = 300 limit 1; +----+-----------+-------+---------+ | id | name | price | content | +----+-----------+-------+---------+ | 2 | めおお | 300 | めお | +----+-----------+-------+---------+