Alma Core Pro かんたんSQL講座

第1回:コピペで覚える!「SELECT文」で欲しいデータだけを取り出す魔法

1. SQLってなに?(難しくない理由)

「SQL(エスキューエル)」と聞くと難しいプログラミングを連想しがちですが、実際は「データベースという巨大な本棚から、欲しい書類だけを持ってきてもらう注文書(メモ)」にすぎません。

プログラミング言語のように複雑な計算式やループ処理を書く必要はなく、「どこの本棚から(FROM)」「どの項目を(SELECT)」「どんな条件で(WHERE)」を英語の単語で並べるだけで完了します。

🍽️ たとえば、レストランで店員さんに注文するとき:

【メニュー表】 の中から、【ハンバーグ】【ライス】 を持ってきてください!」

💻 これをデータベースへの命令(SQL)に置き換えると:

FROM 【テーブル名】 から、SELECT 【見たいデータ列】 を持ってきて!」

2. 基本の形はたった2行(FROMとSELECT)

SQLの一番基本となる形は、以下の2行だけです。

SELECT horse_number, senko
FROM kol_stride;

1行ずつの意味を分解

書いた言葉 意味 店員さんへの命令内容
FROM kol_stride どのテーブルから? 「ストライド指数が入っているテーブル(本棚)を開いて!」
SELECT horse_number, senko どの列(項目)を? 「その中から『馬番』と『先行力』の列だけ抜き出して見せて!」
項目を複数指定するときのルール

見たい項目が複数ある場合は、horse_number, senko, tsuiso のように「半角カンマ(,)」で区切って並べます。最後の項目の後ろにはカンマを付けません。

📋 どんなテーブルや項目があるか確認したいときは?(全テーブル定義書)

アプリ内メニューの『ヘルプ(H)』 ➔ 『📑 全テーブル定義書(仕様書)』を開くと、データベースに存在する全テーブルのカラム名(英語名・日本語名・データ型)を一覧で確認・CSV形式等でダウンロードできます。どのテーブルにどんなデータが入っているか迷った際はご活用ください。

3. 英語の列名を日本語に変える魔法「AS」

データベースの中身は、コンピュータが扱いやすいように race_date(開催日)や st(ST指数)といった英語の名前になっています。

そのまま取り出すと見出しが英語になって見づらいため、単語の後ろに AS 日本語名 を付けると、見出しを日本語に変換して取り出すことができます。

SELECT 
    race_date AS 開催日,
    venue_code AS 場コード,
    race_number AS レース,
    horse_number AS 馬番,
    st AS ST指数,
    senko AS 先行力,
    bias AS バイアス
FROM kol_stride
LIMIT 10;
Excel貼り付け例

「AS 〇〇」を書いておくと、Excelに貼り付けた瞬間に1行目が綺麗な日本語見出しになります

4. 欲しい馬だけを一本釣りする「WHERE」

全頭を表示するのではなく、「特定の日のレースだけ」「先行力が高い馬だけ」のように絞り込みたいときは、WHERE(ウェア)を使います。

① 日付で絞り込む(完全一致)

SELECT race_date AS 開催日, race_number AS R, horse_number AS 馬番, st AS ST指数
FROM kol_stride
WHERE race_date = '20260823';

