ウェブサイト検索

MySQL の基本的なデータベース管理コマンド - パート I


データベースは、電子的に保存された構造化されたデータのセットです。データベースの概念はコンピューターがなかった時代にも私たちの祖先には知られていましたが、そのようなデータベースの作成と維持は非常に面倒な作業でした。たとえば100 ページの手動データベースで、給与が 10,000 未満の従業員をすべて検索しなければならないとしたら、それがどれほど難しいか考えてみてください。 。

今日の世界ではデータベースから逃れることはできません。現在、戦略データ、従業員記録、Web テクノロジーなど、あらゆる種類のデータを保存および取得するために、世界中で何百万ものデータベースが稼働しています。

データベースは、エンド ユーザーには表示されず、 またエンド ユーザーもデータベースと直接対話しないため、バックエンド プロセスと呼ばれることがよくあります。フロントエンド プロセス、つまりPHPVBASP.NETなどで動作し、フロントエンドにデータベースの処理を依頼します。バックエンドで。

OracleMySQLMySQLi、MariaDB、MongoDB など、利用可能なデータベース サーバーとクライアントがいくつかあります。これらすべての構文は次のとおりです。同じではありません。 1 つをマスターするということは、それらのほとんどを制御できるようになり、データベースのクエリを学ぶのが非常に簡単で楽しいことを意味します。

データベースに対する簡単なクエリから始めましょう。ほとんどの Linux ディストリビューションにデフォルトでバンドルされている MySQL を使用します。デフォルトでインストールされていない場合は、リポジトリから手動でインストールできます。

データベース クエリは、必要に応じてカスタムで洗練された結果を取得するためにデータベースに送信される単純なコードです。

MySQLデータベースをインストールする

yum」または「apt」パッケージ マネージャーを使用して、MySQL データベースをインストールします。

yum install mysql mysql-client mysql-server  (on Yum based Systems)

apt-get install mysql mysql-client mysql-server (on Apt based Systems)
MySQLを起動する

次のようにして MySQL データベース サービスを開始します。

service mysqld start
or
service mysql start

MySQL データベースをインストールすると、管理者 パスワードなどを設定するように求められる設定に移動します。インストールが完了してサーバーを起動したら、MySQL に移動します。プロンプトを出します。

mysql -u root -p

root を設定したユーザー名に置き換え、プロンプトが表示されたらパスワードを入力します。ログイン資格情報が正しければ、MySQL< にアクセスします。 まばたきするたびにプロンプトが表示されます。

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 195 

Server version: 5.5.31-0+wheezy1 (Debian) 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. 
Other names may be trademarks of their respective owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

このプロンプトでクエリを実行することは、非常に勉強になり、楽しいものです。

データベース tecmint を作成する
mysql> create database tecmint ;
Query OK, 1 row affected (0.02 sec) 

mysql>

: クエリが正しかったことが報告されます。これは、データベースが作成されたことを意味します。新しく作成したデータベースを次のように検証できます。

mysql> show databases; 
+--------------------+
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
9 rows in set (0.00 sec) 
mysql>

: 上記の出力内のデータベースに注目してください。

データベースの選択

次に、作業するデータベースを選択する必要があります。

mysql> use tecmint;
Database changed
mysql>
MySQL でテーブルを作成する

ここでは、次の 3 つのフィールドを持つ「minttec」というテーブルを作成します。

mysql> CREATE TABLE minttec (
    -> id Int(3), 
    -> first_name Varchar (15), 
    -> email Varchar(20) 
    -> ); 
Query OK, 0 rows affected (0.08 sec) 
mysql>

: 上記のクエリでは OK と表示されており、テーブルがエラーなしで作成されたことを意味します。テーブルを確認するには、以下のクエリを実行します。

mysql> show tables; 
+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| minttec           | 
+-------------------+ 

1 row in set (0.00 sec) 

mysql>

今のところ順調です。うん!テーブル「minttec」に作成した列は次のように表示できます。

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 
3 rows in set (0.00 sec)

mysql>

それはまさに魔法でした。とにかく宣言の種類とその意味について説明します。

  1. Int は整数です
  2. Varchar は、定義されている可変長の char です。 Type の後の値は、データを格納できるフィールドの長さです。

OK、列「first_name」の後に列「last_name」を追加する必要があります。

mysql> ALTER TABLE minttec ADD last_name varchar (20) AFTER first_name; 
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

次に、テーブルでそれを確認します。

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 

4 rows in set (0.00 sec) 

mysql>
MySQLに列を追加する

次に、右側に列を追加します。たとえば、メールの右側に列「」を追加します。

mysql> ALTER TABLE minttec ADD country varchar (15) AFTER email; 
Query OK, 0 rows affected (0.16 sec) 
Records: 0  Duplicates: 0  Warnings: 0 

mysql>

上記の列挿入クエリを確認します。

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
| country    | varchar(15) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec) 

mysql>
フィールドに値を挿入

フィールドに値を挿入する場合はどうすればよいでしょうか?

mysql> INSERT INTO minttec VALUES ('1' , 'Ravi' , 'Saive' , '[email ' , 'India' );
Query OK, 1 row affected (0.02 sec) 

mysql>

上の表に一度に 1 つ以上の値を挿入してみてはいかがでしょうか。

