12,982
回編集
(→照合順序とは) |
(→概要) |
||
1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
<br><br> | |||
== テーブルの作成 == | |||
==== 文字コード ==== | |||
テーブルの作成時において、文字コードを指定する。<br> | |||
<syntaxhighlight lang="mysql"> | |||
CREATE TABLE <テーブル名> ( | |||
<カラム名 1> <型名> | |||
<カラム名 2> <型名> | |||
-- ...略 | |||
CHARACTER SET=utf8mb4 -- 文字コードをutf8mb4に指定する場合 | |||
); | |||
</syntaxhighlight> | |||
<br> | |||
MySQLのデフォルトの文字コードを確認する。<br> | |||
<syntaxhighlight lang="mysql"> | |||
Show Variables Like "chara%"; | |||
</syntaxhighlight> | |||
<br> | |||
MySQLのデフォルトの文字コードを設定する場合は、my.cnfファイルを編集する。<br> | |||
<u>my.cnfファイルを変更した後は、MySQLを再起動する必要がある。</u><br> | |||
<syntaxhighlight lang="ini"> | |||
# my.cnfファイル | |||
[mysqld] | |||
character-set-server=utf8mb4 # MySQLサーバのデフォルトの文字コードを指定する | |||
[client] | |||
default-character-set=utf8mb4 # MySQLクライアントのデフォルトの文字コードを指定する | |||
</syntaxhighlight> | |||
<br> | |||
既存のテーブルの文字コードは、INFORMATION_SCHEMAデータベースのTABLESテーブルから確認することができる。<br> | |||
<code>TABLE_COLLATION</code>カラムの値が、そのテーブルに設定された文字コードに相当する。<br> | |||
<syntaxhighlight lang="mysql"> | |||
SELECT TABLE_NAME,TABLE_COLLATION | |||
FROM INFORMATION_SCHEMA.TABLES | |||
WHERE TABLE_SCHEMA='<データベース名>'; | |||
</syntaxhighlight> | |||
<br> | |||
既存のテーブルの文字コードを変更する。<br> | |||
<syntaxhighlight lang="mysql"> | |||
ALTER TABLE <テーブル名> CONVERT TO CHARACTER SET <文字コード>; | |||
# 例: 文字コードをutf8mb4に変更 | |||
ALTER TABLE <テーブル名> CONVERT TO CHARACTER SET utf8mb4 | |||
</syntaxhighlight> | |||
<br> | |||
==== 既存のテーブルの存在を確認して作成 ==== | |||
既存のテーブルが存在していない場合はテーブルを作成する。<br> | |||
これは、テーブルの重複、または、既存のテーブルを上書き/削除することを防ぐことができる。<br> | |||
<syntaxhighlight lang="mysql"> | |||
CREATE TABLE IF NOT EXISTS <テーブル名> ( | |||
<カラム名 1> <型名> | |||
CHARACTER SET=utf8mb4 -- 文字コード | |||
COLLATE utf8mb4_general_ci -- 照合順序 | |||
); | |||
</syntaxhighlight> | |||
<br> | |||
==== テーブルのクローニングおよびコピー ==== | |||
<code>CREATE TABLE ... LIKE</code>文、または、<code>CREATE TABLE ... AS SELECT</code>文を使用して、<br> | |||
元のテーブルに定義されているカラム属性やインデックス等、別のテーブルの定義に基づいて空のテーブルを作成する。<br> | |||
<syntaxhighlight lang="mysql"> | |||
CREATE TABLE <新しいテーブル名> LIKE <クローン元のテーブル名>; | |||
-- または | |||
CREATE TABLE <新しいテーブル名> AS SELECT * FROM <クローン元のテーブル名>; | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||