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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

4回答

2202閲覧

テーブル作成時の文法エラー

pokkapokalemon

総合スコア11

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2015/11/04 09:00

こんにちは!
現在、データベースについて勉強しはじめました。
そこで、基本的と思われる文法エラーが出たのですが、MySQLのリファレンスを読んでも該当箇所がわからず解決しないため、質問させていただきます。

より詳細に箇条書きいたします。

  • 参考書:JavaデベロッパーのためのEclipse完全攻略
  • そこに載っていたやり方、すなわちMySQL Command Lineを用いてのDB作成をしている過程
  • お手本はうまく作れたので、以前自分で作ったjsp&サーブレットに絡めるため、文字列:Name,Mail,Add及び数値:Tel,Sexを扱えるDBの作成を試み、DB作成ののちテーブルとカラム作成のため以下のコマンドを入力
create table user( Name varchar(8), Sex int, Tel int, Mail varchar(20), Add varchar(50) );
  • すると、以下のエラーが表示される。

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 'Add(50))' at line 6

以上です。
シンタックスエラーというのが文法間違いらしいということが検索で分かり、またエラー文にマニュアルを読めとあるのでリファレンスも調べましたが、いまいちどこに間違いが存在するかわかりません。
varcharをnchar等で試してみてもうまくいかず、自分では思いつくものがなくなったため今回に至ります。
皆さまお忙しいところ初歩的で失礼いたしますが、よろしくお願いいたします。

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

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

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

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

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

guest

回答4

0

回答者の皆さまありがとうございました。
今回は、一番早かった方にBAを設定させていただきます。
どなたの意見もそれぞれ参考になりました。
また何かあれば、よろしくお願いいたします。

投稿2015/11/04 09:18

pokkapokalemon

総合スコア11

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

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

0

ADDはMYSQLの予約語です。使うのを避けた方がいいです。どうしても使いたければ、バッククォートで囲んでください。
なお、アドレスを表す略語は、ADRSやADDRが普通です。

投稿2015/11/04 09:12

編集2015/11/04 09:18
otn

総合スコア84529

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

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

pokkapokalemon

2015/11/04 09:16

ありがとうございます。 ADRSを使用するのが一般的なのですね! 自習のため、そういった現場の慣習等を教えていただけるとより一層賢くなったと嬉しく感じられ、学習のモチベーションになります。 ありがとうございます。
guest

0

AddがMySQLの予約語だからです。
https://dev.mysql.com/doc/refman/5.6/ja/reserved-words.html

カラム名を別の名前に変更すれば、うまく行くと思います。

投稿2015/11/04 09:05

編集2015/11/04 09:06
KiyoshiMotoki

総合スコア4791

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

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

pokkapokalemon

2015/11/04 09:09

ありがとうございます。 なるほど、予約語の件については想定できていませんでした。 てっきりカッコや形式の問題だとばかり思っていて、見落としてしまいました。 今後はその点も注意してプログラミング学習を進めようと思います。 助かりました。
guest

0

ベストアンサー

Addが予約語だからですかねー…

SQL

1create table user( 2Name varchar(8), 3Sex int, 4Tel int, 5Mail varchar(20), 6`Add` varchar(50) 7);

こうすれば作れますけれど、予約語のカラムを作るのはおすすめできないので、きちんとAddressとしたほうが良いですね。

投稿2015/11/04 09:05

編集2015/11/04 09:07
anonymouskawa

総合スコア856

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

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

pokkapokalemon

2015/11/04 09:13

ありがとうございました、予約語は盲点でした。 なるほど、やろうと思えばゴリ押しも可能ではありますが、やはり不精せずに名前を作成したほうがいいのですね。 のちのトラブル防止のためにも、推奨いただいた予約語を避ける方法をとって取り組もうと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問