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 ※[]内は省略可 |
この記事が役に立ったと思ったらポチッ!っと応援お願いします。
↓ ↓
独学で挫折しそうなときは!
↓ ↓
時間や場所に縛られず学習できるMySQL3選
コメント