質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

4回答

40667閲覧

myaql はカラム、テーブルに日本語は使えますか?

vetom

総合スコア8

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

1クリップ

投稿2017/10/10 09:06

###前提・実現したいこと
myaql はカラム、テーブルに日本語は使えますか?
テーブルを作ろうとしたときにエラーが出ました。
そもそも不可能なのか、設定次第でどうにかなるのか知りたいです。

###発生している問題・エラーメッセージ

エラーメッセージ

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 ''日付' date,
'費目' int,
'メモ'  varchar(100),
'入金' at line 2

経過時間: 0 時間, 0 分, 0 秒, 0 ミリ秒。

###該当のソースコード

sql

1create table kakeibo( 2 '日付'  date, 3 '費目'  int, 4 'メモ'  varchar(100), 5 '入金額' int, 6 '出金額' int 7); 8 9create table kakeibo( 10 日付  date, 11 費目  int, 12 メモ  varchar(100), 13 入金額 int, 14 出金額 int 15);

###試したこと

mysql -u root -p

Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 68
Server version: 5.1.37-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show variables like "chara%";
+--------------------------+--------------------------+
| Variable_name | Value |
+--------------------------+--------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\MySQL\share\charsets\ |
+--------------------------+--------------------------+
8 rows in set (0.00 sec)

試しにこれは成功しました

sql

1CREATE TABLE book 2( 3id INT(11), 4category_id INT(11), 5title VARCHAR(64), 6author_name VARCHAR(32), 7detail TEXT, 8price INT(11), 9image VARCHAR(64) 10);

###補足情報(言語/FW/ツール等のバージョンなど)
version MySql_5.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

tacsheavenさんに同じくテーブル名やカラム名に日本語を使うことはおすすめしません。
OracleのバージョンアップでsjisからUnicodeに変わったらsjisで2バイトだったマルチバイト文字がUnicodeでは3バイトになって、データベース・オブジェクトのネーミング規則 で30バイトを超えてエラーが続出して、、、号泣。

投稿2017/10/10 18:27

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

バッククオートで括って見て下さい。

SQL

1create table kakeibo( 2 `日付`  date, 3 `費目`  int, 4 `メモ`  varchar(100), 5 `入金額` int, 6 `出金額` int 7);

投稿2017/10/10 09:16

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

設定さえきちんとしていれば作れますが、mysqlコンソール自体が弾く可能性もあるので
プログラムやphpMyAdminなどUIを利用したほうがいいでしょう

投稿2017/10/10 09:09

yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

MySQLのマニュアル(CREATE TABLE)にあるように、

許可されるテーブル名のルールは、セクション9.2「スキーマオブジェクト名」に示されています。デフォルトでは、テーブルは InnoDB ストレージエンジンを使用して、デフォルトデータベース内に作成されます。テーブルがすでに存在する場合、デフォルトデータベースが存在しない場合、またはデータベースが存在しない場合はエラーが発生します。

から、セクション 9.2 を読むと、

データベース、テーブル、インデックス、カラム、エイリアス、ビュー、ストアドプロシージャー、パーティション、テーブルスペース、その他のオブジェクト名など、MySQL 内のある種のオブジェクトは、識別子として知られています。

識別子は引用符で囲むことも囲まないこともあります。識別子に特殊文字が含まれている場合、または識別子が予約語である場合、その識別子を参照するときは必ず引用符で囲む必要があります。(例外: 修飾名内でピリオドのあとに続く予約語は識別子である必要があるため、引用符で囲む必要はありません。)予約語はセクション9.3「予約語」に記載されています。

識別子は内部で Unicode に変換されます。以下の文字を含めることができます。

引用符で囲まれていない識別子で許可される文字。 ASCII: [0-9,a-z,A-Z$_] (基本的なラテン文字、0-9 の数字、ドル、下線) 拡張: U+0080 ..U+FFFF 引用符で囲まれている識別子で許可される文字には、U+0000 を除き、完全な Unicode Basic Multilingual Plane (BMP) が含まれます。 ASCII: U+0001 ..U+007F 拡張: U+0080 ..U+FFFF

ASCII NUL (U+0000) と補助文字 (U+10000 以上) は、引用符で囲まれた識別子または引用符で囲まれていない識別子では許可されません。

識別子引用符文字は逆引用符 (「`」) です。

とあるように、引用符で囲まずとも使えますし、逆引用符で囲んでやれば確実に使えます。挙げられた例だと ' で囲んでいたので、構文上正しくありません。

なんですが、日本語で付けるのはあまりお勧めしません。

投稿2017/10/10 09:17

編集2017/10/10 09:40
tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問