MySQL

MySQL

既存のテーブルにあるカラムにdefault設定を追加・削除する

MySQLのデフォルト設定の追加・削除は以下のように行います。デフォルト設定の追加デフォルト設定を削除/
MySQL

ERROR 1005 (HY000): Can’t create table ‘matome.site’ (errno: 121)

ひとつのテーブルのidを別の二つのテーブルからCONSTRAINTでくくりつけようとするとこのエラーがでる。ここで指定している"mtm_category"という名前がかぶっていたためだった。これを参照するテーブルでそれぞれ違う名前にしてあげ...
MySQL

あるフィールドのユニーク数(種類数)を出す方法

たとえば、アクセス解析で、全てのアクセスのログがあり、そのログから、各ページのユニークユーザ数とPV数を出したい場合があります。各ページごとのPV数は以下のクエリで取得できますが、UU数が取得できません。そこで登場するのがDISTINCT文...
MySQL

“show”という名前のテーブルは作れない

showというテーブルを作ろうとしてましたが、失敗。showという名前がいけないらしく、テーブル名だけ変えたらうまくいきました。以下に予約語があり、showも思いっきり入ってました。。。/
MySQL

phpMyAdminでWordPressの内容を一括置換したい!

phpMyAdminでWordPressの内容を一括置換してみます。文字列置換なので、replace()関数を使用します。また、WordPressの本文は"XXX_posts"テーブルの"posts_content"テーブルになります。(た...
MySQL

my.cnfの”datadir”で指定していた、mysqlのというディレクトリを 間違って移動してしまった。

mysqlのデータディレクトリを一旦移動すると、戻してもデータベースが全くない状態になってしまった。そういう時は、いったんMySQLデーモンを再起動します。そうすると再びdatadirで設定されたディレクトリを読みに行き、データベースが読み...
MySQL

あるテーブルのあるフィールドの値が別のテーブルのあるフィールドに一致するものが ないものだけ抜き出す方法。

例えば、毎日の売り上げを記録した"days"というテーブルと、祝日をの情報を持ったテーブル"holiday"があるとします。ここで、祝日以外の日の売り上げ平均を見たい場合、以下のようにすることで抽出できます。/
MySQL

phpMyAdminでMySQLデータベースを簡単に操作する

phpMyAdminをインストールすれば、MySQLが劇的に扱いやすくなります。テーブル内のデータ一覧表示や、データの修正、テーブルの構造の変更などがブラウザ上から簡単に行えます。以下のサイトにアクセスし「Download4.0.0」をクリ...
MySQL

既存のカラムにINDEXを追加する。

テーブル内のカラムに対しINDEXを設定すると、そのカラムをキーに検索を行った時のパフォーマンスの向上がはかれます。既存のカラムにこのINDEXを設定するには以下のようにALTERTABLEを使用します。実施例を以下に記載します。INDEX...
MySQL

既存のカラムを削除する

既存のカラムを削除するには、"ALter"句を使用します。以下のような感じで使用します。以下使用例です。/
MySQL

「Cannot add or update a child row: a foreign key constraint fails」ってでる。

外部キーを持った表にレコードを挿入しようとしたら、「Cannotaddorupdateachildrow:aforeignkeyconstraintfails」と、でてしまった。ググってみると、存在しない親の外部キーを挿入しようとすると出る...
MySQL

「ERROR 1030 (HY000): Got error 28 from storage engine」

いきなり以下のエラーがでるようになった。showコマンドで発生したので、なのでなかなか気づけませんでしたが、どうやらMySQLサーバの容量がなかったのが原因だったようです。サーバの容量を空けたらエラーはなくなりました。/
MySQL

テーブルの中身を空にする

テーブルの中身を空にするには、テーブルの中身をすべて削除するか、テーブルを削除して再度作り直すという2通りの方法があります。テーブル内のデータを削除するdeleteにより削除する場合はテーブル内のデータをそれぞれ削除しテーブル自体は依然のま...
MySQL

挿入したレコードのIDを得る

MySQLテーブルのフィールドををAUTO_INCREMENTなど、自動的に値を設定するようにしていると、レコード挿入後でないと分からない値があります。その値を知るには、MySQLのLAST_INSERT_ID()関数を使用して最後に挿入し...
MySQL

テーブルの名前を変更する

テーブル名の変更はRENAMEを使用します。/
MySQL

PHPでMySQLにアクセスすると「mysql_query(): supplied argument is not a valid MySQL-Link resource in xxx.php on line xxx」と出る

これは、mysqlに接続できていない状態にもかかわらず、mysql_query()などの関数を実行するとでます。mysqlへの接続がうまくいっていないので、ユーザ名やパスワード等が間違っていない確認してみてください。/
MySQL

既存のテーブルにあるカラムの名前を変更する

以下の構文でカラム(フィールド)の名前を変えることができます。ただし、同時に型も指定する必要があり、これを正しく指定しておかないと名前だけでなく型も変わってしまうので注意が必要です!/
MySQL

挿入したレコードのIDを取得するには?

直前に挿入したレコードのIDを取得する関数「LAST_INSERT_ID()」を使います。PHPではたとえば以下のように使います。これで、$idに直前にinsertしたレコードのidが入ります。/
MySQL

テーブルの結合2(等価結合)

単純結合だと無駄な行がたくさんできてしまいます。そこで登場するのが等価結合で、二つの表について一致している行のみ結合させます。member表に追加で各メンバーの出身地の人口(population)を表示させるにさせる例を以下に示します。/
MySQL

テーブルの結合1(単純結合)

結合には以下のように種類がいくつかあります。単純結合等価結合非等価結合外部結合再起結合今回はこの中で、単純結合のご紹介をします。まず、以下の二つのテーブルがあるとします。これら二つを単純結合すると「x」の行数のテーブルが出来上がります。テー...