Menu
SHIRON|デザイナーの転職を応援するWEBコミュニケーター
SHIRON|デザイナーの転職を応援するWEBコミュニケーター

ガガっと【MySQL操作言語】

2021.10.112024.01.17 By ヒロミニ 1oo

データベース操作言語とは

基本的に英語の文法と同じ気がする。

やりたいこと宣言 + 欲しい値 + データベースの指定 + オプション(+ オプション);

■基本の操作言語 CRUD(クラッドと呼ぶらしい)
Create C:INSERT 新規作成
Read  R:SELECT 検索
Update U:UPDATE 更新
Delete D:DELETE 削除

SELECT文

SELECT フィールド名 FROM DB名.テーブル名
上記のDB名は省略可
USE DB名; と宣言すればOK
SELECT フィールド名 FROM テーブル名

なので、単にフィールド表示させるだけの場合、
やり方が3つある。

①データベース名を指定して操作
②USE データベース名でデータベース宣言
③最初ログインするときにデータベース名も宣言

ちな、「間違ったァァァ」ってときは、
Ctrl+C でキャンセルできる(¥cエンターでも可)

改行もメモ帳感覚でOK
->こんな記号でるけどSQL文が完結していないよ、という意味
※さすがに単語の途中で改行するとエラー

/*コメントアウトもできるよ。*/

ちなみに操作言語を知らないユーザに操作させるためのインターフェイスをUIと呼ぶらしい。
ボタンをつくるのがデザイナー、ボタンが押された後の処理をつくるのがプログラマー。
わかってたつもりだけど、わかってなかったよね。
UIっていう言葉とふわっとした概念だけ先に知ってたよね。

正式にはグラフィックユーザインタフェース、略してGUI(グイ)って呼んだりするらしい。

<WHERE句>

データベースの中の、このテーブルの中でって指定をする

<ORDER BY句>

降順昇順の指定
複数指定もできる。勝手にかつ検索になっている気がする。

例

SELECT company_id,post_id,person_id,person_lname,person_fname
FROM m_person
WHERE company_id=3
ORDER BY post_id ASC;

<演算子/算術演算子>

idとかの数字を算術で計算して出すことができる。
抽選とかで使えそう。

例

SELECT company_id * 10,company_name
FROM m_company
WHERE company_id = 2;

<論理演算子>
かつ もしくは は除く の3つの検索方法

例
SELECT company_id,post_id,person_id,person_lname,person_fname
FROM m_person
WHERE company_id = 3 AND post_id = 3;

<IN演算子>
どれかが一致してる値を出す

WHERE company_id IN(2,5);
ORでも書ける
WHERE company_id = 2 OR company_id = 5;

<BETWEEN演算子>
範囲指定して値を出す

WHERE company_id BETWEEN 4 AND 8;
ANDだけでも書ける
WHERE company_id >= 4 AND <= 8;

<LIKE演算子>
検索したい単語が入っているものすべて出す

WHERE company_name LIKE '%AAA%'

A% Aで始まる
%A Aで終わる
%A% Aが含まれる
B%A% Bで始まりAが含まれる

<集約関数>
表計算のSUMやらCOUNTの関数も使える。
文字列連結もできるので、関数探せばいろいろやれる。

<GROUP BY句>
SUMやらCOUNTで出したい値を2つグループ化できる。
SELECTとGROUP BYは必ず一致させる

SELECT area_id,area_name,COUNT(*)
FROM m_company
GROUP BY area_id, area_name;

<HAVING句>

SELECT文の実行順序

FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY

順序をミスするとエラー。

テーブル結合

これやらないとデータベースは始まらない。

<内部結合>
SELECT t1.フィールド //出したい値
FROM テーブルA t1   //基本のテーブル
JOIN テーブルB t2   //くっつけるテーブル
ON t1.共通フィールド = t2.共通フィールド //条件 これは被りを出したい場合

正式にはINNER JOIN だが、省略可。

<外部結合>
LEFT OUTER JOIN //基本のテーブルの左側(1つめ)を選択
RIGHT OUTER JOIN //基本のテーブルの右側(2つめ)を選択

副問い合わせ

FROM句やWHERE句に()でSELECT文を入れ子できる機能のこと。

FROMでレコードを絞り込んだりグループ化したものを検索対象として指定したり、
WHEREで複数レコードを対象に比較演算したりできる。

INSERT文

テーブルにレコードを追加。

例
INSERT INTO m_post(post_id,post_name)
VALUES(1, '部長');

DELETE文

指定したレコードを削除。

例
DELETE FROM m_podt //テーブル指定
WHERE post id = 1; //条件

テーブルは1つしか指定できない。

WHERE句を書き忘れると、
レコード全部吹っ飛ぶ。悪夢。

LIKE句と組み合わせれば、検索して消すことも可能。

☆彡nullがないか調べるとき
SELECT レコード名
FROM テーブル名
WHERE レコード名 IS NULL;

UPDATE文

指定したレコードを更新。

WHERE句を書き忘れると
レコード全部上書きされる。悪夢再び。

例
UPDATE m_post //テーブル指定
SET post_name = '課長' //値を設定
WHERE post_id = 2; //条件

複数フィールドを指定する場合は
SET句でカンマ区切り。
SET post_name = “課長”,post_id = 1
みたいな感じ。

いろいろ試してみるにはテスト環境必須。

 

データ制御言語

DataControlLanguage

Oracleなど一部のDBMSではデータ制御言語という定義は存在せず、SQLは「トランザクション制御文」などと呼ばれている。

トランザクションは初期値1で、アクティブ状態。
まずは無効化。

/*トランザクション状態確認*/
SELECT @@autocommit;

/* autocommitの無効化 */
SET autocommit=0;

<制約>

CREATE TABLE DB名.テーブル名(
フィールド名 データ型 PRIMARY KEY, //UNIQUE + NOT NULL
フィールド名 データ型 NOT NULL //空っぽは許されない
フィールド名 データ型 UNIQUE //ダブりが許されない
フィールド名 データ型 DEFAULT 0 //値を指定しない場合に代入
PRIMARY KEY(フィールド名, フィールド名) //テーブル内で唯一の主キーを設定
FOREIGN KEY(フィールド名) REFFERENCES テーブル名(フィールド名) //親データを参照する
);

<ビュー>
通常のSELECT文は使い切りだが
ビューとして登録すればすぐ同じ条件で出せる。

SELECT * FROM ビューの名前;

削除
DROP VIEW ビューの名前;

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

Twitter

Tweets by shiron1oo
©2025 SHIRON|デザイナーの転職を応援するWEBコミュニケーター | Powered by SuperbThemes