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
これは何が間違っているのでしょうか?
テキストどおりに入力しているのですが、テーブルが作成できないため次に進めません。
周りに詳しいものもいないため困っています。
ぜひご教授よろしくお願いします。
No.3ベストアンサー
- 回答日時:
> 業務などで使用する場合もテーブル名やカラムは半角英数字なのでしょうか?
"触らぬものに祟りなし"です。
あえて不都合が起こるかもしれない日本語を使用する必要もないかと。
それでも「日本語で行く」というのなら自己責任の域になります。
ただ、業務で使う場合は仕事上支障が出るため趣味の範囲での使用に留めておくのがよいかと。
> データで日本語を登録することはあまり好ましくないことなのでしょうか?
実際にデータベースに記録しておくデータにはもちろん日本語を使用してOKです。
(肝心なデータに日本語が使えないと困ります)
使ってはいけないのはデータベース名・テーブル名といった部分です。
> 日本語のデータを挿入しようとするとエラーになり困っています。
どのようなエラーが出ているのか分かりませんが、データ部分を括るのは ` ではなく ' です。
例
INSERT INTO `list` (`firstname`,`lastname`,`birthday`) VALUES ('太郎','山田','2000/10/10');
ありがとうございます。
あれから本屋に行ってきました。
やはり他の解説書はデータテーブル名・カラム名は半角英数字になってました。
私のテキストはいけないですね・・・汗
>どのようなエラーが出ているのか分かりませんが、データ部分を括るのは ` ではなく ' です。
おかげさまでレコードの挿入はできました。
ただ
select * from (テーブル名);
を実行すると、日本語で登録した部分が文字化けして表示されます。
status;
を実行すると
tServer characterset: sjis
Db characterset: sjis
Client characterset: sjis
Conn. characterset: sjis
になっているのですが・・・
ぜひご教授よろしくお願いします。
No.4
- 回答日時:
でも質問されていますがここかもう一方のどちらかを終了させましょう。
同じ質問を複数のスレで立てるのはよくありません。
> 日本語で登録した部分が文字化けして表示されます。
http://oshiete1.goo.ne.jp/qa4534408.html
の方で回答されている方の回答を見ましょう。
SET NAMESを発行してからINSERTやSELECTするのがベストです。
発行は接続する度に行う必要があります。
(文字化けはINSERTの時点で起こっているかもしれませんのでその場合は一度削除してINSERTし直しまたはUPDATEで置き換えしないといけません)
また、設定で文字コードを変更されたようですが、変更前に作成されたテーブルは作成時の文字コードのままで変更はされません。
No.2
- 回答日時:
MySQLでは括る文字が ` と決まっているだけす。
PostgreSQLだと " になります。
なお、最初にも書いた通りこれらに日本語は使うべきではありません。
他の要因(例えば文字コード)で正常に動かない場合もありますので半角英数字を使用するのがベストです。
回答ありがとうございました。
決まりなんですね。
業務などで使用する場合もテーブル名やカラムは半角英数字なのでしょうか?
データで日本語を登録することはあまり好ましくないことなのでしょうか?
使用しているテキストがテーブル名やカラム名を日本語で登録しており、データ挿入も日本語になっています。
日本語のデータを挿入しようとするとエラーになり困っています。
???がいっぱいです。
初歩的な質問で申し訳ございません。
No.1
- 回答日時:
テーブル名やカラム名に日本語(多バイト文字)は使用しないのが推奨されています。
また、もし使う場合は必ず括らないといけません。
(本来は日本語使うかどうかに限らず括るものですが)
create table `名簿`(
`姓` varchar(12),
以下略
早速の回答ありがとうございました。
>テーブル名やカラム名に日本語(多バイト文字)は使用しないのが推>奨されています。
>また、もし使う場合は必ず括らないといけません。
問題解決しました。
日本語等を使用する際には'○○'や"○○"ではなく、`○○`で行うものなのでしょうか?
`○○`で行うと正常にできましたが、'○○'や"○○"ではエラーになってしまいました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL MYSQL エラー 2 2022/10/18 11:37
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一つ前に戻るには…
-
mysqlで外部キーをつけたカラム...
-
挿入先テーブルに存在しないレ...
-
矛盾していないでしょうか?
-
python2.5を使用してSQLite3の...
-
最大値を持つレコードを削除したい
-
SQL、2つのテーブルで条件一致...
-
テーブル名をカラムとして取得...
-
Accessでデータシートに同じデ...
-
他のデータベースとのテーブル結合
-
update文で改行を入れる
-
sqlplusで表示が変なので、出力...
-
Oracleで上書きImportはできま...
-
一致するデータのみ削除したい
-
単純なselectが遅くなるのです...
-
SQL*LoaderでCSVから指定した列...
-
Accessのテーブルデータを一気...
-
テーブルに存在しない列をselec...
-
複数のテーブルの項目を同時に...
-
PostgreSQLの断片化の状況を確...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一つ前に戻るには…
-
mysqlでJOIN文
-
最大値を持つレコードを削除したい
-
mysqlのフィールド名
-
PHP上のSQLで、SELECT文をいく...
-
グループからランダムに抽出す...
-
SQL一発でカレンダー表示は可能...
-
SQL文による残業時間の算出につ...
-
【ストアドプロシージャ】条件...
-
mysqlで外部キーをつけたカラム...
-
ビューに追加・削除が出来ません。
-
MySQL INSERT文 エラー
-
複数の列にまたがってユニーク...
-
テーブルの名前の付け方
-
テーブル作成時のエラーについ...
-
MySQLのテーブル設計について
-
外部キー、親を調べるにはshow ...
-
1列について重複行を除いて全列...
-
複数テーブルからselect
-
副問合せ?の書き方
おすすめ情報