• ベストアンサー
  • 困ってます

SQL文でダブルクォートか

SQL文でダブルクォートかアポストロフィーか迷っています!?  以下のSQL文の  name varchar(30) not null default " ,等の  最後から2番目に " ダブルクォートがあります。  教本を見ながら入力したのですが、' ' アポストロフィーが2個あるようにも見えます。 この場合、どちらが正規でしょうか!    以下問題のSQL文です。  よろしくお願いします。 CREATE DATABASE xmas; USE xmas; book_id int not null auto_increment, name varchar(30) not null default " , org varchar(50) not null default ", addr varchar(80) not null default", tel varchar(20) default ", mail varchar(40) default ", course varchar(30) default ", nums integer default 0, PRIMARY KEY (book_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数336
  • ありがとう数8

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

  • ベストアンサー
  • 回答No.1

シングルクォーテーション2つです。  default '' と書くことで、列の初期値は空文字列にするという意味になります。 ぱっと見では確かに紛らわしいですが、 ダブルクォーテーションだとおかしいという判断力を身につけましょう。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。  すみません_ _  昨夜は、寝ぼけ気味で変な書き込みをしてしまいました。 A:シングルクォーテーション2つです。 了解しました^^  さっそく,プログラムの修正を行います。

質問者からの補足

ありがとうございます A:ダブルクォーテーションだとおかしい? だから  シングルクォーテーション2つが正解でしょか!?  よくわかりません?  白黒はっきりしたいです  あやふやでは、エラーのもとですので!    よろしくお願いします^^  

関連するQ&A

  • SQL文を入力したらエラー

     phpMyAdminでSQLに  以下の文を入力しました。  CREATE DATABASE xmas; USE xmas; CREATE TABLE xmastran ( book_id int not null auto_increment, name varchar(30) not null default ' ' , org varchar(50) not null default ' ', addr varchar(80) not null default' ', tel varchar(20) default ' ', mail varchar(40) default ' ', course varchar(30) default ' ', nums integer default 0, PRIMARY KEY (book_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;  以上SQLに入力した文ですが!  以下のエラーが出て先に進みません。   エラー 実行した SQL: CREATE DATABASE xmas; → (http://dev.mysql.com/doc/refman/5.5/en/create-database.htmlにリンクされている) MySQL のメッセージ: ドキュメント #1007 - Can't create database 'xmas'; database exists サーバ "127.0.0.1" 上でクエリを実行する: CREATE DATABASE xmas; USE xmas; CREATE TABLE xmastran ( book_id int not null auto_increment, name varchar(30) not null default ' ' , org varchar(50) not null default ' ', addr varchar(80) not null default' ', tel varchar(20) default ' ', mail varchar(40) default ' ', course varchar(30) default ' ', nums integer default 0, PRIMARY KEY (book_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;   以上ですが、何が原因で進めないか原因を追及中です。  最近SQLを始めたので、全く見当がつきません。 皆様よろしくお願いします。  

    • ベストアンサー
    • MySQL
  • phpMyAdminのSQLで、SQL文を登録が

     phpMyAdminのSQLで SQL文を登録するため、以下のエラーメッセージの中にあるCREATE DATABASE xmas;で始まる  SQL文を実行したところ、以下のエラーメッセージがでて、登録でできずに困っています。  どうしたら登録できますか!?    宜しくお願いします。    エラー 実行した SQL: CREATE DATABASE xmas; MySQL のメッセージ: ドキュメント #1007 - Can't create database 'xmas'; database exists サーバ "127.0.0.1" 上でクエリを実行する: ドキュメント CREATE DATABASE xmas; USE xmas; CREATE TABLE xmastran ( book_id int not null auto_increment, name varchar(30) not null default '' , org varchar(50) not null default '', addr varchar(80) not null default'', tel verchar(20 default '', mail varchar(40) default '', course varchar(30) default '', nums integer default 0, PRIMARY KEP (book_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    • ベストアンサー
    • MySQL
  • SQLにプログラムが反映されないのは何故

    XAMPP Version: 1.8.2 です。   Xamsのデータベースをデータベースから削除した後  SQLから、以下2個プログラムを入力しました。  すると、削除したにも関わらず、エラーが出て プログラムが反映されません。  Xamsを削除後、再起動したらまたXamsのデータベースが 再構築されます。  私は作成した記憶はありません。  すでに存在しているので、作成しする必要は ないのか、よくわかりません!?  皆様どう思われますか!?  以下入力したプログラムです。 ---------------------------------------------------------------- CREATE DATABASE xmas; USE xmas; CREATE TABLE xmastran ( book_id int not null auto_increment, name varchar(30) not null default '' , org varchar(50) not null default '', addr varchar(80) not null default'', tel varchar(20) default '', mail varchar(40) default '', course varchar(30) default '', nums integer default 0, PRIMARY KEY (book_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; エラー 実行したSQL: DATABASEクリスマスを作成します。 のMySQLのメッセージ:ドキュメント #1007 - データベース'クリスマス'を作成できません、データベースが存在している -------------------------------------------------- CREATE DATABASE if not exists xmas; USE xmas; CREATE TABLE xmastran ( book_id int not null auto_increment, name varchar(30) not null default '' , org varchar(50) not null default '', addr varchar(80) not null default'', tel varchar(20) default '', mail varchar(40) default '', course varchar(30) default '', nums integer default 0, PRIMARY KEY (book_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; エラー 実行したSQL: TABLE xmastranを(CREATE book_idのINT NOT NULL AUTO_INCREMENT、 名VARCHAR(30)NOT NULL DEFAULT''を、 orgのVARCHAR(50)NOT NULL DEFAULT''を、 addrはVARCHAR(80)NOT NULL DEFAULT''を、 電話VARCHAR(20)DEFAULT''を、 メールVARCHAR(40)DEFAULT''を、 もちろんVARCHAR(30)DEFAULT''を、 numsはINTEGERのデフォルトは0、 PRIMARY KEY(book_id) )ENGINE = MYISAM DEFAULT CHARSET= utf8を; のMySQLのメッセージ:ドキュメント #1050 - テーブル 'xmastran'は既に存在します。 ------------------------------------------------------------------- 以上よろしくお願いします。

    • ベストアンサー
    • MySQL

その他の回答 (1)

  • 回答No.2
  • notnot
  • ベストアンサー率47% (4618/9696)

>よくわかりません? どのへんがわかりませんか? そもそも、クォーテーション の意味がわからない? シングルクォートもダブルクォートも、文字列を「囲む」ものですから、必ずペアです。

共感・感謝の気持ちを伝えよう!

質問者からの補足

 ありがとうございます。  A:ダブルクォーテーションだとおかしい? だから・シングルクォートが正解ですね^^    すみません!  昨夜は寝ぼけ気味で変な書き込みをしてしまいました。 _ _

関連するQ&A

  • sql文について

    phpとmysqlの参考書を購入したのですがわからないことがあり 質問させてください。 参考書のサンプルとしてsample.sqlには以下の内容があります。 CREATE TABLE IF NOT EXISTS `author` ( `author_id` int(11) NOT NULL auto_increment, `author_name` varchar(255) NOT NULL default '', `author_name_kana` varchar(255) NOT NULL default '', `state` int(11) NOT NULL default '0', `description` text NOT NULL, PRIMARY KEY (`author_id`), KEY `author_name` (`author_name`), KEY `author_name_kana` (`author_name_kana`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; PRIMARY KEY (`author_id`),まではわかるのですがそれ以下の KEY ・・・とはなんのためにあり何をするのでしょうか? PRIMARY KEY・・・は主キーをauthor_idにするという設定かと 思うのですがKEY ・・・について意味がわかりません。 基本的すぎる事なのか参考書に説明がありませんでした^^; 詳しい方おりましたらわかりやすく教えて頂けますと幸いです。 宜しくお願い致します。

  • 以下のSQL文の間違いがわかりません

    MySQL5.5.9(RHEL)なのですが、以下のSQL文の間違いがわかりません。 どなたかオシエテいただけませんでしょうか? SQL ================= CREATE TABLE IF NOT EXISTS `seo` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `parentid` bigint(20) unsigned NOT NULL, seq decimal(10,5) unsigned NOT NULL, `urlpath` varchar(64) CHARACTER SET utf8 NOT NULL, `breadcrumbs` varchar(64) CHARACTER SET utf8 NOT NULL, `h1_title` varchar(64) CHARACTER SET utf8 NOT NULL, `keyword1` varchar(128) CHARACTER SET utf8 NOT NULL, `keyword2` varchar(128) CHARACTER SET utf8 NOT NULL, `keyword3` varchar(128) CHARACTER SET utf8 NOT NULL, `description` varchar(128) CHARACTER SET utf8 NOT NULL, `updatetime` datetime NULL, `en_urlpath` varchar(64) CHARACTER SET utf8 NOT NULL, `en_breadcrumbs` varchar(64) CHARACTER SET utf8 NOT NULL, `en_h1_title` varchar(64) CHARACTER SET utf8 NOT NULL, `en_keyword1` varchar(128) CHARACTER SET utf8 NOT NULL, `en_keyword2` varchar(128) CHARACTER SET utf8 NOT NULL, `en_keyword3` varchar(128) CHARACTER SET utf8 NOT NULL, `en_description` varchar(128) CHARACTER SET utf8 NOT NULL, `en_updatetime` datetime NULL, `multi_version` init(10) unsigned NOT NULL, `multi_flag` smallint(6) NOT NULL DEFAULT '1', `multi_memo` text CHARACTER SET utf8, UNIQUE KEY `id` (`id`), UNIQUE KEY `urlpath` (`urlpath`), UNIQUE KEY `h1_title` (`h1_title`), UNIQUE KEY `keywords` (`keyword1`,`keyword2`,`keyword3`) UNIQUE KEY `description` (`description`) UNIQUE KEY `en_urlpath` (`en_urlpath`), UNIQUE KEY `en_h1_title` (`en_h1_title`), UNIQUE KEY `en_keywords` (`en_keyword1`,`en_keyword2`,`en_keyword3`) UNIQUE KEY `description` (`en_description`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ======================================== エラーメッセージ(phpmyadmin) #1064 - 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 'init(10) unsigned NOT NULL, `multi_flag` smallint(6) NOT NULL DEFAULT '1', ' at line 23 ===== よろしくお願いします。

    • ベストアンサー
    • MySQL
  • Update文の書き方について

    下記のデータベースで『nameフィールドに値がセットされているもののみ』、別の文字に置き換えたいと思いますが、例えば『UPDATE `test` SET `name` = "かきくけ";』のような書き方ではnameフィールドのすべてのレコードを更新してしまいます。 その為、上記SQL文のSET以降で『nameフィールドに値がセットされているもののみ』という条件を付加すれば良いと思ったのですが、どのようなSQL文を書けば良いか分からなかった為、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。 CREATE TABLE IF NOT EXISTS `test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(64) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; INSERT INTO `test` (`id`, `name`) VALUES (1, 'あいうえお'), (2, ''), (3, 'さしす'), (4, ''), (5, 'ab'); 以上、よろしくお願いします。

    • ベストアンサー
    • MySQL
  • SQL文作成のお願い

    前提として下記のようなテーブルがあります。 テーブル名:test フィールド: 1)id: varchar, not null 2)name: varchar 3)date: timestamp with time zone, not null このテーブルに下記のようなレコードがあります。 '00001', 'A', '2005-01-01 00:00:00' '00001', 'B', '2005-07-01 00:00:00' '00001', 'C', '2005-11-01 00:00:00' '00002', 'X', '2005-01-20 00:00:00' '00002', 'Y', '2005-07-20 00:00:00' '00002', 'Z', '2005-11-20 00:00:00' ■今やりたいこと このテーブルからidごとにdateフィールド値が最近のレコードを取得したい。 ■やってみたこと 下記SQLを発行しました。 >select id, max(date) from test group by id order by id 結果==> 00001 2005-11-01 00:00:00 00002 2005-11-20 00:00:00 実際はnameフィールドの値も取得したいのですが、group by句を使うとフィールド指定ができませんでした。 ■だめだったSQL select id, name, max(date) from test group by id order by id どのようにSQLを書けばよろしいでしょうか?

  • エラーになってしまうCREATE文

    MySQL 5.0.21(Win版)を導入してみたのですが、 http://hotwired.goo.ne.jp/webmonkey/2000/01/index2a_page5.html にある下記のSQL文を「MySQL Command Line Client」から実行すると CREATE TABLE employees ( id tinyint(4) DEFAULT '0' NOT NULL AUTO_INCREMENT, first varchar(20), last varchar(20), address varchar(255), position varchar(50), PRIMARY KEY (id), UNIQUE id (id)); を実行すると、 mysql> CREATE TABLE employees ( id tinyint(4) DEFAULT '0' NOT NULL AUTO_INCREMEN T, first varchar(20), last varchar(20), address varchar(255), position varchar(5 0), PRIMARY KEY (id), UNIQUE id (id)); ERROR 1067 (42000): Invalid default value for 'id' mysql> とエラーになってしまいます。なぜでしょうか?

    • ベストアンサー
    • MySQL
  • auto_incrementを任意の数字から開始するには

    次のようなテーブルで入力するとidが1~始まりますが、 これを1000~開始する方法が分かりません、ご教授お願いします。 CREATE TABLE addressbook ( id smallint(4) UNSIGNED NOT NULL auto_increment, name1 varchar(20) default NULL, birthday date default NULL, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=sjis;

    • ベストアンサー
    • MySQL
  • 見たことのないINSERT文

    お世話になります。 他人の書いたSQLを解析して以下のようなコードを見つけました。 CREATE TABLE OYA ( ID NUMBER NOT NULL, NAME VARCHAR2(10) ) / CREATE TABLE KO ( ID NUMBER NOT NULL, OYA_ID NUMBER NOT NULL, NAME VARCHAR2(10) ) / INSERT INTO ( SELECT ID ,OYA_ID ,NAME FROM KO WHERE EXISTS ( SELECT ID FROM OYA WHERE NAME LIKE '%1' ) ) VALUES ( 1 ,1 ,'KODOMO-1' ); INSERT文でテーブル名を指定するかわりにSELECT文を指定しています。 SELECT INSERT文は知っていますが、このような表記は初めてです。 (文法エラーにならないのに驚きました) おそらく意図するところは、ある条件に一致したOYAが存在する場合に、KOをインサートするのだと思いました。 実際は、OYAがなくてもINSERTは実行されてしまいますが。。。 このような表記のINSERT文の説明が書いてあるサイトをご存知の方がいらっしゃいましたら、よろしくお願いします。

  • SQL文(テーブル作成)に関する質問です

    SQL文についての質問です。仕様にあわせたテーブルを作ろうとしていますが、何故... SQL文についての質問です。 仕様にあわせたテーブルを作ろうとしていますが、何故かエラーが出ます。 どのように書けばいいんでしょうか? どなたか教えて下さい。 以下がSQL文です。 mysql> CREATE TABLE Syain -> ( user_id char(10) NOT NULL ← ユーザーID:半角英数字記号文字 10桁(固定) 自動発番 -> username varchar(250) ←ユーザー名:最大250文字まで登録可能 -> user_Yomi varchar(250) ←読み仮名:最大250文字まで登録可能 -> email varchar(250) NOT NULL ←e-mail:250文字まで登録可能 @必須 -> renrak varchar(250) ←連絡先:250文字まで登録可能 -> Yubin varchar(8) NOT NULL ←郵便番号:必須 8桁 -> Adress varchar(10) ←住所:500文字(半角換算)真で登録可能。 -> PRIMARY KEY(user_id)); ←このuser_idはプライマリキーになる。 また、以下がエラーです。 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 'usern ame varchar(250) user_Yomi varchar(250) email varchar(250) NOTNULL renrak v' at line 3 よろしくお願いします。

  • MySQLのDATE型カラム値がNULLの時、JSTL文でアクセスするとエラーになります

    MySQLのDATE型カラム値がNULLの時、JSTL文でアクセスすると、値が入っているとアクセスできますが、値が入っていないと " Value '0000-00-00' can not be represented as java.sql.Date " エラーでアクセスできません。 環境は Windows2000Pro MySQL 4.1 J2SE SDK5.0 JSTL standard-1.1 Tomcat 5.5.9 MySQLのテーブルは CREATE TABLE addressbook ( id smallint(4) UNSIGNED NOT NULL auto_increment, name1 varchar(20) default NULL, birthday date default NULL, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=sjis; mysql> select * from addressbook; で確認すると birthdayの値が 000-00-00 となっています。 対処方法のご教授お願いします

    • ベストアンサー
    • MySQL
  • かねやんMySQLAdmin1.43

    WinXpでmysqlを勉強中です。 かねやんMySQLAdmin1.43を使って、Sql発行を押し下のように書き込んで実行するとエラーがでます。 CREATE TABLE hotelmember ( hotel_name varchar(40) NOT NULL, com_name varchar(40) NOT NULL, charge_name varchar(40) NOT NULL, id varchar(40) NOT NULL, pass varchar(40) NOT NULL, mail varchar(40) NOT NULL, zip varchar(40) NOT NULL, add varchar(40) NOT NULL, tel varchar(40) NOT NULL, url varchar(40) NOT NULL, memo varchar(40) NOT NULL, PRIMARY KEY ( id ) ) エラー文 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 varchar(40) NOT NULL,tel varchar(40) NOT NULL, そこで add varchar(40) NOT NULL, tel varchar(40) NOT NULL, url varchar(40) NOT NULL, memo varchar(40) NOT NULL, を削除するとうまくテーブルが作成されます。 なにが悪いんでしょうか?

    • ベストアンサー
    • MySQL