Skip to content

SQLの基本ルール

SQL基本ルール

  • 文の途中に改行を入れることができる。
  • 行の先頭や行の途中に半角の空白を入れることができる。
  • ハイフン2つ(--)から行末まではコメントとして扱われる。
  • /*から*/まではコメントとして扱われる。

都道府県テーブルで練習

ts
function createPrefecturesTable() {
  return sql.unsafe(`
    CREATE TABLE IF NOT EXISTS PREFECTURES (
      code CHAR(2),
      region VARCHAR(10),
      prefecture_name VARCHAR(10),
      prefectural_capital VARCHAR(20),
      area INTEGER
    );
  `)
}

async function seedPrefectures() {
  await sql`INSERT INTO PREFECTURES (code, region, prefecture_name, prefectural_capital, area) VALUES ('01', '北海道', '北海道', '札幌', 83424)`
  await sql`INSERT INTO PREFECTURES (code, region, prefecture_name, prefectural_capital, area) VALUES ('02', '青森県', '青森県', '青森', 9646)`
  await sql`INSERT INTO PREFECTURES (code, region, prefecture_name, prefectural_capital, area) VALUES ('03', '岩手県', '岩手県', '盛岡', 15275)`
  await sql`INSERT INTO PREFECTURES (code, region, prefecture_name, prefectural_capital, area) VALUES ('04', '宮城県', '宮城県', '仙台', 7282)`
  await sql`INSERT INTO PREFECTURES (code, region, prefecture_name, prefectural_capital, area) VALUES ('05', '秋田県', '秋田県', '秋田', 11636)`
  await sql`INSERT INTO PREFECTURES (code, region, prefecture_name, prefectural_capital, area) VALUES ('06', '山形県', '山形県', '山形', 9323)`
  await sql`INSERT INTO PREFECTURES (code, region, prefecture_name, prefectural_capital, area) VALUES ('07', '福島県', '福島県', '福島', 13784)`
}

async function main() {
  try {
    await createPrefecturesTable()
    await seedPrefectures()
    const result = await sql`SELECT * FROM PREFECTURES`
    console.log(result)
  } catch (e) {
    console.error('❌ エラーが発生しました:', e)
    await sql.end()
    process.exit(1)
  }
}

main()

取得結果

sh
Result(7) [
  {
    code: '01',
    region: '北海道',
    prefecture_name: '北海道',
    prefectural_capital: '札幌',
    area: 83424
  },
  {
    code: '02',
    region: '青森県',
    prefecture_name: '青森県',
    prefectural_capital: '青森',
    area: 9646
  },
  {
    code: '03',
    region: '岩手県',
    prefecture_name: '岩手県',
    prefectural_capital: '盛岡',
    area: 15275
  },
  {
    code: '04',
    region: '宮城県',
    prefecture_name: '宮城県',
    prefectural_capital: '仙台',
    area: 7282
  },
  {
    code: '05',
    region: '秋田県',
    prefecture_name: '秋田県',
    prefectural_capital: '秋田',
    area: 11636
  },
  {
    code: '06',
    region: '山形県',
    prefecture_name: '山形県',
    prefectural_capital: '山形',
    area: 9323
  },
  {
    code: '07',
    region: '福島県',
    prefecture_name: '福島県',
    prefectural_capital: '福島',
    area: 13784
  }
]
  1. 全ての列名を明示的に指定して、すべての行を取得する。
ts
const result =
  await sql`SELECT code, region, prefecture_name, prefectural_capital, area FROM PREFECTURES`
console.log(result)

取得結果

  1. 列名の指定を省略して、1と同様の結果を取得する。
ts
const result = await sql`SELECT * FROM PREFECTURES`
console.log(result)
  1. 「地域」「都道府県名」の列について、「area」と「pref」という別名をつけてすべての行を取得する。
ts
const result = await sql`SELECT region AS area, prefecture_name AS pref FROM PREFECTURES`
console.log(result)