- 締切済み
SQLのPRIMARY KEYの後のKEYについて
SQLの超初心者です。 SQLのPRIMARY KEYの後のKEYについてご教授ください。m(__)m CREATE TABLE ***** ( shipping_id NOT NULL default 0, order_date datetime NOT NULL default 0000-00-00 00:00:00, ・ ・ PRIMARY KEY (shipping_id), KEY order_date (order_date) ) の様に参考書に記載があるのですが、 KEY order_date (order_date) の部分の意味がわかりません。 どなたか詳しい方アドバイスお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.1
>参考書に記載がある その書籍は、何らかのRDBMSを前提にしたものではないですか? 定義系SQL(DDL)は、RDBMSによる仕様差が大きい部分です。 primary key・・・主キー。重複禁止。nullも禁止。 unique・・・表定義中で定義すること以外は、create unique indexと同じ。 key・・・表定義中で定義すること以外は、create indexと同じ。 create unique index・・・重複禁止。nullは重複値とは扱わない。(※SQL Serverを除く) create index・・・重複可。
補足
返信ありがとうございます。 DBはMySQLをデフォルトで使用しています。 TABLE作成時にインデックスを付与するのが、KEYだったのですね。 勉強になりました。 ただ、理解できないのがテーブルの設計用に表が掲載されており、 インデックスフィールド order_date ○ shipping_date ○ users_id ○ item_id ○ quantity ○ sale_price ○ payment ○ state ○ の合計8個に○が付いているのに対し、 作成するSQL文では、 PRIMARY KEY (shipping_id), KEY order_date (order_date) KEY shipping_date (shipping_date) KEY users_id (users_id) KEY item_id (item_id) KEY remote_addr (remote_addr) と主キーを合わせても6個しかありません。 ちなみに、当参考書はかなり誤字脱字があり、都度修正しながら進めています。(PHPやHTML部分だけはなんとか修正できてます。) また、KEY・・・・(・・・・)の確固の意味がわかりません。 さらに、別参考書で読んだのですが、インデックスキーは 1テーブルにつき、2,3個にしておかないとパフォーマンスが低下すると記載されていました。 この辺りも詳しくしりたいので、ぜひご教授よろしくお願いします。 m(_ _)m