Python 目次
- どんな言語
- 環境構築
- ブラウザ上で利用できるPython実行環境
- Pythonシステム全体の構造図
- 言語内容
- リスト
- タプル
- 集合
- 辞書
- 数 取得
- ソート
- 標準出力
- 型確認
- 型変換
- シーケンス型 共通{文字列、バイト列、タプル、リスト、range など}
- 変数
- 関数定義
- 制御
- テスト・デバッグ
- その他
- 組み込み関数
どんな言語
汎用性が高く、文法がシンプルで、Web上の情報や学習方法も豊富。
- 分野
- ウェブ開発
- データサイエンス
- Excelの自動化
- AIの開発
- 事務作業の自動化
- インタプリタ(対話モード)
- ソースコードの文字コード:UTF-8 ※変換も可能。
環境構築
ブラウザ上で利用できるPython実行環境
Pythonシステム全体の構造図
言語内容
特殊記述
定数
数値
文字
strメソッド
Unicodeコード
リスト
dequeオブジェクト
リスト操作
タプル
集合
辞書
一覧表示
- Python - list(辞書型):Key 一覧 (リスト変換)
- Python - 辞書型.keys():Key 一覧
- Python - 辞書型.values():値 一覧
- Python - 辞書型.items():Key と Value 一覧
- Python - Key [not] in 辞書型:Key 有無
数 確認
値 取得
複製
変更・更新
- Python - 辞書型[key] = value:Keyに対する値 変更
- Python - 辞書型.update():複数 更新
- Python - 辞書型.setdefault():Keyがない場合、新規登録。ある場合、Keyに対する値 取得
削除
数 取得
ソート
標準出力
表示フォーマット
参考:コンテストに・・・
型確認
型変換
- Python - int():int(整数)型に変換
- Python - float():float(実数)型に変換
- Python - str():str(文字列)型に変換
- Python - list():文字単位→リストへ変換
シーケンス型 共通{文字列、バイト列、タプル、リスト、range など}
数 取得
追加
複製
削除
- Python - シーケンス型.remove():要素削除
- Python - シーケンス型.pop():インデックスの要素を取得/削除
- Python - del s[from:to[:each]]:インデックスで削除
逆順
変数
関数定義
- Python 関数、引数、戻り値
- Python ラムダ式(無名関数)
- Python スコープ『変数・関数』
- Python 「return文」・・・関数を終了し、値を返す(返値)
- Python 再帰関数 例:接頭辞・接尾辞リスト、べき乗、マージソート
コラム
制御
演算子
条件分岐
ループ
中断
テスト・デバッグ
その他
組み込み関数
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 |