○データベースを指定し、テーブルの中身を表示する
mysql> select * from sadachika_books.sadachika_novel; *データベース名sadachika_books テーブル名sadachika_novel
Empty set (0.00 set) *中身が無いみたい
select * from test.test16;
str1 str2
abc abc
あいう あいう
abc abc
abc abc
abc abc
select * from test.test17;
str1 str2 str3
abc abc abc
ABC ABC ABC
abc abc abc
ABC ABC ABC
mysql> select * from test.test18;
str1 str2
山 山
定近 定近
定近 定近
○省略文を使ってデータベースを指定する
mysql> USE test;
mysql> USE sadachika_books; *データベースを指定する
mysql> SHOW TABLES;
mysql> \u sadachika_books *省略文 後ろのコロンなし
mysql> select database();
database();
sadachika_books
mysql> \u test *省略文 データベースを指定する
Database changed
mysql> select database();
database()
test
mysql> SHOW TABLES;
Tables_in_test
test
test1
test10
test11
test12
test13
test14
test15
test16
test17
test18
test2
test3
test4
test5
test6
test7
test8
test9
mysql -u root -p test *データベースを指定して起動する。
mysql -u root -p sadachika_books *データベースを指定して起動する。
現在接続しているデータベースを確認するにはdatabase関数を使用する。
select database();
sadachika_books
1 row in set (0.05 sec)
○○文字セットと照合順序を指定してデータベース(フォルイダ)を作成
mysql> create database cp932db character set cp932; *お手本
mysql> create database sadachika_cp932db character set cp932; *文字セットcp932入力 照合順序なし
mysql> show databases;
information_schema *以下でこの中身を見ていきます
books
goods
mysql
performance_schema
personal
sadachika
sadachika_books
sadachika_cp932db *dbはデータベースの略 任意の目印
sadachika_eucjpdb
sakila
salesdb
sampledb040
test
world
mysql> \u information_schema *省略文 データベースを指定する
mysql> SHOW TABLES;
Tables_in_information_schema
CHARACTER_SET
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
COLUMN_PRIVILEGES
ENGINES
EVENTS
FILES
GLOBAL_STATUS
GLOBAL_VARIABLES
以下もっと続く
○全データベースの文字セットと照合順序を表示させる。
INFORMATION_SCHEMA.SCHEMATA
mysql> SELECT * FROM INFORMATION_SCHEMA.SCHEMATA;
mysql> SELECT * FROM INFORMATION_SCHEMA.SCHEMATA\G *全データベースの文字セットと照合順序が表示される
○○文字セットと照合順序を指定してデータベース(フォルダ)を作成
mysql> create database sadachika_eucjpdb character set eucjpms collate eucjpms_bin; *文字セットeucjpms 照合順序eucjpms_binの順で入力
サクラエディタでデータベースsadachika_eucjpdbの中のdb.optを開いてみる
default-character-set=eucjpms *文字セット
default-collation=eucjpms_bin *照合順序
○データベース(フォルダ)の文字セットと照合順序を確認する。
mysql> select * from information_schema.schemata
-> where schema_name = 'sadachika_eucjpdb'\G
*************************** 1.row ********************
CATALOG_NAME: def
SCHEMA_NAM: sadachika_eucjpdb
DEFAULT_CHARACTER_SET_NAME: eucjpms *文字セット
DEFAULT_COLLATION_NAME: eucjpms_bin *照合順序
SQL_PATH: NULL
1 row in set (0.00 set)
デフォルトの文字セットがeucjpmsに設定されていることが確認できます。
また照合順序もeucjpmsのデフォルト照合順序のeucjpms_japanese_ciではなく指定したeucjpms_binに設定されていることが確認できます。
○○文字セットと照合順序を指定してデータベース(フォルダ)を作成
*mysql> create database sadachika_cp932db2 character set cp932; *文字セットcp932 照合順序入力なし
サクラエディタでデータベースsadachika_eucjpdbの中のdb.optを開いてみる
default-character-set=cp932
default-collation=cp932_japanese_ci *なぜか照合順序が自動で設定されている
○データーベースを削除する場合は以下
mysql> drop database sadachika2_cp932db;
○データベース(フォルダ)の文字セットと照合順序を確認する。
mysql> select * from information_schema.schemata
-> where schema_name = 'sadachika_cp932db'\G *データベスを指定して文字セットと照合順序を表示させる
*************************** 1.row ********************
CATALOG_NAME: def
SCHEMA_NAM: sadachika_cp932db
DEFAULT_CHARACTER_SET_NAME: cp932
DEFAULT_COLLATION_NAME: cp932_japanese_ci *なぜか照合順序が自動で設定されている
SQL_PATH: NULL
1 row in set (0.00 set)
mysql> SHOW DATABASES;
Database
information_schema
books
goods 増えた
mysql
performance_schema
personal
sadachika
sadachika_books
sadachika_cp932db *増えた テーブルは入っていません
sadachika_ecujpdb *増えた テーブルは未作成
sakila
salesdb
sampledb040
test
world
○文法を忘れそうなので書いておく
余分○作成したテーブル(sadachika_books)の定義を確認してみる。
USE sadachika_books;
mysql> show create table sadachika_magazine\G
*********** 1. row **************
Table: sadachika_magazine
Create Table: CREATE TABLE 'sadachika_magazine'(
'sada_id' int(11) DEFAULT NULL *カムラの名前sada_id、INT型で理解することにしておく。
) ENGINE=InnoDB DEFAULT CHARSET=utf8 *確かに文字セットと照合順序を指定してデータベース(フォルダ)を作成した設定になっている。
1 row in set (0.00 sec)
*↑InnoDBを変えたりするには、mysql> create table sadachika_novel(sada_id int) engine=MyISAM; *INT型 MyISAMと入力
○データベース(フォルダ)の文字セットと照合順序を確認する。
mysql> select * from information_schema.schemata
-> where schema_name = 'sadachika_books'\G
*************************** 1.row ********************
CATALOG_NAME: def
SCHEMA_NAM: sadachika_books
DEFAULT_CHARACTER_SET_NAME: utf8
DEFAULT_COLLATION_NAME: utf8_general_ci *設定する場合の参考mysql> create database sadachika_eucjpdb character set eucjpms collate eucjpms_bin;
SQL_PATH: NULL
1 row in set (0.00 set)
○EUCJPMS とりあえず何かデータベース(sadachika_eucjpdb)内にテーブル(sada2_t text)を作ってテーブルの定義を見なきゃね
USE sadachika_eucjpdb;
mysql> create table sadachika_text_table(sada_t2 text2); 入力失敗 型に数字入れてるんだもん駄目だわな
mysql> create table sadachika_text(sada_t2 text2); 入力失敗 型に数字入れてるんだもん駄目だわな
mysql> create table sadachika_text(sada_t text); 入力OK
mysql> create table sadachika_text2(sada_t text); 入力OK
mysql> create table sadachika1_text(sada1_t text); 入力OK
mysql> create table sadachika2_text(sada2_t text); これに値を入力していきます
○テーブルを削除する場合はこんな感じ
mysql> drop table sadachika_text;
mysql> drop table sadachika_text2;
mysql> drop table sadachika1_text;
○「sadachika2_text」テーブルの構造を見る。 カラムの設定が見れます。桁数、NULL値が無い場合の表示方法など
mysql> show columns from sadachika2_text;
Field Type Null Key Default Extra
sada2_t text YES NULL
○作成したテーブル(sadachika2_text)の定義を確認してみる
mysql> show create table sadachika2_text\G
*********** 1. row **************
Table: sadachika2_text
Create Table: CREATE TABLE 'sadachika2_text'(
'sada2_t' text COLLATE eucjpms_bin *カムラの名前sada2_t、TEXT型で理解することにしておく。
) ENGINE=InnoDB DEFAULT CHARSET=eucjpms COLLATE=eucjpms_bin *確かに文字セットと照合順序を指定してデータベース(フォルダ)を作成した設定になっている。
1 row in set (0.00 sec) *mysql> create database sadachika_eucjpdb character set eucjpms collate eucjpms_bin;
*↑InnoDBを変えたりするには、mysql> create table sadachika_novel(sada_id int) engine=MyISAM; *INT型 MyISAMと入力
○データベースデレクトリ(sadachika_eucjpdb;)フォルダ内に以下の2つのファイルが作成される
sadachika2_text.frm *テーブル定義の保存
sadachika2_text.ibd
○サクラエディタでデータベースデレクトリ(sadachika_cp932db)フォルダ内のdb.optファイルを開いてみる
default-character-set=eucjpms
default-collation=eucjpms_bin
現在接続しているデータベースを確認するにはdatabase関数を使用します。次のように入力して下さい。
mysql> select database();
sadachika_eucjpdb
○入力してみる
mysql> insert into sadachika2_text(sada2_t) values('abc'); *ノーマルに入力した
mysql> insert into sadachika2_text(sada2_t) values('abc '); *後ろに半角スペースを入力
mysql> insert into sadachika2_text(sada2_t) values(' abc '); *前後に半角スペースを挿入
mysql> insert into sadachika2_text(sada2_t) values('sadachika'); *小文字のアルファベット
mysql> insert into sadachika2_text(sada2_t) values('SADACHIKA'); *大文字のアルファベット
mysql> insert into sadachika2_text(sada2_t) values('SADACHIKA '); *後ろに半角スペースを入力
mysql> insert into sadachika2_text(sada2_t) values('定近'); *漢字を入力してみる
mysql> insert into sadachika2_text(sada2_t) values('定近 '); *後ろに半角スペースを入力
mysql> insert into sadachika2_text(sada2_t) values(' 定近 '); *前後に半角スペースを入力してみる
mysql> insert into sadachika2_text(sada2_t) values('2013'); *数字のテスト ただシングルクォーテーションだから文字として記録されるんだろうと思う
mysql> insert into sadachika2_text(sada2_t) values('2013 '); *後ろに半角スペース
mysql> insert into sadachika2_text(sada2_t) values(' 2013 '); *前後に半角スペース
mysql> insert into sadachika2_text(sada2_t) values('201306'); *2013の検索でかかるかテスト 結果はかからない
mysql> insert into sadachika2_text(sada2_t) values('2013 6 '); *半角スペースを間に入れて数字を入力してみた
○テーブルの中身の表示
mysql> select * from sadachika_eucjpdb.sadachika2_text;
sada2_t
abc
abc
abc
sadachika
SADACHIKA
SADACHIKA
定近
定近
定近
2013
2013
2013
201306
2013 6
○テーブルの中身を表示 プログラムの文法テスト
\u sadachika_eucjpdb *USE省略文
mysql> select concat('(',sada2_t,')')from sadachika2_text;
concat('(',sada2_t,')')
(abc) *ノーマルに入力した
(abc ) *後ろに半角スペースを入力
( abc ) *前後に半角スペースを挿入
(sadachika) *小文字のアルファベット
(SADACHIKA) *大文字のアルファベット
(SADACHIKA ) *後ろに半角スペースを入力
(定近) *漢字を入力してみる
(定近 ) *後ろに半角スペースを入力
( 定近 ) *前後に半角スペースを入力してみる
(2013) *数字のテスト ただシングルクォーテーションだから文字として記録されるんだろうと思う
(2013 ) *後ろに半角スペース
( 2013 ) *前後に半角スペース
(201306) *2013の検索でかかるかテスト 結果はかからない
(2013 6 ) *半角スペースを間に入れて数字を入力してみた
○CP932 とりあえず何かデータベース(sadachika_cp932db)内にテーブル(sada_t text)を作ってテーブルの定義を見なきゃね
USE sadachika_cp932db;
mysql> create table sadachika_text(sada_t text);
○「sadachika_text」テーブルの構造を見る。 カラムの設定が見れます。桁数、NULL値が無い場合の表示方法など
mysql> describe test2; *プログラムの文法を忘れるので書いておく
mysql> show columns from test2; *同じ結果
mysql> show columns from sadachika_text;
Field Type Null Key Default Extra
sada_t text YES NULL
○作成したテーブル(sadachika_text)の定義を確認してみる
mysql> show create table sadachika_text\G
*********** 1. row **************
Table: sadachika_text
Create Table: CREATE TABLE 'sadachika_text'(
'sada_t' text *カムラの名前sada_t、TEXT型で理解することにしておく。
) ENGINE=InnoDB DEFAULT CHARSET=cp932 *確かに文字セットと照合順序を指定してデータベース(フォルダ)を作成した設定になっている。
1 row in set (0.00 sec) *mysql> create database sadachika_cp932db character set cp932;
*↑InnoDBを変えたりするには、mysql> create table sadachika_novel(sada_id int) engine=MyISAM; *INT型 MyISAMと入力
○データベースデレクトリ(sadachika_cp932db)フォルダ内に以下の2つのファイルが作成される
sadachika_text.frm テーブル定義の保存
sadachika_text.ibd
○サクラエディタでデータベースデレクトリ(sadachika_cp932db)フォルダ内のdb.optファイルを開いてみる
default-character-set=cp932
default-collation=cp932_japanese_ci
○テーブルを削除する場合はこんな感じ
mysql> drop table sadachika_text;
○入力してみる
mysql> insert into sadachika_text(sada_t) values('abc'); *ノーマルに入力した
mysql> insert into sadachika_text(sada_t) values('abc '); *後ろに半角スペースを入力
mysql> insert into sadachika_text(sada_t) values(' abc '); *前後に半角スペースを挿入
mysql> insert into sadachika_text(sada_t) values('sadachika'); *小文字のアルファベット
mysql> insert into sadachika_text(sada_t) values('SADACHIKA'); *大文字のアルファベット
mysql> insert into sadachika_text(sada_t) values('SADACHIKA '); *後ろに半角スペースを入力
mysql> insert into sadachika_text(sada_t) values('定近'); *漢字を入力してみる
mysql> insert into sadachika_text(sada_t) values('定近 '); *後ろに半角スペースを入力
mysql> insert into sadachika_text(sada_t) values(' 定近 '); *前後に半角スペースを入力してみる
mysql> insert into sadachika_text(sada_t) values('2013'); *数字のテスト ただシングルクォーテーションだから文字として記録されるんだろうと思う
mysql> insert into sadachika_text(sada_t) values('2013 '); *後ろに半角スペース
mysql> insert into sadachika_text(sada_t) values(' 2013 '); *前後に半角スペース
mysql> insert into sadachika_text(sada_t) values('201306'); *2013の検索でかかるかテスト 結果はかからない
mysql> insert into sadachika_text(sada_t) values('2013 6 '); *半角スペースを間に入れて数字を入力してみた
○テーブルの中身の表示
mysql> select * from sadachika_cp932db.sadachika_text; *データベース テーブルの順
sada_t
abc
abc
abc
sadachika
SADACHIKA
SADACHIKA
定近
定近
定近
2013
2013
2013
201306
2013 6
○テーブルの中身の表示 プログラムの文法テスト
\u sadachika_cp932db *USE省略文
mysql> select concat('(',sada_t,')')from sadachika_text;
concat('(',sada_t,')')
(abc) *ノーマルに入力した
(abc ) *後ろに半角スペースを入力
( abc ) *前後に半角スペースを挿入
(sadachika) *小文字のアルファベット
(SADACHIKA) *大文字のアルファベット
(SADACHIKA ) *後ろに半角スペースを入力
(定近) *漢字を入力してみる
(定近 ) *後ろに半角スペースを入力
( 定近 ) *前後に半角スペースを入力してみる
(2013) *数字のテスト ただシングルクォーテーションだから文字として記録されるんだろうと思う
(2013 ) *後ろに半角スペース
( 2013 ) *前後に半角スペース
(201306) *2013の検索でかかるかテスト 結果はかからない
(2013 6 ) *半角スペースを間に入れて数字を入力してみた
○データベースを削除する場合こんな感じ
DROP DATABASE db_name;
mysql> drop database cp932db;
再度データベースの一覧を確認
show databases;
○前回のコマンドでの警告を表示する
mysql> show warnings;
○データベースの属性を変更する方法を確認します。
まずテスト用のデータベースを作ってみる
mysql> create database sadachika_eucjpdb02test character set eucjpms collate eucjpms_bin; *文字セットeucjpms 照合順序eucjpms_binの順で入力
サクラエディタでdb.optファイルを開いてみる
default-character-set=eucjpms
default-collation=eucjpms_bin
○データベース(フォルダ)の文字セットと照合順序を確認する。
mysql> select * from information_schema.schemata
-> where schema_name = 'sadachika_eucjpdb02test'\G
*************************** 1.row ********************
CATALOG_NAME: def
SCHEMA_NAM: sadachika_eucjpdb02test
DEFAULT_CHARACTER_SET_NAME: eucjpms
DEFAULT_COLLATION_NAME: eucjpms_bin
SQL_PATH: NULL
1 row in set (0.00 set)
○デフォルト文字セットと照合順序の変更です。
mysql> ALTER DATABASE db_name
CHARACTER SET charset_name COLLATE collation_name;
mysql> ALTER DATABASE sadachika_eucjpdb02test
CHARACTER SET cp932 COLLATE cp932_japanese_ci; *eucjpmsをcp932に、eucjpms_binをcp932_japanese_ciに変更してみた
mysql> select * from information_schema.schemata
-> where schema_name = 'sadachika_eucjpdb02test'\G
*************************** 1.row ********************
CATALOG_NAME: def
SCHEMA_NAM: sadachika_eucjpdb02test
DEFAULT_CHARACTER_SET_NAME: cp932 *変更された
DEFAULT_COLLATION_NAME: cp932_japanese_ci *変更された
SQL_PATH: NULL
1 row in set (0.00 set)
○もう一度変更をテストしてみる。
mysql> alter database sadachika_eucjpdb02test character set utf8; *cp932からUTF8へ変更
mysql> select * from information_schema.schemata
-> where schema_name = 'sadachika_eucjpdb02test'\G
*************************** 1.row ********************
CATALOG_NAME: def
SCHEMA_NAM: sadachika_eucjpdb02test
DEFAULT_CHARACTER_SET_NAME: utf8
DEFAULT_COLLATION_NAME: utf8_general_ci
SQL_PATH: NULL
1 row in set (0.00 set)
あくまで変更以降に作成されるテーブルのデフォルトの文字セットに影響があるだけとのこと
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。