今回の課題・得点と最高完了得点をこのブラウザに保存します。SQL入力・実行結果・教材DBへの変更は再読み込みで戻ります。誤答やヒントによる減点はありません。
最高完了得点: 0 / 35pt
SELECT文の基本。全件取得と列を指定した取得を練習します。
データベースからデータを取得するときに使うのが SELECT 文です。
SELECT * FROM テーブル名;
* は「全ての列」を意味します。
SELECT 列名1, 列名2 FROM テーブル名;
今回使うテーブルは products(商品)と customers(顧客)です。
products テーブル
| 列名 | 型 | 説明 |
|---|---|---|
| id | INTEGER | 商品ID |
| name | TEXT | 商品名 |
| category | TEXT | カテゴリ |
| price | INTEGER | 価格(円) |
| stock | INTEGER | 在庫数 |
customers テーブル
| 列名 | 型 | 説明 |
|---|---|---|
| id | INTEGER | 顧客ID |
| name | TEXT | 氏名 |
| city | TEXT | 都市 |
| age | INTEGER | 年齢 |
SELECT * は手軽ですが、実務では取りたい列だけを書くのが基本です。
- 転送するデータが減るので速い
- 後からテーブルに列が増えても、結果の形が変わらない
- クエリを読んだ人に「何を使っているか」が伝わる
AS を使うと、結果の列名を読みやすい名前に変えられます。
SELECT name AS 商品名, price AS 価格 FROM products;
同じ値が何度も出てくる列から、種類だけを知りたいときに使います。
SELECT DISTINCT category FROM products;
- 末尾の ; を忘れる — SQL は ; で 1 文の終わりを表します。
- 列名を ' で囲ってしまう — ' は文字列用です。列名にはそのままか、必要なら " を使います。
- no such column と出る — 列名のつづり違いです。上の表で列名を確認してください。
次のレッスン: WHERE — 条件でデータを絞る
結果は1000行まで・実行は30秒まで。中止・リセットは教材への変更だけを破棄し、入力SQLと進捗は残します。
教材DBを初期化しています。