Carpe Diem

  Top > スポンサー広告> MySQL > MySQLの基本操作  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MySQLの基本操作

2011 - 12/12 [Mon] - 21:20

MySQLの基本的な操作。シェルスクリプトでヒアドキュメントを使用すればこの通りに書いてOKです。

ここでは
ユーザ名:root
パスワード:foo
とします。

◆ログイン

$ mysql --user=root --password=foo
or
$ mysql -u root -p
Enter password:foo


◆パスワードの変更
新しいパスワードを「bar」とします。ログインした状態で
mysql> set password for root@localhost = password('bar');


◆データベースの確認
サーバ内のデータベースを確認します。私の場合、mysqlやphpmyadmin、redmineなどがすでに入っていますね。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| phpmyadmin |
| redmine_default |
+--------------------+
5 rows in set (0.00 sec)

◆データベースの作成
foodataというデータベースを作成します。
mysql> create database foodata;

◆データベースの削除
mysql> drop database foodata;

◆データベースの選択
次以降のテーブル操作では、まずデータベースを選択しなければ始まりません。
mysql> use foodata;


◆テーブルを作成
データベースを選択後、データベース内にテーブル(表)を作成します。
mysql> create table foo(項目 データ形式 その他);
の形式で記述します。

今回は住所録用にaddressというテーブルを作ります。
mysql> create table address(
mysql-> id    int auto_increment primary key,
mysql-> name   text,
mysql-> code   text,
mysql-> tel   text);

何度かエンターで改行していますが、MySQLは最後に「;(セミコロン)」がこない限り一つの文とみなされます。実際ヒストリー(↑キーで過去の入力)では一文になってます。
書く内容は主に
Field フィールド名
Type データ型
Null Nullを許可するかどうか
Key 主キー
Default 初期値
Extra オートインクリメントなど


となります。主キー(Primary Key)はレコードを確実に区別できる(一意である)フィールドに設定するため、重複したデータは入力できません。


◆テーブルの構造の確認(フィールド)
addressテーブルの構造を確認します。

mysql> describe address;
or
mysql> desc address;
or
mysql> show fields from address;
or
mysql> show columns from address;
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | text | YES | | NULL | |
| code | text | YES | | NULL | |
| tel | text | YES | | NULL | |
+-------+---------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

◆テーブルにデータを入力する
mysql> insert into address (name,code,tel ) values ('名前', '学籍番号', '電話番号');

例として名前が「abc」、学籍番号が「012345」、電話番号が「012-345-6789」というデータを入力します。
mysql> insert into address (name,code,tel) values ('abc', '0123', '6789');


◆テーブルの中身を表示
①全項目の表示
mysql> select * from address;
+----+------+------+------+
| id | name | code | tel |
+----+------+------+------+
| 1 | abe | 0123 | 6789 |
+----+------+------+------+
1 row in set (0.00 sec)

②一項目だけ。今回はnameを見るとします。
mysql> select name from address;
+------+
| name |
+------+
| abe |
+------+
1 row in set (0.00 sec)
③複数項目。nameとcodeとします。
mysql> select name,code from address;
+------+------+
| name | code |
+------+------+
| abe | 0123 |
+------+------+
1 row in set (0.00 sec)

④行を指定して表示させる(例:addressのidが1の行のname項目を表示させる)
mysql> select name from address where id=1;
+------+
| name |
+------+
| abe |
+------+
1 row in set (0.00 sec)

◆テーブルの中身を更新する。
update テーブル set フィールド="新しい値" where 指定する行

例えばid=1のnameフィールドの値を変更したければ
mysql> update address set name="hoge" where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

と入力します。更新されたか確認すると
mysql> select name,code from address;
+------+------+
| name | code |
+------+------+
| hoge | 0123 |
+------+------+
1 row in set (0.00 sec)

確かに更新されてます。もしwhereがないと、そのフィールドの値全てが新しい値に一律に変更されます。リセットするときなどに有用です。


◆テーブルの中身を消去する
①すべての行を消去する
mysql> delete from address;

②テーブルの指定した行を消去する場合(例:idが3の行を消去する)
mysql> delete from address where id=3;


とりあえずこれで一通りのことは出来ると思います。
以上です。


ソース:
MySQL ~コマンドライン編~
MySQL初心者入門講座

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。