※日付や文字列を指定するときは、必ず '20260823' のように「シングルクォーテーション(')」で囲みます。

② 数字の大きさで絞り込む(不等号)

SELECT race_date AS 開催日, horse_number AS 馬番, senko AS 先行力, tsuiso AS 追走力
FROM kol_stride
WHERE senko >= 55.0;

※「先行力が55.0以上」の馬だけを取り出します。数字にはシングルクォーテーションを付けません。

③ 2つ以上の条件を両方満たす馬(AND)

SELECT race_date AS 開催日, horse_number AS 馬番, senko AS 先行力, tsuiso AS 追走力
FROM kol_stride
WHERE senko >= 55.0 AND tsuiso >= 50.0;

※「先行力55.0以上」かつ「追走力50.0以上」という強力な先行馬だけを絞り込みます。

5. 並び替えと件数制限(ORDER BY / LIMIT)

競馬予想で最も重要な「指数の高い順に並べる」「上位10頭だけを表示する」という命令です。

① 大きい順に並べ替える「ORDER BY ... DESC」

SELECT horse_number AS 馬番, st AS ST指数
FROM kol_stride
WHERE race_date = '20260823'
ORDER BY st DESC;

② 表示件数を制限する「LIMIT」

SELECT horse_number AS 馬番, st AS ST指数
FROM kol_stride
ORDER BY st DESC
LIMIT 10;

※データベースに何万件のデータがあっても、先頭から指定した件数(ここでは10件)だけを高速に取得して画面に表示します。

6. 実際の操作手順(コピペからExcelまで)

Alma Core Pro を使ってデータを抽出し、Excelに貼り付けるまでの流れは以下の手順です。

  1. 本マニュアルのレシピ(コード)をコピーします。
  2. アプリ画面中央上の「SQLクエリコンソール」入力欄をクリックし、キーボードの Ctrl + V を押して貼り付けます。
  3. 入力欄の右下にある ▶ SQL実行 ボタンを押します(画面下部に抽出結果が表示されます)。
  4. 左隣の 📊 Excel用コピー (TSV) ボタンをクリックします。
  5. Excelを開き、貼り付けたいセルを選択してキーボードの Ctrl + V を押すと、綺麗に区切られた表が貼り付けられます。
Alma Core Pro メイン画面

SQLを [Ctrl + V] で貼り付けて「▶ SQL実行」➔「📊 Excel用コピー」を押すだけでExcel連携が完結します

7. そのまま使える!お宝抽出実践レシピ集

以下の枠内のSQLをそのままコピーしてアプリに貼り付けるだけで、即座に実戦データが抽出できます。

レシピ 1 直近レースの能力バランス(総合力・先行・追走・瞬発)一覧

各馬の主要指数を横並びで抽出し、レース内の力関係や適性の違いをチェックします。

SELECT 
    race_date AS 開催日,
    venue_code AS 場コード,
    race_number AS R,
    horse_number AS 馬番,
    st AS ST指数,
    senko AS 先行力,
    tsuiso AS 追走力,
    shunpatsu AS 瞬発力,
    bias AS バイアス
FROM kol_stride
ORDER BY race_date DESC, CAST(race_number AS INTEGER) DESC
LIMIT 15;
能力バランス一覧

Excelで馬ごとの瞬発力や追走力の違いが一目瞭然になります

レシピ 2 軸馬候補!先行力55以上 & 追走力50以上の強力先行馬

展開に左右されにくく好走確率の高い「先行・追走の両方を兼ね備えた実力馬」だけを抽出します。

SELECT 
    race_date AS 開催日,
    venue_code AS 場,
    race_number AS R,
    horse_number AS 馬番,
    st AS ST指数,
    senko AS 先行力,
    tsuiso AS 追走力
FROM kol_stride
WHERE senko >= 55.0 AND tsuiso >= 50.0
ORDER BY race_date DESC, CAST(race_number AS INTEGER) DESC
LIMIT 20;
先行力・追走力絞り込み

軸馬候補となるハイレベルな先行馬だけがズラリと抽出されます

8. 初心者が絶対にハマる「3大ミス」と対策

SQLを実行してエラーが出たときは、99%が以下のいずれかの原因です。落ち着いて確認してみましょう。

よくある原因 間違いの例 正しい書き方・対策
① 全角文字が入っている SELECT(全角英字)
WHERE senko >= 50(全角空白)
SQLのコマンド・空白・記号はすべて半角で記述する必要があります。日本語が使えるのは AS 日本語名 の部分と、クォーテーションで囲んだ文字の中身だけです。
② 最後のカンマ(,)の付けすぎ SELECT horse_number, senko, FROM kol_stride; FROM の直前にある最後の項目(ここでは senko)の後ろにはカンマを付けてはいけません
③ クォーテーションの閉じ忘れ WHERE race_date = '20260823; 文字列を囲むシングルクォーテーション(')は、必ず前と後ろで対(ペア)になるように閉じます。