Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【Unity】Unity Hubの表示を日本語にする

Unityはインストール直後はメニュー等は英語で表記されるはず。

これを日本語表記にする方法。

  1. 左上のPreferencesアイコン(ギザギザの丸)をクリック。Preferencesウィンドウが表示される。
  2. 左側メニュー「Appearance」をクリック。
  3. 右側「Language」のプルダウンメニューをクリック。デフォルトは「English」だが「日本語」をクリック。
  4. 表示がすべて日本語に変わるはず。右上の×印をクリックすれば、最初のウィンドウに戻る。

【MySQL】select文の結果からテーブルを作成する

create table as文を使う。as句にselect文を書けばよい。以下は、二つのテーブルcharaとseiyuを内部結合した結果からchara_vcという新しいテーブルを作成した例。

mysql> show tables;
+--------------------+
| Tables_in_princess |
+--------------------+
| chara              |
| seiyu              |
+--------------------+
2 rows in set (0.00 sec)
mysql> select * from chara;
+------------------+-------------------+------+------------+
| name             | title             | no   | vc         |
+------------------+-------------------+------+------------+
| ライスシャワー   | ウマ娘            |   30 | miwami01   |
| スーパークリーク | ウマ娘            |   45 | kyuki01    |
| メイショウドトウ | ウマ娘            |   58 | mwatada01  |
| ライザ           | ライザのアトリエ2 |    1 | ynoguchi01 |
| フィー           | ライザのアトリエ2 |    2 | mwatada01  |
| 黒川あかね       | 推しの子          |    6 | miwami01   |
+------------------+-------------------+------+------------+
6 rows in set (0.00 sec)
mysql> select * from seiyu;
+-----------+------------+
| id        | name       |
+-----------+------------+
| miwami01  | 岩見舞菜香 |
| kyuki01   | 優木かな   |
| mwatada01 | 和多田美咲 |
| machico01 | Machico    |
+-----------+------------+
4 rows in set (0.00 sec)
mysql> select chara.name, seiyu.name as vc, chara.title
    -> from chara join seiyu on chara.vc = seiyu.id;
+------------------+------------+-------------------+
| name             | vc         | title             |
+------------------+------------+-------------------+
| ライスシャワー   | 岩見舞菜香 | ウマ娘            |
| スーパークリーク | 優木かな   | ウマ娘            |
| メイショウドトウ | 和多田美咲 | ウマ娘            |
| フィー           | 和多田美咲 | ライザのアトリエ2 |
| 黒川あかね       | 岩見舞菜香 | 推しの子          |
+------------------+------------+-------------------+
5 rows in set (0.00 sec)
mysql> create table chara_vc as
    -> select chara.name, seiyu.name as vc, chara.title
    -> from chara join seiyu on chara.vc = seiyu.id;
Query OK, 5 rows affected (0.04 sec)
Records: 5  Duplicates: 0  Warnings: 0
mysql> show tables;
+--------------------+
| Tables_in_princess |
+--------------------+
| chara              |
| chara_vc           |
| seiyu              |
+--------------------+
3 rows in set (0.00 sec)
mysql> select * from chara_vc;
+------------------+------------+-------------------+
| name             | vc         | title             |
+------------------+------------+-------------------+
| ライスシャワー   | 岩見舞菜香 | ウマ娘            |
| スーパークリーク | 優木かな   | ウマ娘            |
| メイショウドトウ | 和多田美咲 | ウマ娘            |
| フィー           | 和多田美咲 | ライザのアトリエ2 |
| 黒川あかね       | 岩見舞菜香 | 推しの子          |
+------------------+------------+-------------------+
5 rows in set (0.00 sec)

なお、create table as文はSQLの標準規格には含まれない機能であることに注意。

【PowerShell】複数のテキストファイルを連結する

Get-ChildItemコマンドレット、Get-Contentコマンドレット、Set-Contentコマンドレットを組み合わせて使う。以下は二つのCSVファイルを連結してall.csvに書き出した例。連結して出力したいだけの場合は単純に組み合わせればよい。例えば各ファイルの一行目だけ取り除く場合はSelect-Objectコマンドレットに-skipオプションを付けて実行すればよい。

PS > (Get-ChildItem seiyu*.csv).Name
seiyu1.csv
seiyu2.csv
PS > Get-Content seiyu1.csv
no,seiyu
8,大橋彩香
30,石見舞菜香
45,優木かな
58,和多田美咲
PS > Get-Content seiyu2.csv
no,seiyu
1,安野希世乃
2,鈴木みのり
3,小清水亜美
4,西田望見
5,東山奈央
PS > Get-ChildItem seiyu*.csv | % {Get-Content $_} | Set-Content all.csv
PS > Get-Content all.csv
no,seiyu
8,大橋彩香
30,石見舞菜香
45,優木かな
58,和多田美咲
no,seiyu
1,安野希世乃
2,鈴木みのり
3,小清水亜美
4,西田望見
5,東山奈央
PS > Get-ChildItem seiyu*.csv | % {Get-Content $_ | Select-Object -skip 1} | Set-Content all.csv
PS > Get-Content .\all.csv
8,大橋彩香
30,石見舞菜香
45,優木かな
58,和多田美咲
1,安野希世乃
2,鈴木みのり
3,小清水亜美
4,西田望見
5,東山奈央

