MySQL 構文などの一覧【MySQL Workbench8.0.11 確認済み】

MySQL8.0で動作確認済のものを一覧にしました。

ポケットに入れて持ち歩くのにちょうどいいかも?

用途 構文など
Error Code: 1046
データベースに接続する
use データベース名;
Error Code:1175
セーフモードを解除する
set sql_safe_updates = 0;
Error Code: 1451
外部キー制約を一時的に
無効にして
データを操作する
SET FOREIGN_KEY_CHECKS = 0

処理後

SET FOREIGN_KEY_CHECKS = 1
データベース一覧表示
show databases;
データベースの追加
create database データベース名;
データベースの削除
drop database データベース名;
テーブル一覧表示
show tables;
テーブル構造の確認
show columns from テーブル名;
desc テーブル名;
テーブルの追加 使用例:

create table テーブル名(
 カラム1 int not null auto_increment primary key,
 カラム2 varchar(255) not null);
テーブルの削除
drop table テーブル名;
列(カラム)の追加
alter table テーブル名 
 add カラム1 int after カラム2

※カラム2の後ろにカラム1が追加されます。

列の削除
alter table テーブル名 drop 列名;
列(カラム)名変更
alter table テーブル名 
 change 旧列名 新列名 データ型;
列(カラム)Type変更
alter table テーブル名 modify 列名 データ型;
列に別名を付ける
select 変更前の列名 as 変更後の列名
from テーブル名;
行(レコード)の追加
insert into
 テーブル名(列1,列2,列3...)
values
 (値1,値2,値3);
行(レコード)の複数追加
insert into
 テーブル名(列1,列2,列3,...)
values
 (値1,値2,値3...),
 (値1,値2,値3...),
 (値1,値2,値3...);
列リストを省略して
行データを1件追加
使用例:

insert テーブル名 values(1002,'新商品B',2000);
行の削除
delete from テーブル名;
条件を指定して行の削除
delete from テーブル名 where 削除条件;
行(レコード)の削除に
サブクエリを使う
使用列:

delete
from
  products
where
   id not in(
select 
   product_id
from
   order_details
group by
   product_id   
   );
行(レコード)更新
update テーブル名 set 値1, [列2 = 値2...]
[where 条件式];
行の更新条件に
サブクエリを使う
使用例:

update
  products
set
  price =price * 1.05
where
  id in
  (
 select 
   product_id
 from 
   order_details
 group by 
   product_id
 having
   sum(product_qty) >=5
  );
全てのデータを更新
update テーブル名 set 値1, [列2 = 値2...]
[where 条件式];
列を指定して
データを取得する
select 列1,列2 from テーブル名;
テーブルの全データの表示
select * from テーブル名;
条件を指定して
データを取得する
select 列1, 列2...
from テーブル名 where 条件;
パターン一致
select 列1,・・・,

from テーブル名 

where 列名 like ワイルドカード文字;
取得件数を制限する
select 列1,・・・

テーブル名 limit [オフセット,]最大件数;
算術演算子 足し算(+),引き算(-),掛け算(*),
割り算(/),余り(%)
丸めの桁数を指定して
四捨五入
round(対象の数値,丸めの桁数)
文字列の演算
concat(文字列,文字列2,文字列3・・・)
日付と時刻の計算 (現在の日付)

select current_date();
(現在の時刻)

select current_timestamp();

など・・

集約関数
sum(expr)
avg(expr)
min(expr)
max(expr)
count(expr)
ユニークユーザー数の
調べ方
select 
 count(distinct expr) 
from テーブル名 
 where 列名 = '2017-11-01';
複数の並び替え条件を
指定する
order by 列名や式 並び順,...
テーブル結合(内部結合)
select 
 テーブル名1列名, 
 テーブル名2列名...
from 
 テーブル名1 
inner join 
 テーブル名2 
on テーブル名1.列名 = テーブル名2.列名;
テーブル結合(外部結合)
slect
 テーブル名1.列名,
 テーブル名2.列名...
from
 テーブル名1
left outer join
 テーブル名2
on テーブル名1.列名 = テーブル名2.列名;
複数のテーブル結合
3つ以上
使用例:

select
   o.id order_id,  
   o.user_id user_id, 
   o.amount amount, 
   o.order_time order_time, 
   p.name product_name, 
   d.product_qty qty, 
   p.price product_price 
from
  テーブル1 o 
inner join
   テーブル2 d 
on o.id = d.order_id
inner join
   テーブル3 p 
on d.product_id = p.id;
集合演算子 union 1つのテーブルにデータ内容が異なるテーブルの
データを足して1つのテーブルを作ります。

select 列1,…from テーブル1
union select 列2,…from テーブル2
1つの列に紐づく
複数のカテゴリの結合
使用例:

select 
  * 
from 
  商品テーブル名 p
inner join 中間テーブル名 pc
  on p.id = pc.product_id
inner join カテゴリーテーブル名 c
  on pc.category_id = c.id
where
  p.id = 2;
サブクエリ
select

  列名,...

from

  テーブル名

where

  列名 演算子 (
       select 列名 
       from テーブル名2...
      );
スカラ・サブクエリ 使用例:

select
  *
from
  products
where
  price >
	(
	  select
	    avg(price)
	  from
	    products
      );
条件分岐 case
case
 when 条件式1 then 値1   
 [when 条件式2 then 値2]  
 [else 値3]               
end

※[]内は省略可

この記事が役に立ったと思ったらポチッ!っと応援お願いします。

↓  ↓

にほんブログ村 IT技術ブログへ

独学で挫折しそうなときは!
↓   ↓
時間や場所に縛られず学習できるMySQL3選

スポンサーリンク
スポンサーリンク
SNSフォローボタン

フォローする

シェアする

  • このエントリーをはてなブックマークに追加
スポンサーリンク
スポンサーリンク