MySQL

提供: Wikinote
2011年8月23日 (火) 18:36時点におけるHagio (トーク | 投稿記録)による版 (SQL)

移動: 案内検索

覚え書き

接続

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 条件式