プログラミング学習記録ブログ

ちなみに、外国人なので、日本語が少しおかしいかも、、すみません

(MySQL)レコードの更新と削除、バックアップと復元

 レコードに入力漏れや変更がある場合、レコードを更新する必要があります。また、レコードごとに削除する場合も決行ありますのでメモしておきたいと思います。

レコードの更新

updateコマンドを使う
update テーブル名 set フィールド名 = '追加・変更する内容' where 条件設定
※条件設定を必ずしてください、そうしないとフィールドの中のデータが全て変更されます。

例: update users set email = 'kimura@dotinstall.jp' where id =5;
where id = 5という条件設定をしないと、全てのemailkimura@dotinstall.jpに変更されてしまいます。

レコードの削除

delete from テーブル名 where フィールド名(条件設定)
※条件設定を必ずしてください、そうしないと更新と同じフィールドの中のデータが全て削除されます。

データをバックアップ

MySQLにアクセスせずに、ローカル環境でできます。
$ mysqldump -u ユーザ名 -p データベース名 > バックアップファイル名.sql

データを復元

バックアップと同じく、ローカル環境でできます。
$ mysql -u ユーザ名 -p データベース名 < バックアップファイル名.sql
※バックアップと復元の違いは、
1. mysqldumpmysql
2. ><
です。

テーブルにレコードの作成と抽出について

テーブルの項目を確認

desc (テーブル名);

テーブルにレコード(データ)を挿入

insert into テーブル名 (フィールド名1, フィールド名2,......) values (データ, データ,........)

レコードを抽出

  1. 全てのフィールドのレコードを抽出:
    select * from テーブル名;
    *の意味は、全てを指定するという意味です。

  2. フィールド名を指定して抽出
    select フィールド名1, フィールド名2 from テーブル名;

※フィールドがたくさんあるとき、横並べは見づらいので、奇麗に並べてくれるコマンド
select * from テーブル名 \G
windowsの場合は\ではなく¥にしてください。

条件付きの抽出

whereコマンドを使う
例:こういうテーブルを作ったとします。

f:id:ChonMeng-WONG:20140710151402j:plain

  1. scoreが5以上のモノのみ引っ張りたい場合

 select * from users where score > 5.0;

  1. 6月1日の11時以降に作成されたモノを検索したい場合
     select * from users where created > '2012-06-01 11:00:00';

  2. dotinstall.comの文字列を入ってるレコードを検索したい場合
     select * from users where email like '%@dotinstall.com';
    %: 任意の文字列で、何文字でもかまいません。  like: 曖昧な検索

  3. dotinstall.jpの文字列を入ってるレコード  select * from users where email like '%@dotinstall.__';_: 任意の一文字

MySQLの操作

今回は
- テーブルの作成
- 扱えるデータ型
- フィールドの設定
について纏めたいと思います。

テーブルの作成

create table テーブル名 (フィールド名1 データ型1, フィールド名2 データ型2,........);
テーブルの作成方法は上記のコマンドになります。
 成功したら、Query OK, 0rows affectedが表示されます。また、テーブルを一覧表示をしたい場合は
show テーブル名;
を入力すれば、作成したテーブルを一覧表示できます。

扱えるデータ型

  1. 数値
    int: 整数値
    double: 浮動小数点
  2. 文字列
    char: 文字列の長さが決まっている
    varchar: 文字列の長さが可変
    text: 文字列の長さを指定しない
  3. 日付
    date: 日付について
    datetime: 日付と時間を両方について
    例:
    create table users(id int, name varchar(255));

フィールドの設定

データ型の指定の他、フィールドの設定をすることができます。
1. 空欄不可:
not null
2. 自動連番:
auto_increment
3. インデックス
主に主キー キー ユニークキー三種類があります。
主キー: primary key(一つしかつけられない)
キー: key(よく検索されるもの)
ユニークキー: unique(重複したらエラーで弾いてほしい場合)
例:

create table users(
id int not null auto_increment primary key, 
name varchar(255) unique);

idは整数型で、空欄不可、自動連番、主キーと設定しました。

MySQL on Debian

 仮想環境にあるDebianMySQLをインストールしてみました。 また仮想環境VM virtualBoxDebianをサーバにし、Macのターミナルからサーバにアクセスし、MacDebianMySQLを操作することを試してみました。

DebianMySQLをインストール

sudo aptitude -y install mysql-server-(バージョン)
を入力し、それで自動的にインストールしてくれます。バージョン指定していないと、自動的に最新版をダウンロードしてくます。
sudo apt-cache search mysql-server [ENTER]
を入力すると、入手可能なMySQLバージョンが表示されます。

