1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MYSQLの裏技集

Posted at

データベースって自分で触れるようになるとめちゃめちゃ便利ですよね。
最近では、自分一日のスケジュールをわざわざMYSQLで書き込んで、
TODO管理なんかも。すごい非効率を楽しんでます(笑)

最初はSQLに慣れるのが目的だったけど、
データベースってシステムの真髄みたいな気がして楽しいですね。

けど、あれってどうやるんだっけとチョチョイ忘れることが多いので、
このページにSQL文をメモ書きとして記録していこうと思います。

裏技でもなんでもありませんので、悪しからず。(>人<;)

DELETE

DELETEをするときは、慎重にしないといけない。
そもそもデータを削除するという行為自体が宜しくないので、
基本的にフラッグ項目をつけて、
非表示・停止するようなデータにするべきだろう。
消してしまったら、2度と元に戻せない。。。。

# 行を削除する('m'から始まる行を削除する)
DELETE FROM `table_name` WHERE `column_name` LINK 'm%';

REPLACE INTO

開発途中でデータを2度INSERTしてしまたり、
UPDATEしようにもデータがまだなかったりする。
そんなときに便利なのが、REPLACE INTO 文だ。

# INSERTUPDATEを同時にやる
REPLACE INTO `table_name` ( `id`, `column_name`) VALUES ( 10, 'New Name');

データを一括置換する

UPDATE `table_name` SET `column_name` = REPLACE(`column_name`, '検索したい文字列', '置換したい文字列');

テーブルを丸ごとコピーする

データを操作するときは、操作するテーブルのコピーを作っておくことが懸命でしょう。
うっかり必要なデータを書き換えてしまったら、大変です。

# 構造が同じテーブルを作成する
CREATE TABEL copy_table_name LIKE table_name;

# データを丸ごとインサートする
INSERT INTO copy_table_name SELECT * FROM table_name;

# データを選別してインサートする(`column_name`'m'から始まるものを抜き出す)
INSERT INTO copy_table_name SELECT * FROM table_name where `column_name` LIKE 'm%';
1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?