Help us understand the problem. What is going on with this article?

超基礎SQL覚えようリスト

More than 1 year has passed since last update.

概要

SQLって何から覚えたらいいの?人向け
最低限覚えたほうがいい項目を記述してます。

使い方や詳細などは別の書籍などで確認してね。

SQL分類を覚えよう

SQLには大きく分けて、3種類存在する。

  • DML (Data Manipulation Language データ操作)
    • データ作成、読み取り、更新、削除を行う
  • DDL (Data Definition Language データ定義)
    • テーブル作成、更新、削除を行う
  • DCL (Data Control Language データ制御)
    • 権限管理をする

DDLとDCLは管理者寄りのコマンドなので、
DML > DDL > DCLの順番で覚えていこう。

DMLの基本を覚えよう

DMLの分類を覚えよう

DMLの操作命令には大きく分けて、4つある

  • SELECT
    • データを読み取る
  • UPDATE
    • データを更新する
  • DELETE
    • データを削除する
  • INSERT
    • データを作成する

Railsなんかでよく言われるCRUDと同じだと思ってくれればいい。
まずは使用頻度の高いSELECTから覚えていこう。

SELECTの基本を覚えよう

基本の文法は以下の通り

SELECT 取得対象列名
  FROM 取得対象テーブル名  

テーブルを指定し、更に列名を指定することで、
全行の指定した列のデータを取得することが出来る。

また複数列も指定出来る。

SELECT 取得対象列1, 列2, 列3, ...
  FROM 取得対象テーブル名  

全ての列を指定したい場合は「*」を使えば良い。

SELECT *
  FROM 取得対象テーブル名  

UPDATEの基本を覚えよう

基本の文法は以下の通り

UPDATE 更新対象テーブル名
   SET 更新対象列名=代入後の値

テーブルを指定し、更新したい列名に更新値を指定することで
全行の指定した列のデータを更新出来る。
複数列も更新出来る。

UPDATE 更新対象テーブル名
   SET 更新対象列1=代入後の値, 更新対象列2=代入後の値, ...

DELETEの基本を覚えよう

基本の文法は以下の通り

DELETE
  FROM 削除対象テーブル名

指定したテーブルの全行を削除
テーブル自体を消すわけではなく、テーブルの中身を消すだけ。

INSERTの基本を覚えよう

基本の文法は以下の通り

INSERT INTO 作成対象テーブル名
            作成対象列名1, 列名2, 列名3, ...
VALUES      作成後の値1, 値2, 値3, ...

作成対象テーブル内にデータつまり行を作成
どの列にどの値を入れるかを順番に指定していく。
↑の例だと、列名1に値1が入り、列名3に値3が入る。

条件分岐の基本を覚えよう

↑の基本だけでは、明らかに実践に使えないことが何となく分かるかと思う。
例えば、↑の基本通りDELETEを使うと、全データが消えてしまうので、
Qiitaで例えると、ある記事の削除ボタンを押したら、全ての記事が消えてしまうようなものだ。

ということで、ある条件に一致した(TRUEとなる)データだけ消したり、更新出来るようにしたい。

条件分岐の基本は以下の通り

INSERT以外の命令
WHERE 条件式

INSERTにはWHEREを使うことは出来ない。
条件式はTRUEorFALSEになるように記述しよう。

WHERE weight > 60 

例えば、↑の例だと、列名1が60より
大きいデータの場合、TRUE
それ以外のデータの場合、FALSEとなります。

↓のテーブルに対して使うと、
田中さんはFALSE
山田さんはTRUE
渡辺さんはTRUEとなります。

テーブル名:weight_table

name weight
田中 55
山田 64
渡辺 70

このテーブルを使って、
SELECT,UPDATE,DELETEを使ってみよう。

SELECT(条件分岐あり)を覚えよう

条件分岐ありSELECT

SELECT name
FROM   weight_table
WHERE  weight >= 65

得られたデータ

name
渡辺

UPDATE(条件分岐あり)を覚えよう

UPDATE weight_table
SET    weight=80
WHERE  name='山田'

更新後のテーブル

name weight
田中 55
山田 80
渡辺 70

DELETE(条件分岐あり)を覚えよう

DELETE 
FROM   weight_table
WHERE  weight < 60

削除後のテーブル

name weight
山田 64
渡辺 70

比較演算子の基本を覚えよう

条件式に使える「>」などを比較演算子という
↑では何となく感覚的に使っていた比較演算子だが、
使えるものは決まっているので、覚えよう。

比較演算子 TRUEになる条件
= 両辺の値が等しい
< 左辺より右辺の値が大きい
> 左辺より右辺の値が小さい
<= 左辺は右辺の値以下
>= 左辺は右辺の値以上
<> 両辺の値が等しくない

「<>」は少し見慣れないかな。
「!=」とかはよく見るけど。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした