まぬねこの足跡。。。

備忘録+たのしさ+ひっそりと

Python 目次

どんな言語

汎用性が高く、文法がシンプルで、Web上の情報や学習方法も豊富。

  • 分野
    • ウェブ開発
    • データサイエンス
    • Excelの自動化
    • AIの開発
    • 事務作業の自動化
  • インタプリタ(対話モード)
  • ソースコードの文字コード:UTF-8 ※変換も可能。

環境構築

ブラウザ上で利用できるPython実行環境

Pythonシステム全体の構造図

言語内容

特殊記述

定数

数値

文字

strメソッド
Unicodeコード

リスト

dequeオブジェクト
リスト操作

タプル

集合

辞書

一覧表示
数 確認
値 取得
複製
変更・更新
削除

数 取得

ソート

標準出力

表示フォーマット
参考:コンテストに・・・

型確認

型変換

シーケンス型 共通{文字列、バイト列、タプル、リスト、range など}

数 取得
追加
複製
削除
逆順

変数

関数定義

コラム

制御

演算子
条件分岐
ループ
中断

テスト・デバッグ

その他

組み込み関数

pythonモジュール

参考:コンテストに・・・

MYSQL「INSERT」レコード追加

「INSERT」レコード追加

  • 新規レコードの挿入/追加
  • 挿入/追加するテーブルのカラム名とその順番と型が一致しないとエラーになる。
  • 主キー(プライマリキー)などでAUTO_INCREMENT(自動連番機能)の設定があるカラムは省略OK。
  • 文字列型、日付型は、「'」囲む

書き方「INSERT」レコード追加

使用テーブル

<テーブルA>

請求書No 取引会社No 取引会社名 品物 金額
13243243 100 海山商事 ミカン 100
13243244 200 天空商事 だいこん 399
13243245 300 地底商事 うさぎ 45
1レコード追加

INSERT INTO テーブル名 (カラム名, ...)
VALUES
   (値, ...);

mysql>INSERT INTO invoices (
mysql>    請求書No, 取引会社No, 取引会社名, 品物, 金額)
mysql>VALUES (13243250, 100, '海山商事', 'バナナ', 180);

mysql>Query OK, 1 row affected (0.00 sec) ⇐こうでればOK

表示イメージ

請求書No 取引会社No 取引会社名 品物 金額
13243243 100 海山商事 ミカン 100
13243244 200 天空商事 だいこん 399
13243245 300 地底商事 うさぎ 45
13243250 100 海山商事 バナナ 180
複数レコード追加

INSERT INTO テーブル名 (カラム名, ...)
VALUES
   (値, ...)
   (値, ...)
   (値, ...);

mysql>INSERT INTO invoices (
mysql>    請求書No, 取引会社No, 取引会社名, 品物, 金額)
mysql>VALUES
mysql>    (13243251, 300, '地底商事', 'ねこ', 500),
mysql>    (13243252, 400, '宇宙商事', 'ほし', 999),
mysql>    (13243253, 200, '天空商事', 'トマト', 250);

mysql>Query OK, 3 row affected (0.00 sec) ⇐こうでればOK
mysql>Records: 3 Duplicates: 0 Warnings: 0

表示イメージ

請求書No 取引会社No 取引会社名 品物 金額
13243243 100 海山商事 ミカン 100
13243244 200 天空商事 だいこん 399
13243251 300 地底商事 ねこ 500
13243252 400 宇宙商事 ほし 999
13243253 200 天空商事 トマト 250

MYSQL「HAVING」条件付き取得※グループ化後(GROUP BY)

MYSQL「HAVING」条件付き取得

  • グループ化(GROUP BY)の後に条件による絞り込みをする。
  • 集約関数をつかった条件の絞込み。

ちょこっとメモ

「HAVING」で集約関数つかわないと?

  • 動作はするが、MYSQLの処理速度が大きく落ちる原因の一端になる。
  • 「WHERE」で記述が基本ルールなので、非推奨。

記述位置

「GROUP BY」句の次、「ORDER BY」句の前

mysql>SELECT [カラム名1,...][集計関数1,...]
mysql>FROM テーブル名
mysql>WHERE 条件式
mysql>GROUP BY 集計キー1, ...
mysql>HAVING 集計関数利用の条件式
mysql>ORDER BY ソートキー1 [DESC],...
mysql>LIMIT 行数

書き方「HAVING 集約関数 演算子 値」

使用テーブル

<テーブルA>

請求書No 取引会社No 取引会社名 品物 金額
13243243 100 海山商事 ミカン 100
13243244 200 天空商事 だいこん 399
13243245 300 地底商事 うさぎ 45
13243246 400 宇宙商事 たぬき 32
13243247 100 海山商事 リンゴ 150
13243248 200 天空商事 ニンジン 201
コード「HAVING」条件付き取得※グループ化後(GROUP BY)

