SQLの基本文法について - Hashimoto-Noriaki/IT-basic GitHub Wiki

SQLの基本文法について

SQLとは

SQLとはデータベース言語と言ってプログラミング言語ではありません。 データベースを操作するための言語です。 言い換えるとSQLを使いデータベースに命令を出す言語です。 このSQLからの命令を受け取るのはDBMS(データベース管理システム) と呼ばれるプログラムです。 字の通りDBを管理するものです。 ※ DB(データベースの略称) これからはDBと略します。 これがSQLによりファイルを消したり書き換えたりされます。

SQLの基本ルール

SQLの書き方のルールを説明していきます。

文の途中に改行を入れ、行の先頭や途中に半角のスペースが入れられる

SQLのコメントアウトの方法 コメントアウトの方法は以下の2つです。 1 -- ハイフン2つ 2 /から/までがコメントになる

/* 野球部の3年生のデータ*/

SElECT 体重, 身長 --体のデータのみ FROM 3年生

予約語について SELECTやWHEREなどの命令にう使う単語は***予約語(keyword)***と言って 大文字と小文字の区別がありません。

ex) SELECT * from 3年生      sELect * FroM 3年生

でもデータを取得できたりします。 ただこれだとわかりづらいので大文字や小文字を揃えたりします。

リテラルについて

'のようなシングルクオテーションはデータの種類そのものを表します。 数値や文字列など表記どおりの値の総称です。390、"PHP"、2021-12-27といった数値や文字列、 日付がリテラルにあたります。

⚫︎リテラルの記述のルール'が使われていない記述は数値として扱われる。'が使われている記述は数値文字列として扱われる。'が使われていて'2021-12-27'のような記述は日付として扱われる。

ex) 1000は数字として扱われるが、'1000'は文字としての扱い。

INSERT INTO 3年生
VALUES ('2021-12-27','ピッチャー',70) --日付は日付として扱い。ピッチャーは文字列。70は数字

データ型

もし数値が下のように文字列としてDBに入れたら大変です。

VAlUES ('70','180')

この数値が 身長や体重のデータだったら尚更大変ですよね? そこで数値が文字列としてデータの中に入らないための機能がDBにはあります。 DBには複数のテーブルがあり、行と列から成り立っています。 列には名前があり、列ごとに格納できるデータの種類を表すデータ型を定めています。

⚫︎データ型の種類

データ 区分 データ型の種類
数値 整数値 INTEGER型
数値 少数 DEMICAL型,REAL型
文字列 固定長 CHAR型
文字列 可変長 VARCHAR型
日付と時刻   DATETIME型,DATE型,TIME型

引用 スッキリわかるSQL入門より

特にINTEGER型、CHAR型、VARCHAR型は多くのDBMS製品で利用されているみたいです。

⚫︎補足 DBMSとは https://it-trend.jp/database/article/89-0070

データ型の特徴 ・テーブルの各列にはデータ型が指定 ・列には、データ型の種類の情報しか入らない ・DBMS製品によって利用できるデータ型が異なる

⚫︎VARCHAR型(可変長)とCHAR型(固定長)の違い ・VARCHAR型(可変長)は氏名や本やプロジェクト名などのデータの桁数が変動するもの ・CHAR型(固定長)は社員番号やID、郵便番号などのデータの桁数が決まっているもの

⚫︎補足 https://legoliss.co.jp/【sql】統一ルールを作ろう!おすすめsql記述ルール/

⚫︎参考資料 https://www.amazon.co.jp/スッキリわかるSQL入門-第2版-ドリル222問付き-スッキリシリーズ-中山清喬/dp/4295005096

https://qiita.com/chida09/items/d4b33a28b918958f267f

https://rfs.jp/sb/sql/s02/01-20.html#:~:text=と予約語-,リテラル(literal),列、日付がリテラルにあたります。

# **SQLの基本文法について**

SQLとは

SQLとはデータベース言語と言ってプログラミング言語ではありません。 データベースを操作するための言語です。 言い換えるとSQLを使いデータベースに命令を出す言語です。 このSQLからの命令を受け取るのはDBMS(データベース管理システム) と呼ばれるプログラムです。 字の通りDBを管理するものです。 ※ DB(データベースの略称) これからはDBと略します。 これがSQLによりファイルを消したり書き換えたりされます。

SQLの基本ルール

