Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

MySQL において date_format 関数を使えば日付のこまかいフォーマットを指定することができるが、専用の関数や extraxt 関数を使ったほうが後日、マニュアルを調べる手間が減る。 select now(); # 2012-07-08 10:11:12 select curdate(); # 2012-07-08 select curtime(); # 09:10:11 select year(now()); # 2012 select month(now()); # 7 select day(now()); # 8 select time(now()); # 09:10:11 select hour(now()); # 9 select minute(now()): # 10 select second(now()); # 11 select extract(year fr
UNION は複数の SELECT 文によってデータをそれぞれ取得し、その結果を結合した上で1つのデータとして取得する場合に使います。書式は次の通りです。 SELECT col_name1, ... FROM table_name1 UNION [ALL | DISTINCT] SELECT col_name2, ... FROM table_name2 [UNION [ALL | DISTINCT] ...] 最初の SELECT 文で取得したデータに、次の UNION のあとの SELECT 文で取得したデータを結合して取得します。 3 つ以上のテーブルを結合したい場合は UNION 以下をテーブルの数だけ記述してください。 取得したデータのカラム名は最初の SELECT 文のあとに記載されたカラム名となります。それぞれの SELECT 文で取得するデータのカラムの数は同じである必要が
REPLACE文について unknown REPLACE文は、INSERT文とUPDATE文を合体させたようなものです。 挿入するデータが既にテーブルに存在する場合は、新しくレコードを挿入せず、既存のレコードを新しいデータで上書き(置換)します。(UPDATE文と同じ) 逆に、挿入するデータがテーブルに存在しない場合は、新規レコードを挿入します(INSERT文と同じ)。 またREPLACE文は、INSERT文同様、SELECT文の結果を挿入することが可能です。 INSERT INTO テーブル名(フィールド名) VALUES (値) SELECT 文; REPLACE INTO テーブル名(フィールド名) VALUES (値) SELECT 文; # MySQLログイン、データベース選択 C:\mysql\bin> mysql -u root -p db_User Enter Enter
テーブルの中のカラムにプライマリーキー制約やユニーク制約が設定されている場合に、データを追加すると制約違反となる場合があります。このような場合通常はエラーとなりますが、エラーを発生させる代わりに既存のデータを指定の値で上書きすることができます。 次の書式を使います。 INSERT INTO tbl_name (col_name1, col_name2, ...) VALUES (value1, value2, ...) ON DUPLICATE KEY UPDATE col_name_x=value_x, col_name_y=value_y, ...; ユニーク制約などで違反するデータを追加しようとした時に、データを新規に追加するかわりに既存のデータの指定のカラムの値を更新するということです。この時、更新するカラムは複数指定できますが、エラーの元となるユニーク制約などが設定されたカラムの
区分値(もしくはON/OFFのフラグ)のカラムがあるとして、それぞれの区分値のレコード数をカウントしたものを、1度のSQLで同時に取得したい。 これを満たそうとして、ひどいSQLを書いてしまっていたことがテスト段階にて発覚。 サンプル ページ情報のテーブルと、アクセスログのテーブル 2つのテーブルから、各ページの月別アクセス数を求める ただし、PCと携帯のアクセスは別々に集計する こんな仕様とします。(※試したDBはPostgreSQL 8.3.7) 間違ったSQL select t1.page_id, coalesce(t2.count, 0) as pc_access_count, coalesce(t3.count, 0) as mobile_access_count, coalesce(t2.count, 0) + coalesce(t3.count, 0) as access_c
こんばんは。 DBはめっきりPOSTGRESQLしか触れなくなったnobuです。 僕は初心者プログラマなので、 データベースに関しては基本的なSQLしか扱えません。 (というか、PHPで色々できるので基本的なSQLだけで大丈夫なことが多い( ´_ゝ`)ノ) 今回はそんなペーペープログラマが、フツーのプログラマにとっては見るのも恥ずかしい(かもしれない)話をします。 select文でのパディングの話です。 ワード・エクセル・パワーポイント・アクセス・WEBプログラミングを動画で楽々マスター!動画パソコン教室!【楽ぱそDVDプレミアム】オフィス2010 パディングというのは何かの文字でデータを埋めることです。 たとえば「123」というのを5桁のゼロパディングにして 「00123」みたいな。 数字は処理として扱いやすいですが、データとして見せる場合にパディングをしたい場合があります。 たとえばフ
忘れるのでメモ MySQL 5.1で確認した。 外部キー制約の確認 SHOW CREATE TABLE テーブル名; show create table bbs_thread; 外部キー制約の追加 ALTER TABLE テーブル名 ADD FOREIGN KEY (制約を張りたいカラム) REFERENCES 張りたいテーブル(張りたいカラム); alter table bbs_thread add foreign key (creator_id) references accounts_user(id); 外部キー制約の削除 ALTER TABLE テーブル名 DROP FOREIGN KEY 制約名; ALTER TABLE bbs_thread drop foreign key creator_id_refs_id_75448b6c;
複数の候補(値)の、どれかが当てはまる場合にデータを表示したい場合にIN演算子を 使用します。 候補(値)の数に特に制限はありません。値ごとに「カンマ」で区切ります。 構文 SELECT 列名 FROM テーブル名 WHERE 列名 IN(値1,値2); user表から「sasuke」、又は「ziro」の人を表示した例です。 mysql> SELECT * FROM user WHERE name IN('sasuke','ziro'); +--------+--------+ | name | pass | +--------+--------+ | sasuke | pass33 | | ziro | pass22 | +--------+--------+ 2 rows in set (0.02 sec) 以下の例は、上記と結果は同じですが、ORを使用した場合の例です。 2個程度でし
テーブルを作成するときにカラムに FOREIGN KEY 制約(外部キー制約)を設定することで、対象のカラムに格納できる値を他のテーブルに格納されている値だけに限定することができます。ここでは MySQL における FOREIGN KEY 制約の使い方について解説します。 FOREIGN KEY制約(外部キー制約)とは FOREIGN KEY制約(外部キー制約)とは親テーブルと子テーブルの2つのテーブル間でデータの整合性を保つために設定される制約です。次の図を見てください。 参照する側の子テーブルにある部署カラムに対し、相手側として参照される側の親テーブルにある部署カラムとを指定して FOREIGN KEY 制約を設定します。するとこの2つのカラムでは整合性が保たれるように設定されます。 具体的には子テーブルにデータを追加するとき、 FOREIGN KEY 制約が設定されたカラムには、親テ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く