SELECT 集約キー1,集約関数1
FROM テーブル名
GROUP BY 集約キー1
HAVING 集約関数をともなった条件式;

mysql>SELECT 取引会社名, SUM(金額) AS 合計金額
mysql>FROM テーブルA
mysql>GROUP BY 取引会社名
mysql>HAVING SUM(金額) >= 200;

表示イメージ

取引会社名 合計金額
天空商事 399
海山商事 370

MYSQL「集計関数:MIN」最小値+「GROUP BY」グループ化

「集計関数:MIN」最小値

  • 指定カラムの最小値を取得。
  • 集計関数を一度に、複数、重複して使用もOK。
  • カラムの型:数値、日付※一番過去のもの、文字列※辞書順一番前方

記述位置

「SELET」句に記述。

mysql>SELECT [カラム名1,...][集計関数1,...]
mysql>FROM テーブル名
mysql>WHERE 条件式
mysql>GROUP BY 集計キー1, ...
mysql>HAVING 集計関数利用の条件式
mysql>ORDER BY ソートキー1 [DESC],...
mysql>LIMIT 行数

書き方「集計関数:MIN」最小値+「GROUP BY」グループ化

使用するテーブル

<テーブルA>

請求書No 取引会社No 取引会社名 品物 金額
13243243 100 海山商事 ミカン 100
13243244 200 天空商事 だいこん 399
13243245 300 地底商事 うさぎ 45
13243246 400 宇宙商事 たぬき 32
13243247 100 海山商事 リンゴ 150
13243248 200 天空商事 ニンジン 201
「集計関数:MIN」のみ:全体の最低金額

SELECT MIN(カラム名)

mysql>SELECT MIN(金額) AS 最低金額
mysql>FROM テーブルA;

表示イメージ

最低金額
32
「集計関数:MIN」+ 「GROUP BY」:取引会社ごとの最低金額

SELECT 集約キー1, MAX(カラム名) ~
GROUP BY 集約キー1;

mysql>SELECT 取引会社名, MIN(金額) AS 最低金額
mysql>FROM テーブルA
mysql>GROUP BY 取引会社名;

表示イメージ

取引会社名 最低金額
宇宙商事 32
地底商事 45
天空商事 201
海山商事 100

MYSQL「集計関数:MAX」最大値+「GROUP BY」グループ化

「集計関数:MAX」最大値

  • 指定カラムの最大値を取得。
  • 集計関数を一度に、複数、重複して使用もOK。
  • カラムの型:数値、日付※一番未来のもの、文字列※辞書順一番後ろ

記述位置

「SELET」句に記述。

mysql>SELECT [カラム名1,...][集計関数1,...]
mysql>FROM テーブル名
mysql>WHERE 条件式
mysql>GROUP BY 集計キー1, ...
mysql>HAVING 集計関数利用の条件式
mysql>ORDER BY ソートキー1 [DESC],...
mysql>LIMIT 行数

書き方「集計関数:MAX」最大値+「GROUP BY」グループ化

使用するテーブル

<テーブルA>

請求書No 取引会社No 取引会社名 品物 金額
13243243 100 海山商事 ミカン 100
13243244 200 天空商事 だいこん 399
13243245 300 地底商事 うさぎ 45
13243246 400 宇宙商事 たぬき 32
13243247 100 海山商事 リンゴ 150
13243248 200 天空商事 ニンジン 201
「集計関数:MAX」のみ:全体の最高金額

SELECT MAX(カラム名)

mysql>SELECT MAX(金額) AS 最高金額
mysql>FROM テーブルA;

表示イメージ

最高金額
399
「集計関数:MAX」+ 「GROUP BY」:取引会社ごとの最高金額

SELECT 集約キー1, MAX(カラム名) ~
GROUP BY 集約キー1;

mysql>SELECT 取引会社名, MAX(金額) AS 最高金額
mysql>FROM テーブルA
mysql>GROUP BY 取引会社名;

表示イメージ

取引会社名 最高金額
宇宙商事 32
地底商事 45
天空商事 201
海山商事 150

MYSQL「集計関数:AVG」平均値+「GROUP BY」グループ化

「集計関数:AVG」平均値

  • 指定カラムの平均値を計算。
    • ※「NULL」は無視。よって、分母は、「NULL」以外の行数
  • 集計関数を一度に、複数、重複して使用もOK。
  • カラムの型:数値のみ。

記述位置

「SELET」句に記述。

mysql>SELECT [カラム名1,...][集計関数1,...]
mysql>FROM テーブル名
mysql>WHERE 条件式
mysql>GROUP BY 集計キー1, ...
mysql>HAVING 集計関数利用の条件式
mysql>ORDER BY ソートキー1 [DESC],...
mysql>LIMIT 行数

