MySQL
提供: Wikinote
覚え書き
接続
mysql コマンドで接続する。
# mysql -u root -p [database] mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | pt2_db | | test | | wikidb | +--------------------+ 5 rows in set (0.00 sec) mysql> use pt2_db Database changed mysql> show tables; +----------------------+ | Tables_in_pt2_db | +----------------------+ | Recorder_categoryTbl | | Recorder_channelTbl | | Recorder_keywordTbl | | Recorder_logTbl | | Recorder_programTbl | | Recorder_reserveTbl | +----------------------+ 6 rows in set (0.00 sec)
テーブルのチェックと修復
某 PHP アプリが正常に動作しないと思ったら、データベースのテーブルが破損していた。
mysql> check table Recorder_programTbl; +----------------------------+-------+----------+----------------------------------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +----------------------------+-------+----------+----------------------------------------------------------------------------------+ | pt2_db.Recorder_programTbl | check | error | Table './pt2_db/Recorder_programTbl' is marked as crashed and should be repaired | +----------------------------+-------+----------+----------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
以下のコマンドで修復できる。
mysql> repair table Recorder_programTbl; +----------------------------+--------+----------+----------+ | Table | Op | Msg_type | Msg_text | +----------------------------+--------+----------+----------+ | pt2_db.Recorder_programTbl | repair | status | OK | +----------------------------+--------+----------+----------+ 1 row in set (1.24 sec)
データベース全体をチェックする場合は、mysqlcheck コマンドが使える。
# mysqlcheck -u root -p wikidb Enter password: wikidb.archive OK wikidb.category OK wikidb.categorylinks OK wikidb.externallinks OK wikidb.filearchive OK ...
SQL
ソフ開に合格した時は覚えてたんだが、使わないとやはり忘れてしまうなぁ。
データを抽出
SELECT 列名 FROM テーブル名 WHERE 条件式
レコードを削除
DELETE FROM テーブル名 WHERE 条件式
レコードを更新
UPDATE テーブル名 SET 列名 = 値 WHERE 条件式