- ベストアンサー
MYSQLで選手表と成績表を作成するSQLとエラーの原因
- MYSQLで選手表と成績表を作成するためのSQL文がエラーを出す理由について解説します。
- 選手表と成績表のテーブル作成SQLには、データ型の不一致があります。
- データ作成SQLで、外部キー制約が設定されていないためにエラーが発生します。
- みんなの回答 (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)
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"の間に半角スペースが必要になります。
- x_jouet_x
- ベストアンサー率68% (162/236)
> ERROR 1046(3D000): No database selected 前回の質問に対しては、データベース作成済みを前提に回答してしまいました。 すみません。 各テーブルを作成する前にデータベースを作成する必要があります。 (MySQLをインストールした段階ではユーザが使えるデータベースが存在しないので・・・) データベースを作成するにはmysqlコマンドを立ち上げて、そこで"create database データベース名;"を実行します。 これで指定した名前を持つデータベースが作成されます。 続いてmysqlコマンドを一旦終了させて、次は"mysql データベース名"と入力してmysqlコマンドを実行して下さい。 これで先に作成したデータベースに接続した状態でmysqlコマンドが立ち上がります。 後はこの状態で前回回答させて頂いたSQL文を実行して下さい。 なお、mysqlコマンド実行時に「Access denied」のエラーが出るようでしたら、"mysql -u ユーザー名 -p データベース名"とコマンド入力して下さい。
補足
ありがとうございます。 >データベースを作成するには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)
質問番号#5146376で回答させて頂いたものです。 'CREATE TABLE'文と'INSERT'文でSQLエラーが発生するとのことですが、どのようなエラーが発生しているかエラーメッセージ等が分かれば教えて頂けませんか?
補足
ありがとうございました。 これです。 ERROR 1046(3D000): No database selected とあります。
補足
もう一度質問です。 >データベースを作成するには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) ); とすればよいのでしょうか?