Visual Studio Codeの環境を丸ごと移行する方法です。
2つのディレクトリをコピーすることで簡単に移行することができます。
バージョン:1.69.2
ディレクトリ名 | パス |
---|---|
.vscode | %USERPROFILE%\.vscode |
User | %APPDATA%\Code\User |
ディレクトリ名 | パス |
---|---|
.vscode | ~/.vscode |
User | ~/Library/Application Support/Code/User |
.で始まるディレクトリなので、隠しファイルを表示する設定にしておいてください。
エクスプローラーの表示 > 隠しファイルにチェックを入れればOKです。
Macでの方法はこちら[Mac 隠しファイルを表示する]
SQLの行挿入(INSERT
)で、カラム名を省略することができます。
まず、通常はこのようにします。
INSERT INTO `TEST_TABLE` (id, name, age) VALUES (1, '赤井', 23);
カラム名を省略する場合、このようになります。
INSERT INTO `TEST_TABLE` VALUES (1, '赤井', 23);
ここで、カラムname
がデフォルト値「名無」という設定だったとします。
カラムname
を「名無」で登録したい場合はデフォルトの値を使ってもらうという意味のDEFAULT
を使います。
INSERT INTO `TEST_TABLE` VALUES (1, DEFAULT, 23);
また、もしこの時、カラムid
にAUTO_INCREMENT
が設定されていたら、次のIDがいくつかを取得して挿入しないといけないですよね。
しかしそんなことは面倒です。
そんな時はDEFAULT
、もしくはNULL
と指定すればOKです。
INSERT INTO `TEST_TABLE` VALUES (DEFAULT, '赤井', 23);
NULLでも可
INSERT INTO `TEST_TABLE` VALUES (NULL, '赤井', 23);
こうすることにより、AUTO_INCREMENT
で次のIDにて挿入されます。
JOIN句を使って複数のテーブルを結合するとき、結びつけるカラムにNULLが含まれる場合があるとデータが抽出されません。
これは「NULL = NULL」がtrueにならないからだそうです。
そんなときは以下のようにすると抽出することができます。
SELECT * FROM TEST_TABLE1 INNER JOIN TEST_TABLE2 AS TEST_T2 ON TEST_T1.id = TEST_T2.id AND ((TEST_T1.name = TEST_T2.name) OR (TEST_T1.name IS NULL AND TEST_T2.name IS NULL));
もしくは以下のようでもOKです。
AND IFNULL(TEST_T1.name, '') = IFNULL(TEST_T2.name, '');
こちらはNULL安全等価演算子(宇宙船演算子)を使うことで解決できます。
別の記事にしましたので、そちらをご覧ください。
MySQLのNULL安全等価演算子(宇宙船演算子)
SQLのORDER BY句では、特定のカラムを昇順や降順に並べ替えることができます。
更にCASE式を使えば任意の並び順にすることも可能です。
今回は、特定のカラムがNULLとなる場合があるテーブルで、NULLは最後にまとめて表示し、それ以外は昇順の表示になるようにしてみたいと思います。
例として以下のようなテーブルがあったとします。
id | name | age |
---|---|---|
1 | 赤井 | 35 |
2 | 池田 | 22 |
3 | 内山 | NULL |
4 | 江崎 | 54 |
5 | 太田 | NULL |
年齢の昇順でデータを表示してみましょう。
SELECT * FROM TEST_TABLE ORDER BY age;
そうすると、NULLが先に表示され、それ以降が年齢の昇順という形になるかと思います。
id | name | age |
---|---|---|
3 | 内山 | NULL |
5 | 太田 | NULL |
2 | 池田 | 22 |
1 | 赤井 | 35 |
4 | 江崎 | 54 |
これを、NULLは最後にまとめて表示し、それ以外を年齢の昇順で表示したい…というのが今回の焦点でしたね。
そのような場合にORDER BY句でCASEの条件式を使います。
SELECT * FROM TEST_TABLE ORDER BY CASE WHEN age IS NULL THEN 2 ELSE 1 END, age;
このようにORDER BY句でCASE式を使用し、年齢がNULLの場合の優先順位を下げてあげるわけです。
その後、年齢の昇順を指定しているので、実行結果の並び順は以下のようになります。
id | name | age |
---|---|---|
2 | 池田 | 22 |
1 | 赤井 | 35 |
4 | 江崎 | 54 |
3 | 内山 | NULL |
5 | 太田 | NULL |
ただし、パフォーマンスはあまりよくないようなので、大規模なデータベースで使うのは避けたほうが良いかもしれません。
使いようによっては便利なので、是非一度試してみてください。