書き方「集計関数:AVG」平均値+「GROUP BY」グループ化

使用するテーブル

<テーブルA>

請求書No 取引会社No 取引会社名 品物 金額
13243243 100 海山商事 ミカン 100
13243244 200 天空商事 だいこん 399
13243245 300 地底商事 うさぎ 45
13243246 400 宇宙商事 たぬき 32
13243247 100 海山商事 リンゴ 150
13243248 200 天空商事 ニンジン 201
「集計関数:AVG」のみ:全体の平均金額

SELECT AVG(数値カラム)

mysql>SELECT AVG(金額) AS 平均金額
mysql>FROM テーブルA;

表示イメージ

平均金額
154.5
「集計関数:AVG」+ 「GROUP BY」:取引会社ごとの1回あたりの平均金額

SELECT 集約キー1, AVG(金額) ~
GROUP BY 集約キー1;

mysql>SELECT 取引会社名, AVG(金額) AS 平均金額 
mysql>FROM テーブルA
mysql>GROUP BY 取引会社名;

表示イメージ

取引会社名 平均金額
宇宙商事 32.0
地底商事 45.0
天空商事 300.0
海山商事 125.0

MYSQL「集計関数:SUM」合計値+「GROUP BY」グループ化

「集計関数:SUM」合計値

  • 指定カラムの合計値を計算。※「NULL」は無視。
  • 集計関数を一度に、複数、重複して使用もOK。
  • カラムの型:数値のみ。

記述位置

「SELET」句に記述。

mysql>SELECT [カラム名1,...][集計関数1,...]
mysql>FROM テーブル名
mysql>WHERE 条件式
mysql>GROUP BY 集計キー1, ...
mysql>HAVING 集計関数利用の条件式
mysql>ORDER BY ソートキー1 [DESC],...
mysql>LIMIT 行数

書き方「集計関数:SUM」合計値+「GROUP BY」グループ化

使用するテーブル

<テーブルA>

請求書No 取引会社No 取引会社名 品物 金額
13243243 100 海山商事 ミカン 100
13243244 200 天空商事 だいこん 399
13243245 300 地底商事 うさぎ 45
13243246 400 宇宙商事 たぬき 32
13243247 100 海山商事 リンゴ 150
13243248 200 天空商事 ニンジン 201
「集計関数:SUM」のみ:全体の総金額

SELECT SUM(数値カラム)

mysql>SELECT SUM(金額) AS 総金額
mysql>FROM テーブルA;

表示イメージ

総金額
927
「集計関数:SUM」+ 「GROUP BY」:取引会社ごとの合計取引金額

SELECT 集約キー1, SUM(金額) ~
GROUP BY 集約キー1;

mysql>SELECT 取引会社名, SUM(金額) AS 合計金額 
mysql>FROM テーブルA
mysql>GROUP BY 取引会社名;

表示イメージ

取引会社名 合計金額
宇宙商事 32
地底商事 45
天空商事 600
海山商事 250

MYSQL「集計関数:COUNT」行(件)数+「GROUP BY」グループ化

「集計関数:COUNT」行(件)数

  • 指定カラムが「NULL」以外の行数をカウント。
  • 集計関数を一度に、複数、重複して使用もOK。
  • カラムの型:全てOK

記述位置

「SELET」句に記述。

mysql>SELECT [カラム名1,...][集計関数1,...]
mysql>FROM テーブル名
mysql>WHERE 条件式
mysql>GROUP BY 集計キー1, ...
mysql>HAVING 集計関数利用の条件式
mysql>ORDER BY ソートキー1 [DESC],...
mysql>LIMIT 行数

書き方「集計関数:COUNT」行(件)数+「GROUP BY」グループ化

使用するテーブル

<テーブルA>

請求書No 取引会社No 取引会社名 品物 金額
13243243 100 海山商事 ミカン 100
13243244 200 天空商事 だいこん 399
13243245 300 地底商事 うさぎ 45
13243246 400 宇宙商事 たぬき 32
13243247 100 海山商事 リンゴ 150
13243248 200 天空商事 ニンジン 201
「集計関数:COUNT」のみ:全体の請求書枚数

SELECT COUNT(*)

mysql>SELECT COUNT(*) AS 全請求書数 
mysql>FROM テーブルA;

表示イメージ

全請求書数
6
「集計関数:COUNT」+ 「GROUP BY」:取引会社ごとの請求書枚数

SELECT 集約キー1, COUNT(*) ~
GROUP BY 集約キー1;

mysql>SELECT 取引会社名, COUNT(*) AS 請求書数 
mysql>FROM テーブルA
mysql>GROUP BY 取引会社名;

表示イメージ

取引会社名 請求書数
宇宙商事 1
地底商事 1
天空商事 2
海山商事 2