reponの忘備録

「喉まででかかってる」状態を解消するためのメモ

LAMPのお勉強日記 (5)

LAMP環境のお勉強日記

目的

  • 自分が何をやったのか記録する
  • 自分が何を出来るのか公開する

経過

まず、MySQLの勉強をする(その後、PHPとの連携の勉強に移る予定)。

XAMPPにより、コマンドプロンプトで作業する。

リレーショナルデータベースとは(再掲)



はじめに

MySQLモニタに入る。
コマンドプロンプト

>mysql -u root -p
Enter password:[パスワード]
mysql>

使用するデータベースを指定する

mysql>use db1

今日学んだこと

テーブルやレコードのコピー

テーブルのカラム構造とレコードを丸ごとコピーする

「create table [新規テーブル名] select * from [元となるテーブル名];」

ex)
mysql>select * from tb3;
+----+--------+------+
| ID | name   | age  |
+----+--------+------+
|  1 | tanaka |   30 |
|  2 | nakano |   40 |
|  3 | hirano |   26 |
|  4 | nodata |   32 |
+----+--------+------+
mysql>create table tb4 select * from tb3;
mysql>select * from tb4;
+----+--------+------+
| ID | name   | age  |
+----+--------+------+
|  1 | tanaka |   30 |
|  2 | nakano |   40 |
|  3 | hirano |   26 |
|  4 | nodata |   32 |
+----+--------+------+
テーブルのカラム構造だけコピーする

「create table [新規テーブル名] like [元となるテーブル名]」

ex)
mysql>desc tb3;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| ID    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(10) | YES  |     | nodata  |                |
| age   | int(11)     | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
mysql>create table tb5 like tb3;
mysql> desc tb5;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| ID    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(10) | YES  |     | nodata  |                |
| age   | int(11)     | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
他のテーブルのデータを丸ごとコピーする

「insert into [テーブル名] select * from [元となるテーブル名];」

ex)
mysql>select * from tb3;
+----+--------+------+
| ID | name   | age  |
+----+--------+------+
|  1 | tanaka |   30 |
|  2 | nakano |   40 |
|  3 | hirano |   26 |
|  4 | nodata |   32 |
+----+--------+------+
mysql>select * from tb5;
Empty set (0.00 sec)
mysql>insert into tb5 select * from tb3;
mysql>select * from tb5;
+----+--------+------+
| ID | name   | age  |
+----+--------+------+
|  1 | tanaka |   30 |
|  2 | nakano |   40 |
|  3 | hirano |   26 |
|  4 | nodata |   32 |
+----+--------+------+

※カラム構造が一致していないとコピー不可
※主キーがある場合には、主キー同士に重なりがあるとコピー不可

特定のカラムを選択してコピー

「insert into [テーブル名] select [カラム名] from [元となるテーブル名];」

※カラム構造が一致していないとコピー不可
※主キーがある場合には、主キー同士に重なりがあるとコピー不可


テーブル・データベース・レコードの削除

テーブルの削除

drop table [テーブル名];」

※完全に消えます。注意!

データベースの削除

drop database [データベース名];」

※完全に消えます。注意!

レコードの丸ごと削除

「delete from [テーブル名]」

※カラム構造は残したまま、データすべてが消えます。


今回はここまで。


次回は条件によるデータ抽出。

おしらせ

つながり合うSNS

http://http://survive-sns.jp/

メンバー募集中です!


サーバを新たに立て、一新した「サバイブSNS2.0」に、ぜひご加入ください!