åå¿è ï½ä¸ç´è ã®æ¹ã対象ã¨ããããã°ã©ãã³ã°æ¹æ³ãéçºç°å¢ã®æ§ç¯ã®è§£èª¬ãè¡ããµã¤ãã®éå¶ãè¡ã£ã¦ãã¾ãã
ã¹ãã¼ãã夿´ãããã¨ããããã㦠¥dt ã³ãã³ãã使ã£ã¦ãã¼ãã«ã®ã¹ãã¼ãã確èªãã¦ã¿ãã¨ãã¹ãã¼ãã myschema ã«å¤æ´ããã¦ãããã¨ã確èªã§ãã¾ããã
å®éã«è©¦ãã¦ã¿ã¾ããç¾å¨ friends ã¨ããååã®ãã¼ãã«åã使ããã¦ãã¾ãã psql ã¡ã¿ã³ãã³ãã® ¥d ã³ãã³ãã使ã£ã¦ãã¼ãã«ã«å«ã¾ããã«ã©ã ã®æ å ±ã表示ãã¦ã¿ã¾ãã -- -- ãã¼ãã«( name )ã«æ°ããã«ã©ã ãã«ã©ã å( column_name )ã¨ãã¼ã¿å( data_type )ã§è¿½å ãã¾ãã 列はそれぞれ異なる名前ですので、パーサは自動的にどのテーブルの列かを見つけます。 2つのテーブルで列名が重複していた場合は、以下のようにどちらの列を表示させたいかを示すために列名を修飾しなければなりません。. friends ãã¼ãã«ã«ã¯ id ã«ã©ã 㨠name ã«ã©ã ãå®ç¾©ããã¦ãã¾ãã
ä»åº¦ã¯ãã¼ã¿åã夿´ãããã¨ãã§ãã¾ããããªã USING å¥ã使ã£ã¦ããæ¢ã«æ ¼ç´ããã¦ãããã¼ã¿ã«ãã£ã¦ã¯ãã¼ã¿åã®å¤æãããã¨ãã«ã¨ã©ã¼ãçºçããå ´åãããã¾ãã
テーブル名を変更後にあらためて ¥dt コマンドを使ってテーブル一覧を表示してみるとテーブル名が classmate に変更されていることが確認できました。 カラム名を変更する.
æ¢åã®ãã¼ã¿ã®æ°ããã«ã©ã ã®å¤ã¯ãã¹ã¦ããã©ã«ãå¤ã§ãã 20 ãæ ¼ç´ããã¦ãã¾ããã ãã¼ã¿åã夿´ãããã¨ããããã㦠¥d ã³ãã³ãã使ã£ã¦ãã¼ãã«ã«å«ã¾ããã«ã©ã ã®æ å ±ã確èªãã¦ã¿ãã¨ã name ã«ã©ã ã®ãã¼ã¿åã text ã«å¤æ´ããã¦ãããã¨ã確èªã§ãã¾ããã ¥dt ãã¼ãã«ãã«ã©ã ã«å¯¾ãã¦å¶ç´ã追å ãããè¨å®ããã¦ããå¶ç´ãåé¤ããã«ã¯æ¬¡ã®æ¸å¼ã使ç¨ãã¾ãã テーブルを自分自身に対して結合させることができます。
æ¢åã®ãã¼ã¿ã®æ°ããã«ã©ã ã®å¤ã¯ãã¹ã¦ãããã©ã«ãå¤ãæç¤ºçã«æå®ããã¦ããªãå ´åã®ããã©ã«ãå¤ã§ãã NULL ãæ ¼ç´ããã¦ãã¾ããã friends ãã¼ãã«ã¯ public ã¹ãã¼ãã«ä½æããã¦ãã¾ããããã§ã¯ friends ãã¼ãã«ã myschema ã¹ãã¼ãã¸ç§»åãã¦ã¿ã¾ããæ¬¡ã®ããã«å®è¡ãã¦ãã ããã ãã¼ãã«åã夿´ããã«ã¯æ¬¡ã®æ¸å¼ã使ç¨ãã¾ãã
friends ãã¼ãã«ã«ã¯ id ã«ã©ã 㨠name ã«ã©ã ãå®ç¾©ããã¦ãã¾ããããã§ã¯ id ã«ã©ã åã friendid ã«å¤æ´ãã¦ã¿ã¾ããæ¬¡ã®ããã«å®è¡ãã¦ãã ããã
å®éã«è©¦ãã¦ã¿ã¾ããç¾å¨ friends ã¨ããååã®ãã¼ãã«åã使ããã¦ãã¾ãã psql ã¡ã¿ã³ãã³ãã® ¥d ã³ãã³ãã使ã£ã¦ãã¼ãã«ã«å«ã¾ããã«ã©ã ã®æ å ±ã表示ãã¦ã¿ã¾ãã
テーブルを結合するとよくカラム名が被ったりします。 特によく多いのが「id」や「name」です。 今回は、テーブル間を結合した際にカラム名が被ってしまったケースについてエントリーいたします。 状況. å®éã«è©¦ãã¦ã¿ã¾ããç¾å¨ friends ã¨ããååã®ãã¼ãã«åã使ããã¦ãã¾ãã psql ã¡ã¿ã³ãã³ãã® ¥d ã³ãã³ãã使ã£ã¦ãã¼ãã«ã«å«ã¾ããã«ã©ã ã®æ å ±ã表示ãã¦ã¿ã¾ãã NOT NULL å¶ç´ã®è¿½å ã¨åé¤ï¼ 実行したい問い合わせは、
データベースにこんなテーブルがあったとします。※テーブル名 test. alter table friends rename column id to friendid;
( Written by Tatsuo Ikura )
ç¾å¨ã®ãã¼ãã«å( name )ãæ°ãããã¼ãã«å( new_name )ã«å¤æ´ãã¾ãã