「MySQL」の版間の差分

提供: Wikinote
移動: 案内検索
(接続)
(SQL)
行79: 行79:
  
 
* [http://ja.wikipedia.org/wiki/DELETE_(SQL) DELETE (SQL) - Wikipedia]
 
* [http://ja.wikipedia.org/wiki/DELETE_(SQL) DELETE (SQL) - Wikipedia]
 +
 +
==== レコードを更新 ====
 +
UPDATE テーブル名 SET 列名 = 値 WHERE 条件式
 +
 +
* [http://ja.wikipedia.org/wiki/UPDATE_(SQL) UPDATE (SQL) - Wikipedia]

2011年8月23日 (火) 18:36時点における版

覚え書き

接続

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