• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL文について)

MYSQLで選手表と成績表を作成するSQLとエラーの原因

このQ&Aのポイント
  • MYSQLで選手表と成績表を作成するためのSQL文がエラーを出す理由について解説します。
  • 選手表と成績表のテーブル作成SQLには、データ型の不一致があります。
  • データ作成SQLで、外部キー制約が設定されていないためにエラーが発生します。

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

  • ベストアンサー
  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.4

---------- ○ここは、 mysql>mysql データベース名;  でENTERをしてから、 CREATE TABLE RESULTS ( GID char(8) NOT NULL, PID char(4) NOT NULL, SCORE int(11) NOT NULL, PRIMARY KEY (GID,PID) ); とすればよいのでしょうか? ---------- はい、その通りです。 CREATE TABLE文やINSERT文はSQL文なので、mysqlコマンドを実行して"mysql>"となったところで上記のSQL文を実行します。

その他の回答 (3)

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.3

ERROR 1064 (42000)はSQL文の文法が間違っている場合に出るエラーです。 > CREATE TABLE PLAYERS( > PID char(4) NOT NULL, > PNAME varchar(255)NOT ' at line 1 上記を見たところ、"varchar(255)NOT"となっています。 正しくは"varchar(255) NOT"で、")"と"N"の間に半角スペースが必要になります。

marukozozo
質問者

補足

もう一度質問です。 >データベースを作成するにはmysqlコマンドを立ち上げて、そこで"create database データベース名;"を実行します。 これで指定した名前を持つデータベースが作成されます。 ○ここまではできました。 >続いてmysqlコマンドを一旦終了させて、次は"mysql データベース名"と入力してmysqlコマンドを実行して下さい。 これで先に作成したデータベースに接続した状態でmysqlコマンドが立ち上がります。 後はこの状態で前回回答させて頂いたSQL文を実行して下さい。 なお、mysqlコマンド実行時に「Access denied」のエラーが出るようでしたら、"mysql -u ユーザー名 -p データベース名"とコマンド入力して下さい。 ○ここは、 mysql>mysql データベース名;  でENTERをしてから、 CREATE TABLE RESULTS ( GID char(8) NOT NULL, PID char(4) NOT NULL, SCORE int(11) NOT NULL, PRIMARY KEY (GID,PID) ); とすればよいのでしょうか?

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.2

> ERROR 1046(3D000): No database selected 前回の質問に対しては、データベース作成済みを前提に回答してしまいました。 すみません。 各テーブルを作成する前にデータベースを作成する必要があります。 (MySQLをインストールした段階ではユーザが使えるデータベースが存在しないので・・・) データベースを作成するにはmysqlコマンドを立ち上げて、そこで"create database データベース名;"を実行します。 これで指定した名前を持つデータベースが作成されます。 続いてmysqlコマンドを一旦終了させて、次は"mysql データベース名"と入力してmysqlコマンドを実行して下さい。 これで先に作成したデータベースに接続した状態でmysqlコマンドが立ち上がります。 後はこの状態で前回回答させて頂いたSQL文を実行して下さい。 なお、mysqlコマンド実行時に「Access denied」のエラーが出るようでしたら、"mysql -u ユーザー名 -p データベース名"とコマンド入力して下さい。

marukozozo
質問者

補足

ありがとうございます。 >データベースを作成するにはmysqlコマンドを立ち上げて、そこで"create database データベース名;"を実行します。 これで指定した名前を持つデータベースが作成されます。 はうまくいったのですが、 >続いてmysqlコマンドを一旦終了させて、次は"mysql データベース名"と入力してmysqlコマンドを実行して下さい。 これで先に作成したデータベースに接続した状態でmysqlコマンドが立ち上がります。 がうまくいきません。taterというデータベース名にしました 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 'mysql tater CREATE TABLE PLAYERS( PID char(4) NOT NULL, PNAME varchar(255)NOT ' at line 1 となりました。

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.1

質問番号#5146376で回答させて頂いたものです。 'CREATE TABLE'文と'INSERT'文でSQLエラーが発生するとのことですが、どのようなエラーが発生しているかエラーメッセージ等が分かれば教えて頂けませんか?

marukozozo
質問者

補足

ありがとうございました。 これです。 ERROR 1046(3D000): No database selected とあります。

関連するQ&A