こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

テーブル作成時のエラーについて(Mysql 5.1.30)

SQLを勉強始めたばかりの超初心者です。
先日勉強のため、Mysql ver.5.1.30をDLしてインストールしました。
名簿テーブルを作成しようとMySQL Command Line Clientから以下のコマンドを入力しました。
mysql> create table 名簿(
-> 姓 varchar(12),
-> 名 varchar(12),
-> 生年月日 date);
実行すると以下のエラーが表示されます。
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '名簿(

姓 varchar(12),
名 varchar(12),
生年月日 date)' at line 1

これは何が間違っているのでしょうか?
テキストどおりに入力しているのですが、テーブルが作成できないため次に進めません。
周りに詳しいものもいないため困っています。
ぜひご教授よろしくお願いします。

投稿日時 - 2008-12-06 09:48:12

QNo.4533690

すぐに回答ほしいです

質問者が選んだベストアンサー

> 業務などで使用する場合もテーブル名やカラムは半角英数字なのでしょうか?

"触らぬものに祟りなし"です。
あえて不都合が起こるかもしれない日本語を使用する必要もないかと。
それでも「日本語で行く」というのなら自己責任の域になります。
ただ、業務で使う場合は仕事上支障が出るため趣味の範囲での使用に留めておくのがよいかと。

> データで日本語を登録することはあまり好ましくないことなのでしょうか?

実際にデータベースに記録しておくデータにはもちろん日本語を使用してOKです。
(肝心なデータに日本語が使えないと困ります)
使ってはいけないのはデータベース名・テーブル名といった部分です。

> 日本語のデータを挿入しようとするとエラーになり困っています。

どのようなエラーが出ているのか分かりませんが、データ部分を括るのは ` ではなく ' です。


INSERT INTO `list` (`firstname`,`lastname`,`birthday`) VALUES ('太郎','山田','2000/10/10');

投稿日時 - 2008-12-06 18:04:59

お礼

ありがとうございます。
あれから本屋に行ってきました。
やはり他の解説書はデータテーブル名・カラム名は半角英数字になってました。
私のテキストはいけないですね・・・汗

>どのようなエラーが出ているのか分かりませんが、データ部分を括るのは ` ではなく ' です。

おかげさまでレコードの挿入はできました。

ただ
select * from (テーブル名);
を実行すると、日本語で登録した部分が文字化けして表示されます。

status;
を実行すると
tServer characterset: sjis
Db characterset: sjis
Client characterset: sjis
Conn. characterset: sjis

になっているのですが・・・
ぜひご教授よろしくお願いします。

投稿日時 - 2008-12-06 22:51:03

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

http://oshiete1.goo.ne.jp/qa4534408.html
でも質問されていますがここかもう一方のどちらかを終了させましょう。
同じ質問を複数のスレで立てるのはよくありません。

> 日本語で登録した部分が文字化けして表示されます。

http://oshiete1.goo.ne.jp/qa4534408.html
の方で回答されている方の回答を見ましょう。
SET NAMESを発行してからINSERTやSELECTするのがベストです。
発行は接続する度に行う必要があります。
(文字化けはINSERTの時点で起こっているかもしれませんのでその場合は一度削除してINSERTし直しまたはUPDATEで置き換えしないといけません)
また、設定で文字コードを変更されたようですが、変更前に作成されたテーブルは作成時の文字コードのままで変更はされません。

投稿日時 - 2008-12-07 02:06:36

ANo.2

MySQLでは括る文字が ` と決まっているだけす。
PostgreSQLだと " になります。
なお、最初にも書いた通りこれらに日本語は使うべきではありません。
他の要因(例えば文字コード)で正常に動かない場合もありますので半角英数字を使用するのがベストです。

投稿日時 - 2008-12-06 14:07:33

お礼

回答ありがとうございました。
決まりなんですね。
業務などで使用する場合もテーブル名やカラムは半角英数字なのでしょうか?
データで日本語を登録することはあまり好ましくないことなのでしょうか?
使用しているテキストがテーブル名やカラム名を日本語で登録しており、データ挿入も日本語になっています。
日本語のデータを挿入しようとするとエラーになり困っています。
???がいっぱいです。
初歩的な質問で申し訳ございません。

投稿日時 - 2008-12-06 15:55:05

ANo.1

テーブル名やカラム名に日本語(多バイト文字)は使用しないのが推奨されています。
また、もし使う場合は必ず括らないといけません。
(本来は日本語使うかどうかに限らず括るものですが)

create table `名簿`(
`姓` varchar(12),
以下略

投稿日時 - 2008-12-06 10:00:08

お礼

早速の回答ありがとうございました。
>テーブル名やカラム名に日本語(多バイト文字)は使用しないのが推>奨されています。
>また、もし使う場合は必ず括らないといけません。

問題解決しました。
日本語等を使用する際には'○○'や"○○"ではなく、`○○`で行うものなのでしょうか?
`○○`で行うと正常にできましたが、'○○'や"○○"ではエラーになってしまいました。

投稿日時 - 2008-12-06 10:22:04

あなたにオススメの質問