SQLの書き方のルールを説明していきます。

文の途中に改行を入れ、行の先頭や途中に半角のスペースが入れられる

SQLのコメントアウトの方法 コメントアウトの方法は以下の2つです。 1 -- ハイフン2つ 2 /から/までがコメントになる

/* 野球部の3年生のデータ*/

SElECT 体重, 身長 --体のデータのみ
FROM 3年生

予約語について SELECTやWHEREなどの命令にう使う単語は***予約語(keyword)***と言って 大文字と小文字の区別がありません。

ex) SELECT * from 3年生      sELect * FroM 3年生

でもデータを取得できたりします。 ただこれだとわかりづらいので大文字や小文字を揃えたりします。

リテラルについて

'のようなシングルクオテーションはデータの種類そのものを表します。 数値や文字列など表記どおりの値の総称です。390、"PHP"、2021-12-27といった数値や文字列、 日付がリテラルにあたります。

⚫︎リテラルの記述のルール'が使われていない記述は数値として扱われる。'が使われている記述は数値文字列として扱われる。'が使われていて'2021-12-27'のような記述は日付として扱われる。

ex) 1000は数字として扱われるが、'1000'は文字としての扱い。

INSERT INTO 3年生
VALUES ('2021-12-27','ピッチャー',70) --日付は日付として扱い。ピッチャーは文字列。70は数字

データ型

もし数値が下のように文字列としてDBに入れたら大変です。

VAlUES ('70','180')

この数値が 身長や体重のデータだったら尚更大変ですよね? そこで数値が文字列としてデータの中に入らないための機能がDBにはあります。 DBには複数のテーブルがあり、行と列から成り立っています。 列には名前があり、列ごとに格納できるデータの種類を表すデータ型を定めています。

⚫︎データ型の種類

データ 区分 データ型の種類
数値 整数値 INTEGER型
数値 少数 DEMICAL型,REAL型
文字列 固定長 CHAR型
文字列 可変長 VARCHAR型
日付と時刻 DATETIME型,DATE型,TIME型

引用 スッキリわかるSQL入門より

特にINTEGER型、CHAR型、VARCHAR型は多くのDBMS製品で利用されているみたいです。

⚫︎補足 DBMSとは https://it-trend.jp/database/article/89-0070

データ型の特徴 ・テーブルの各列にはデータ型が指定 ・列には、データ型の種類の情報しか入らない ・DBMS製品によって利用できるデータ型が異なる

⚫︎VARCHAR型(可変長)とCHAR型(固定長)の違い ・VARCHAR型(可変長)は氏名や本やプロジェクト名などのデータの桁数が変動するもの ・CHAR型(固定長)は社員番号やID、郵便番号などのデータの桁数が決まっているもの

⚫︎補足 [https://legoliss.co.jp/【sql】統一ルールを作ろう!おすすめsql記述ルール/](https://legoliss.co.jp/%E3%80%90sql%E3%80%91%E7%B5%B1%E4%B8%80%E3%83%AB%E3%83%BC%E3%83%AB%E3%82%92%E4%BD%9C%E3%82%8D%E3%81%86%EF%BC%81%E3%81%8A%E3%81%99%E3%81%99%E3%82%81sql%E8%A8%98%E8%BF%B0%E3%83%AB%E3%83%BC%E3%83%AB/)

⚫︎参考資料 [https://www.amazon.co.jp/スッキリわかるSQL入門-第2版-ドリル222問付き-スッキリシリーズ-中山清喬/dp/4295005096](https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BSQL%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E3%83%89%E3%83%AA%E3%83%AB222%E5%95%8F%E4%BB%98%E3%81%8D-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1%E6%B8%85%E5%96%AC/dp/4295005096)

https://qiita.com/chida09/items/d4b33a28b918958f267f

[https://rfs.jp/sb/sql/s02/01-20.html#:~:text=と予約語-,リテラル(literal),列、日付がリテラルにあたります。](https://rfs.jp/sb/sql/s02/01-20.html#:~:text=%E3%81%A8%E4%BA%88%E7%B4%84%E8%AA%9E-,%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB%EF%BC%88literal%EF%BC%89,%E5%88%97%E3%80%81%E6%97%A5%E4%BB%98%E3%81%8C%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB%E3%81%AB%E3%81%82%E3%81%9F%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82)

⚠️ **GitHub.com Fallback** ⚠️