Macから仮想環境のDebianにアクセス

 まず、DebianIPアドレスを確認します。
sudo ifconfig [ENTER] を入力し、その中のinet addr: 192.xxx.x.xxxDebianIPアドレスになります。VM virtualBOXのDebainの固定IP設置方法は↓を参考

VirtualBoxのネットワーク設定(ブリッジ接続) - aik's blog

 設定が終わったら、Mac側にターミナルを開き、 ssh admin(Debianユーザ名)@固定IPを入力すると、アクセスことができます。
例:
ssh john-howard@155.155.0.0

 成功したら、ターミナル画面ではユーザ名@IPアドレスを表示されます。

MySQLを起動

mysql -u root -pを入力し、パスワードを入力すればMySQLを起動できます。成功したらmysql> が表示されます。

次回はMySQLのコマンド、操作などを纏めたいと思います。

Linux OS - Debianのいろいろ(apt編)

 APT (アプト、Advanced Packaging Tool) は、Debian用のパッケージ管理システムである。現在はRPMに対応するように移植されたapt-rpmもある。(Wikipediaより抜粋)
 aptコマンドを使えば、ソフトウェア・ソースパッケージのダウンロード・更新・検索・削除ができる。また、aptコマンドを使うためにroot権限が必要なので、このブログを参考してsudo機能を入れた方か便利です。

Linux OS - Debianのいろいろ(sudo編) - 日本語学習ブログ

追加・ダウンロード

新しいソフトウェアのインストール
sudo apt-get install パッケージ名 [ENTER]

ソースパッケージのダウンロード
sudo apt-get source パッケージ名 [ENTER]

更新

リポジトリの更新
sudo apt-get update [ENTER]

インストール済みのソフトウェアの更新
sudo apt-get upgrade [ENTER]

ディストリビューションのアップグレード
sudo apt-get dist-upgrade [ENTER]

検索

パッケージの検索
sudo apt-cache search 検索キーワード [ENTER]

特定パッケージの情報表示
sudo apt-cache show パッケージ名 [ENTER]

削除

特定パッケージの削除
sudo apt-get remove パッケージ名 [ENTER]

特定パッケージの設定ファイルを含めた削除
sudo apt-get purge パッケージ名 [ENTER]

以上です。

Linux OS - Debianのいろいろ(文字化け修正編)

Virtual BoxでDebianを入れると文字化けする問題を修正

  1. 設定ファイルに入る
$ sudo vi /etc/bash.bashrc

PS: bash.bashrcの編集はroot権限が必要です。sudoを使って「$」が「#」にならなくてもroot権限を使える。

  1. ファイルの末尾に以下を入れる。
case $TERM in
    linux) LANG=C ;;
    *) LANG=ja_JP.UTF-8 ;;
esac
  1. 保存された設定を反映する
$ source /etc/bash.bashrc

これで文字化けの◆が見えるようになるはず。

もしそれで変更されなかったら、以下の参考サイトで従ってやって見てください。

Server World - ネットワークサーバー構築

次はaptです。

Linux OS - Debianのいろいろ(sudo編)

Virtual BoxでDebianを入れてみました。
 しかし、sudo と 文字化け と apt に関しては設定がややこしいので、ここで纏めます。
aptのupdate・removeなどのコマンドはroot権限が必要なので、先にsudoをインストールしたほうがおすすめ。(もちろんsuでroot権限に入っても実行できますが、個人的にはsudoのほうが良いと)

sudoをインストールする

  1. suを入力し、パスワードが求めてくる。パスワードを入力したら、末尾の「$」から「#」になる。これでroot権限ユーザという証です。
  2. aptitude install sudoを入力し、[ENTER]を押せば、自動的にインストールしてくれる。

sudoのPATH設定

 セキュリティ上、sudo時専用のPATHを設定することが必要ですが、最新版のDebianであれば、デフォルトで設定されているので手動設定は不要です。
 もしバージョンがわからなければ、以下の手順で確認&修正はできます。
1. # visudoを入力し(root権限の状態)、PATHの設定ファイルに入る。
2. Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binこの文章が入っていれば、設定不要です。もし入っていなければ、手動で追加してください。

sudoの使い方

 今までroot権限に入るにはsuを入力し、辞めるときにはexitを入力しなければならないが、sudoをコマンドの先頭に入力すれば、コマンドごとにroot権限で実行することができるようになる。
例:
従来の場合(su--exit)

su
aptitude remove vim
exit

sudoの場合

sudo aptitude remove vim

便利になったね。

次は文字化け修正編。