【PowerShell】ファイルの拡張子を一括で更新する

Get-ChildItemコマンドレットとRename-Itemコマンドレットを組み合わせて使う。以下はカレントディレクトリに置かれた拡張子.tifのファイルの拡張子をすべて.pngに更新した例。

PS > Get-ChildItem *.png | Rename-Item -NewName {$_.Name -replace "\.png$", ".tif"}

エイリアスを使うと少し短く書くことができる。

PS > dir *.png | ren -NewName {$_.Name -replace "\.png$", ".tif"}

【MySQL】複数の値のいずれかに一致する(いずれにも一致しない)行だけを取り出す

in句を使う。in句の後に( )の中に値を列記すればよい。いずれにも一致しない行を取り出す場合はnot in句を使う。以下は、あらかじめ用意したテーブルumamusumeに条件を指定して行を取り出した例

mysql> select * from umamusume;
+------+------------------+------------+------------+---------------------+
| no   | name             | prizemoney | seiyu      | dummydate           |
+------+------------------+------------+------------+---------------------+
|    8 | ウオッカ         |    13.0487 | 大橋彩香   | 2031-02-03 00:00:00 |
|   30 | ライスシャワー   |     6.6686 | 石見舞菜香 | 2032-11-12 00:00:00 |
|   45 | スーパークリーク |      5.561 | 優木かな   | 2033-11-12 00:00:00 |
|   58 | メイショウドトウ |     9.2133 | 和多田美咲 | 2033-12-31 00:00:00 |
+------+------------------+------------+------------+---------------------+
4 rows in set (0.00 sec)
mysql> select * from umamusume where name = 'ライスシャワー';
+------+----------------+------------+------------+---------------------+
| no   | name           | prizemoney | seiyu      | dummydate           |
+------+----------------+------------+------------+---------------------+
|   30 | ライスシャワー |     6.6686 | 石見舞菜香 | 2032-11-12 00:00:00 |
+------+----------------+------------+------------+---------------------+
1 row in set (0.00 sec)
mysql> select * from umamusume
    -> where
    -> name = 'ライスシャワー' or name = 'メイショウドトウ';
+------+------------------+------------+------------+---------------------+
| no   | name             | prizemoney | seiyu      | dummydate           |
+------+------------------+------------+------------+---------------------+
|   30 | ライスシャワー   |     6.6686 | 石見舞菜香 | 2032-11-12 00:00:00 |
|   58 | メイショウドトウ |     9.2133 | 和多田美咲 | 2033-12-31 00:00:00 |
+------+------------------+------------+------------+---------------------+
2 rows in set (0.00 sec)
mysql> select * from umamusume
    -> where name in ('ライスシャワー', 'メイショウドトウ');
+------+------------------+------------+------------+---------------------+
| no   | name             | prizemoney | seiyu      | dummydate           |
+------+------------------+------------+------------+---------------------+
|   30 | ライスシャワー   |     6.6686 | 石見舞菜香 | 2032-11-12 00:00:00 |
|   58 | メイショウドトウ |     9.2133 | 和多田美咲 | 2033-12-31 00:00:00 |
+------+------------------+------------+------------+---------------------+
2 rows in set (0.00 sec)
mysql> select * from umamusume
    -> where name not in ('ライスシャワー', 'メイショウドトウ');
+------+------------------+------------+----------+---------------------+
| no   | name             | prizemoney | seiyu    | dummydate           |
+------+------------------+------------+----------+---------------------+
|    8 | ウオッカ         |    13.0487 | 大橋彩香 | 2031-02-03 00:00:00 |
|   45 | スーパークリーク |      5.561 | 優木かな | 2033-11-12 00:00:00 |
+------+------------------+------------+----------+---------------------+
2 rows in set (0.00 sec)

【Vim】編集中のファイルの文字コードを確認する

以下のコマンドを実行すれば、表示される。

:set fenc

PowerShellで以下の手順で四種類(Shift_JISUTF-8のBOM付き、UTF-16のビッグエンディアンBOM付き、UTF-16のリトルエンディアンBOM付き)の文字コードからなるテキストファイルをそれぞれ作成する。

