ベストアンサー プライマリキーとは 2004/09/01 23:39 cseでプライマリキーがtrueのカラムはどういう意味ですか? ユニークがtrueとfalseというのは分かりますが、プライマリキーの意味が分かりません。 みんなの回答 (5) 専門家の回答 質問者が選んだベストアンサー ベストアンサー tsukasa-12r ベストアンサー率65% (358/549) 2004/09/02 01:21 回答No.2 CSE が何なのかわからないのですが・・・。 例えば、 -------- 伝票番号 行番号 品名 金額 ------- のようなカラムを持つテーブルがあったとすると、 伝票番号と行番号をプライマリーキーにします。 そうすると、 伝票番号 行番号 ---------------- 1 1 1 2 1 3 2 1 2 2 のように、(伝票番号と行番号の組み合わせ)がユニークになるようにしか値をセットできなくなります。 また、プライマリキーにはインデックスが作成される(プライマリキーでの検索が高速化される。)んだったと思います。 質問者 お礼 2005/03/10 11:06 わかりました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (4) asianttw ベストアンサー率0% (0/5) 2004/10/10 03:36 回答No.5 PRIMARY KEYの意味ということであれば… 例えば、「A,B,C,D,E」という5つのカラムがあったとします。その中でA,B,Cの3つのカラムがPRIMARY KEYであったとすると、A,B,Cが完全に一致するデータはそのテーブルでは 重複できない、という意味になります。 A,B,Cの組合せが、ユニークであるということです。 (A,B,C,D,E)=(1,2,3,4,5)というデータが既存するテーブルにデータを追加する場合、 (A,B,C)=(1,2,4)や(A,B,C)=(1,3,3)はありですが、 (A,B,C)=(1,2,3)ははじかれます。 この場合D,Eはなんでもアリです。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 GoF ベストアンサー率37% (34/91) 2004/09/08 04:49 回答No.4 プライマリーキーは、 ・一意キーにNOT NULL制約を加えたものです。 (完全に行を特定できます) ・1テーブルに1つのみ指定可能です。 (キー作成と同時にインデックスも作成します) 一意キーではフィールドにNULLを設定することを許可しており、 NULLのレコードを複数行存在させることが可能となっています。 より詳しくはマニュアルの制約を読んでください。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 root139 ベストアンサー率60% (488/809) 2004/09/02 03:26 回答No.3 つみきソフトウェアさんのSQL開発環境CSEの、テーブルのプロパティのインデックスタブ表示のことについてお尋ねだと思います。 プライマリキーとはテーブル中の行(レコード)を一意に決めるカラムのことで、主キーと表記することも多いです。 http://e-words.jp/w/E4B8BBE382ADE383BC.html Oracleを含む多くのDBMSでは、主キー(プライマリキー)にはインデックスが必要で、テーブル生成時に自動的にインデックスが生成されます。 また、インデックスには、ユニーク(一意)なものと、そうでないものが有ります。 ですので、CSEでは、対象のインデックスが主キーのものなのか否か、ユニークであるのかないのかがすぐ分かるように、そのような表示をしているのだと思います。 参考URL: http://www.hi-ho.ne.jp/tsumiki/doc_1.html,http://www.microsoft.com/japan/msdn/sqlserver/columns/sysbuild/sysbuild1.asp 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 integer ベストアンサー率33% (39/115) 2004/09/01 23:46 回答No.1 Oracleのことはよく知りませんが 一般的にデータベースでのプライマリキーというのは、それが決まると他の項目の値が決まる一意の項目のことです 例えばお客様番号、商品番号、カテゴリ等です プライマリキーは同じものを重複することはできません 参考になるでしょうか? 質問者 お礼 2005/03/10 11:05 ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターデータベースOracle 関連するQ&A SQLServerのプライマリキーとインデックスについて こんにちわ。 Oracleではあるカラムをプライマリキーとして設定すると, 自動的にそのカラムにインデックスが付与されたと思います。 ところで, SQLServerではあるカラムをプライマリキーとして設定すると, 自動的にそのカラムにインデックスが付与されるのでしょうか? あるいはプライマリキーとインデックスを個別に設定しなければ ならないのでしょうか? 教えてください。よろしくお願いします。 CSE PostgreSQLのテーブルにプライマリキーを作成する方法 現在、CSEを使いPostgreSQLのテーブルから 一つの行を消そうとしたところ、 『更新対象のテーブルにプライマリキーが存在しない為、更新処理を行う事ができません。 更新処理を行うには、更新対象のテーブルにプライマリキーが定義されいる必要があります。』 と言うようなエラーメッセージが出てきて困っています。 どこを調べてもCSEでのプライマリキーの作成方法は載っていないのですが、そもそも『CSEでのプライマリキーの作成』は不可能なのでしょうか? もし、CSEで、もしくは他の方法で既存のテーブルにプライマリキーの定義の仕方を知っている方いましたらご教授下さい。 それか、PostgreSQLのデータの一部を(テーブルの内容全てではなく一行だけ)削除する方法ありましたらそちらもご教授下さい。 よろしくお願いします。 プライマリキーのみを変更して、複数行insertする方法 こんにちは。 oracle(9i)のテーブルにinsertを行おうと思っているのですが、 困っているので質問させていただきます。 Aテーブルに5カラムあるとします。 カラム1はプライマリキーです。 例えば、1レコードが下記のようになっているとします。 カラム1 カラム2 カラム3 カラム4 カラム5 ---------------------------------------------- 001 あああ いいい ううう えええ プライマリキーに1を足して、他のカラム2から5までは同様の内容で insetをしたいと思っています。 つまり、下記のようなレコードになります。 002 あああ いいい ううう えええ 003 あああ いいい ううう えええ このようにプライマリキーのみを変更して200レコードくらいを insertしたいと思いますが、どのようにすればよいでしょうか。 できれば、PL/SQLかSQLのスクリプトで実行したいと思います。 ご存知の方、ご教授願います。 よろしくお願いいたします。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム プライマリキー インターネットでプライマリキーを調べると、「行を一意に識別する列」という風に書いてあって、プライマリキーはテーブルに一つで、一意でなければならないというふうに書いてあるんですが、 例えば、複数拠点を持つ販売店があるとして、販売店のコードと拠点のコードの2つで、レコードを識別する際は、販売店コードと拠点コードはプライマリキーになるのでしょうか? プライマリキー名からテーブルを特定する方法 プライマリキー名からテーブルを特定する方法 Oracle 10g でプライマリキー名からテーブルを特定することはできますか?システム管理者ではないのでSystem権限は持っていません。 REPLACEクエリで条件文を使用するには? REPLACEクエリで条件文を使用するには? 以下で、bannedカラムがtrueの時だけfalseに変更しないようにするにはどうすればいいでしょうか? /*テーブルを作成*/ CREATE TABLE test (name CHAR(100) UNIQUE, banned BOOLEAN DEFAULT FALSE NOT NULL); /*bannedカラムにfalseを注入*/ REPLACE INTO test (name) VALUES('鈴木'); /*bannedカラムをfalseからtrueに変更*/ REPLACE INTO test (name,banned) VALUES('鈴木',true); /*このクエリを実行してもbannedカラムをtrueからfalseにしないようにするには*/ REPLACE INTO test (name) VALUES('鈴木'); MySQLで日毎の最高点を取得するSQLについて 何時もお世話になっております。 日付ごとの最高ポイントを取得する 効率の良いMySQLでのSQLをご教授下さい。 T_DATA flg kbn point biko date ------------------------------ true 3 90 NNN 20141231 true 1 80 XXX 20150101 true 2 60 YYY 20150101 true 3 70 XXX 20150101 true 1 40 xxx 20150201 true 2 60 yyy 20150201 true 1 60 AAA 20150301 true 2 90 BBB 20150301 true 3 40 CCC 20150301 true 1 60 aaa 20150401 true 2 70 bbb 20150401 true 3 30 ccc 20150401 false 4 90 ddd 20150401 ■欲しい状態 kbn point biko date ----------------------- 2 70 bbb 20150401 2 90 BBB 20150301 2 60 yyy 20150201 1 80 XXX 20150101 (1)dateカラム毎にpointカラムが最大のデータを取得したいです。 (2)flgカラムがtrueのデータのみ取得したいです。 (3)dateカラムが降順になるよう取得したいです。 (4)dateカラムは、直近4日分取得したいです。 以上の条件で取得したく思います。 どうぞ、よろしくお願い致します。 return trueとreturn falseの用途・違いは・・・? functionやifなどで「return true」「return false」というのを見かけますが、これの違いを教えてください。あと最近 if(!obj){ return true; } という文を見かけました。 これがifじゃなくてfunctionなら、ブール値が返るのでtrueとfalseの違いがありますが、このifではなぜreturn trueを使っているのか分かりません。「return false」を書くと、ifやfunctionを強制的に抜ける「break」と同じ役割を果たすと聞いた事がありますが、trueは知りません。 ・・・というより、ifでreturnを使う意味もよく分からなくなってきました。 if文は何も返りませんし、返したところで受け取る方法がありませんよね? これもどういう意味なのか、教えてください。 よろしくお願いします。 excel関数で TRUEやFALSEについて 関数入力で TRUE、FALSEがありますが この意味が分かりせん (テキストを読んでも) FALSEだからといって けして間違いではない?? ようするに どう使い分けたら良いのか 教えてください equals("A") ?false : true 質問します。 次の内容のjavaプログラムを見かけました。 if (args[0].equals("A") ? false : true) { この「? false : true」の意味がわかる方、教えてもらえますか? よろしくお願いします。 WHERE句内でプライマリキーの検査ができない こんにちは。mySQL初心者です。 例えば、「sample」というDBに以下の3つのフィールドのあるテーブル「text」があるとします。 (実際には、DATETIME型のフィールドも含めて20列あります) key => 整数型で、プライマリキー&オートインクリメントを設定 status => テキスト型(UTF-8) note => テキスト型(UTF-8) ここで、「SELECT * FROM text WHERE key=1」というSQLで1つ目のレコードを取得しようとすると、「#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 'key=1 LIMIT 0, 30' at line 1」というエラーが出てしまいます。 「SELECT * FROM text WHERE status='sample_01'」や「SELECT * FROM text WHERE note='test entry'」というSQL文ならちゃんとデータを取得できるのですが、「WHERE key=1」のようにプライマリキーで検索しようとするとエラーになるのは何故でしょうか。 どなたか見当が付くかたがいらっしゃいましたら、教えていただけないでしょうか。 よろしくお願いします。 <環境> XAMPP Ver.1.7.4で、mySQLは Ver. 5.5.8です。 エクセル関数のこつで気になるので質問させて下さい。HLOOKUPでfa エクセル関数のこつで気になるので質問させて下さい。HLOOKUPでfalseは完全一致を、TRUEは近似値を検索する時に使いますが、英語の意味では、「false」は正しくないという意味合いで、「true」は本当の、という意味合いだと思います。本来の意味と逆の意味合いで検索するような感じですが、なんかもやもやしています。この点ご存じでしたら教えて下さい。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム コラムの値からコラム・テーブルを検索 プライマリキーが様々なテーブルで別の名前で利用されていると、テーブル同士の関連の全てが把握できずに困っています。以前にコラム名からテーブルを検索する方法を質問したのですが、私が扱っているデータベースでは、プライマリキーがシステムの別の場所で少しだけ異なる名前で利用されていることが多いので、その方法では把握できない関連が出てきます。 具体的には、EMPLOYEES__KEYというEMPLOYEESテーブルのプライマリキーがPERSONALIZE_EMPOYEESというテーブルでPSNLZ_EMP__KEYという名前で使われている状況を考えていただきたいと思います。PSNLZ_EMP__KEYのコラムのレコードは全てEMPLOYEES__KEY内のデータからとられているとします。 以前にselect TABLE_NAME from USER_TAB_COLUMNS where COLUMN_NAME = 'EMPLOYEES__KEY' というSQLで特定のコラムを使っているテーブルを全てリストアップできると教えていただいたのですが、今回のケースでは、同じような内容のコラムなのですが名前が異なるため上記のSQLでは検索できないテーブルがある場合、それをどうやってとってきたらよいのかということです。 コラムの値にtaro, jiro, hanakoなどのようにテーブルまたはシステム内でユニークな値が指定されている場合、コラムの値を指定し、「その値が使われているコラム・テーブルを列挙せよ」というような命令を与えればよいのだということまでは分かりますが、どのようにSQLを書けば良いか教えてください。 ?と:での区切りについて $rvalue = ($value == "") ? TRUE : FALSE; この場合?と:で区切られている意味は何なのでしょうか? enumの基礎 下記のソースをenumを使わずに定義するとどのようになるんですか? 下記のソースの意味が分かるように教えてください。 enum {FALSE, TRUE} i = FALSE; VLOOKUPのTRUEとFALSEの意味は Excel2010を使っています。VLOOKUP関数を使うときに、検索掛ける値と掛けられる値が一致しなくてもいい時は、例えば=VLOOKUP(A8,E8:G30,3,TRUE)などと書きます。完全に一致する検索の場合は、TRUEではなくFALSEを入れます。 このTRUE(真)とFALSE(偽)の意味は何でしょうか。どう解釈すると覚えやすい(説明しやすい)でしょうか。 Javascriptでの正規表現なのですが、以下の条件をチェックするにはどうすればいいのでしょうか? Javascriptでの正規表現なのですが、以下の条件をチェックするにはどうすればいいのでしょうか? (123)-123-1234 false 123 123 1234 false 123 123-1234 false (123) 123 1234 false 123-123-1234 true (123) 123-1234 true (123)123-1234 true どうぞよろしくお願いします。 VBAで2の乗数のテストパターンを作成したい 2の乗数のテストパターンを作成したいのですが、どのように作成すればいいのか いまいちわからないので皆さん教えてください。御願いします。 例として2の3乗のパターンを作成したい場合 1パターン目 a=true b=true c=true 2パターン目 a=true b=false c=false 3パターン目 a=false b=true c=false 4パターン目 a=false b=false c=true 5パターン目 a=true b=false c=true 6パターン目 a=true b=true c=false 7パターン目 a=false b=true c=true 8パターン目 a=false b=false c=false といった具合に作りたいのですが、for文やif文をどういう具合に使えばいいか いまいちピンと来ないので、どなたかヒントでもいいので2の乗数のテストパターンの 作成の仕方を教えてくださいよろしく御願いいたいます 関係性を持ったソート 例えば以下の様なデータで 親-子, 判定とした場合 1-1, true 1-2, true 1-3, true 2-1, true 2-2, true 2-3, false 群の中で一つでもfalseがあれば親単位で全てを抜き出すと言う方法を探しています 結果として 2-1, true 2-2, true 2-3, false だけ抜き出せればOKです VLOOKUP関数のFALSEって? VLOOKUP関数をよく使うのですが、ふと最後の引数のFALSEって何を意味しているのかが気になりました。いつも無意識にFALSEを使っていましたが、TRUEはどのような場合に使う必要が生じるのでしょうか? 本をみると「検索の型」を選択するようですが、よく意味がわかりません。具体的にどういうことなのでしょうか? 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター データベース SQL ServerOraclePostgreSQLMySQLNoSQLその他(データベース) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
わかりました。