mysql> INSERT INTO minttec VALUES ('2' , 'Narad' , 'Shrestha' , '[email ' , 'India' ), ('3' , 'user' , 'singh' , '[email ' , 'Aus' ), ('4' , 'tecmint' , '[dot]com' , '[email ' , 'India' );
Query OK, 3 rows affected (0.05 sec) 
Records: 3  Duplicates: 0  Warnings: 0

上記の挿入を確認します。

mysql> select * from minttec; 
+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+ 
|    1 | Ravi	    | Saive     | [email  | India   | 
|    2 | Narad      | Shrestha  | [email      | India   | 
|    3 | user       | singh     | [email       | Aus     | 
|    4 | tecmint    | [dot]com  | [email  | India   | 
+------+------------+-----------+-------------------+---------+ 

4 rows in set (0.00 sec)

mysql>
フィールドの値を削除

上記の出力の 3 番目のエントリが無効であるため、3 番目のエントリを削除する必要があるとします。

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

上記の動作を確認します。

mysql> select * from minttec;

+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+
|    1 | Ravi       | Saive     | [email  | India   | 
|    2 | Narad      | Shrestha  | [email      | India   | 
|    4 | tecmint    | [dot]com  | [email  | India   | 
+------+------------+-----------+-------------------+---------+
3 rows in set (0.00 sec)
フィールドの値を更新する

ID (=4) を編集する必要があります。

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

上記のクエリを確認します。

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec) 
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

: 上記のクエリを実行するのは良い考えではありません。名前が「tecmint」の場合、ID は「4」に変更されます。エラーを最小限に抑えるために、次のように where 句で複数の列を使用することをお勧めします。

mysql> UPDATE minttec SET id = 6 WHERE first_name = 'tecmint'AND last_name = '[dot]com'; 
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>
MySQLで列を削除する

重要ではないと思われる列を削除 (削除) する必要があるとしましょう。ここでは「country」とします。

mysql> ALTER TABLE minttec drop country; 
Query OK, 3 rows affected (0.15 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql>

表を確認してください。

mysql> select * from minttec; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email  | 
|    2 | Narad      | Shrestha  | [email      | 
|    6 | tecmint    | [dot]com  | [email  | 
+------+------------+-----------+-------------------+
3 rows in set (0.00 sec) 

mysql>
MySQL でテーブルの名前を変更する

テーブル名「minttec」はあまり意味がないと思いませんか。これをtecmint_tableに変更してみてはいかがでしょうか。

mysql> RENAME TABLE minttec TO tecmint_table; 
Query OK, 0 rows affected (0.03 sec)

mysql>
すべてのテーブルをリストする

現在のデータベース内のすべてのテーブルを表示します。

mysql> show tables; 

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+
1 row in set (0.00 sec) 

mysql>

テーブルの名前が変更されました。次に、高度なツールを使用せずに、単一行のコマンドで上記のMySQL データベースのバックアップを作成します。 mysql プロンプトではなくターミナルで以下のコードを実行します。

mysqldump -u root -p tecmint > tecmint.sql

check the dumped file on your desktop which would have contents something like
-- MySQL dump 10.13  Distrib 5.5.31, for debian-linux-gnu (i686) --
-- Server version 5.5.31-0+wheezy1 -- 
Dump completed on 2013-09-02 12:55:37

MySQL データベースのバックアップを維持することを常にお勧めします。バックアップされたMySQL データの復元も、mysql プロンプトではなくターミナル プロンプトで実行する必要がある単純なコード行です。

ただし、最初にデータベースを削除して、復元が完全であるかどうかを確認します。

データベースを削除する
mysql> drop database tecmint; 
Query OK, 1 row affected (0.02 sec)

データベース サーバー上のデータベース「tecmint」を確認します。

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| my_database        | 
| mysql              | 
| performance_schema | 
| phpmyadmin         | 
| sisso              | 
| test               | 
+--------------------+

7 rows in set (0.00 sec) 
mysql>

素晴らしい!データベースが失われますが、バックアップはあるので心配する必要はありません。

データベースを復元する

失われたデータベースを復元するには、次のコマンドを実行します。

mysql -u root -p tecmint < tecmint.sql
Enter password:
ERROR 1049 (42000): Unknown database 'tecmint'

おっと!エラーです。データベース tecmint が作成されていません。そこで、mysql プロンプトに移動し、データベース「tecmint」を作成します。

mysql> create database tecmint; 
Query OK, 1 row affected (0.00 sec) 

mysql>

ここで、シェル プロンプトで (厳密に) 復元コマンドを実行します。

mysql -u root -p tecmint < tecmint.sql 
Enter password:

データベースを確認します。

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
8 rows in set (0.00 sec)

データベースの内容を確認します。

mysql> show tables from tecmint;

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+ 
1 row in set (0.00 sec)

mysql>

復元されたテーブルの内容を確認します。

mysql> select * from tecmint_table; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email  | 
|    2 | Narad      | Shrestha  | [email      | 
|    6 | tecmint    | [dot]com  | [email  | 
+------+------------+-----------+-------------------+

3 rows in set (0.00 sec)

これで終わりというわけではありません。主キー外部キー複数のテーブル、 そしてクエリの実行の概念について説明します。記事の次の部分では、簡単な PHP スクリプトを使用して、strong> を説明します。

記事を読んでどう感じたかをぜひお知らせください。皆様のご意見を大変嬉しく思います。 健康調整を保ち、Tecmintとのつながりを保ちます。