PS > $PSVersionTable.PSVersion
Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  4046
PS > "ライスシャワー役の石見舞菜香さんかわいい" | Out-File -Encoding default sjis.txt
PS > "ライスシャワー役の石見舞菜香さんかわいい" | Out-File -Encoding utf8 utf8wb.txt
PS > "ライスシャワー役の石見舞菜香さんかわいい" | Out-File -Encoding bigendianunicode utf16bewb.txt
PS > "ライスシャワー役の石見舞菜香さんかわいい" | Out-File -Encoding unicode utf16lewb.txt

それぞれ上記のコマンドを実行した際の表示は以下のとおり。

Shift_JIS
→fileencoding=cp932
UTF-8 BOM付き
→fileencoding=utf-8
UTF-16ビッグエンディアンBOM付き
→fileencoding=utf-16
UTF-16リトルエンディアンBOM付き
→fileencoding=utf-16le

【MySQL】二つのテーブルを一つに結合(内部結合)する

内部結合(結合すべき行がない行は出力しない結合)するには、join句を使う。以下はあらかじめ用意した二つのテーブル(charaとseiyu)を内部結合した例。結合相手がない左側(chara)の4行目と右側(seiyu)の4行目は出力されていないことがわかる。

mysql> select * from chara;
+------------------+-------------------+------+------------+
| name             | title             | no   | vc         |
+------------------+-------------------+------+------------+
| ライスシャワー   | ウマ娘            |   30 | miwami01   |
| スーパークリーク | ウマ娘            |   45 | kyuki01    |
| メイショウドトウ | ウマ娘            |   58 | mwatada01  |
| ライザ           | ライザのアトリエ2 |    1 | ynoguchi01 |
| フィー           | ライザのアトリエ2 |    2 | mwatada01  |
| 黒川あかね       | 推しの子          |    6 | miwami01   |
+------------------+-------------------+------+------------+
6 rows in set (0.00 sec)
mysql> select * from seiyu;
+-----------+------------+
| id        | name       |
+-----------+------------+
| miwami01  | 岩見舞菜香 |
| kyuki01   | 優木かな   |
| mwatada01 | 和多田美咲 |
| machico01 | Machico    |
+-----------+------------+
4 rows in set (0.00 sec)
mysql> select chara.name, chara.title, seiyu.name
    -> from chara join seiyu
    -> on chara.vc = seiyu.id;
+------------------+-------------------+------------+
| name             | title             | name       |
+------------------+-------------------+------------+
| ライスシャワー   | ウマ娘            | 岩見舞菜香 |
| スーパークリーク | ウマ娘            | 優木かな   |
| メイショウドトウ | ウマ娘            | 和多田美咲 |
| フィー           | ライザのアトリエ2 | 和多田美咲 |
| 黒川あかね       | 推しの子          | 岩見舞菜香 |
+------------------+-------------------+------------+
5 rows in set (0.00 sec)

【MySQL】二つのテーブルを一つに結合(完全外部結合)する

MySQLには完全外部結合(左右すべての行を必ず出力する結合)をする命令は搭載されていない。union演算子を使うことで同等の処理を行うことができる。結合相手がない左側(chara)の4行目と右側(seiyu)の4行目は列にNULLが挿入されて出力されていることがわかる。

mysql> select * from chara;
+------------------+-------------------+------+------------+
| name             | title             | no   | vc         |
+------------------+-------------------+------+------------+
| ライスシャワー   | ウマ娘            |   30 | miwami01   |
| スーパークリーク | ウマ娘            |   45 | kyuki01    |
| メイショウドトウ | ウマ娘            |   58 | mwatada01  |
| ライザ           | ライザのアトリエ2 |    1 | ynoguchi01 |
| フィー           | ライザのアトリエ2 |    2 | mwatada01  |
| 黒川あかね       | 推しの子          |    6 | miwami01   |
+------------------+-------------------+------+------------+
6 rows in set (0.00 sec)
mysql> select * from seiyu;
+-----------+------------+
| id        | name       |
+-----------+------------+
| miwami01  | 岩見舞菜香 |
| kyuki01   | 優木かな   |
| mwatada01 | 和多田美咲 |
| machico01 | Machico    |
+-----------+------------+
4 rows in set (0.00 sec)
mysql> select chara.name, seiyu.name from chara
    -> left join seiyu
    -> on vc = id
    -> union
    -> select chara.name, seiyu.name from chara
    -> right join seiyu
    -> on vc = id;
+------------------+------------+
| name             | name       |
+------------------+------------+
| ライスシャワー   | 岩見舞菜香 |
| スーパークリーク | 優木かな   |
| メイショウドトウ | 和多田美咲 |
| ライザ           | NULL       |
| フィー           | 和多田美咲 |
| 黒川あかね       | 岩見舞菜香 |
| NULL             | Machico    |
+------------------+------------+
7 rows in set (0.01 sec)