第二段階、データベースの活用

データベース: ここでは例として mysql を使用します

最初にデータベースを使用するには、以下をインストールする必要があります

画像の説明を追加してください

データベース(mysql)をインストールする

データベースのインストールとダウンロード

データベースの使用法とコマンド

连接和断开服务器

启动mysql服务:

sudoサービスmysqlの開始

停止mysql服务:

sudoサービスmysql停止

サーバーに接続するには、通常、mysql をトリガーするための MySQL ユーザー名と、おそらくパスワードを指定する必要があります。サーバーが別のマシンで実行されている場合は、ホスト名も指定する必要があります。管理者に連絡して接続パラメータ (ホスト名、ユーザー名、パスワードなど) を見つけてください。正しいパラメータがわかっている場合は、次のように接続できます。

シェル> mysql -h ホスト -u ユーザー -p
パスワードを入力してください: ********

host と user は、MySQL サーバーが実行されているホスト名と mysql ユーザー名を表します。ご利用の際はご自身で設定した値に置き換えてご利用ください。__** は、上記のコマンドを入力して Enter キーを押した後、パスワードを入力し続ける必要があることを意味します。すべてが機能した場合は、mysql プロンプトにいくつかの紹介情報が表示されるはずです。


 shell> mysql -h host -u user -p
 Enter password: ********
 Welcome to the MySQL monitor. Commands end with ; or \g.
 Your MySQL connection id is 25338 to server version: 5.7.15-standard
 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 

 mysql>

mysql> プロンプトは、mysql の準備が完了し、SQL ステートメントの入力を待っていることを示します。MySQL が実行されているマシンにログオンしている場合は、host を省略して、次のように単純に使用できます。

シェル> mysql -u ユーザー -p

ログインしようとすると、「2002 (HY000): ソケット '/tmp/mysql.sock' (2) を介してローカル MySQL サーバーに接続できません」のようなエラー メッセージが表示される場合があります。これは、MySQL サーバー プロセスが無効であることを意味します。走っていない。管理者に問い合わせるか、セクション 2 を参照して、オペレーティング システムに MySQL をインストールおよび更新することが適切です。ログインしようとするときによく発生するその他の問題のヘルプについては、セクションB.5.2「MySQL プログラム使用時の一般的なエラー」を参照してください。一部の MySQL インストールでは、ローカルで実行されている MySQL サーバーに匿名ユーザーとして接続できます。この場合は、サーバーに接続するときにパラメータを追加しません。次のように。

シェル>mysql

正常に接続したら、mysql> コマンド プロンプトで QUIT (または \q) と入力して切断します。次のように。

mysql> QUIT
Bye

お問い合わせ

前の章で説明したように、サーバーに接続していることを確認してください。接続後は、その中のデータベースをクエリしないでください。もちろん、チェックすることもできます。現時点では、テーブルの作成、テーブルへのデータのロード、テーブルからのデータの取得に直接進む前に、クエリについてある程度理解しておくことが非常に重要です。この部分では、クエリの基本原則について説明します。いくつかのクエリを使用して、次のことを試すことができます。 mysql がどのように機能するかを理解するために。これは簡単なクエリの例です。クエリはバージョン番号と現在の日付です。mysql コマンド プロンプトに次のように入力します。


1. mysql> SELECT VERSION(), CURRENT_DATE; 
2. +--------------+--------------+ 
3. | VERSION() | CURRENT_DATE | 
4. +--------------+--------------+ 
5. | 5.7.1-m4-log | 2012-12-25 | 
6. +--------------+--------------+ 
7. 1 row in set (0.01 sec) 8. mysql>
8. mysql>

このクエリは、mysql に関するいくつかのことを説明します。クエリには、通常、セミコロン (;) が続く SQL ステートメントが含まれます (もちろん、QUIT などのセミコロンを入力しない例外もあります。これについては後で学習します)。 。クエリを実行すると、mysql はクエリをサーバーに送信して実行して結果を表示し、次のクエリの準備として別の mysql> コマンド プロンプトを出力します。mysql はクエリ結果をテーブル (行と列) に表示します。最初の行には列ラベルが含まれます。次の行はクエリ結果です。列ラベルは、データベース テーブルから抽出した列の名前です。取得しているものがテーブルの列ではなく、式の値である場合、mysql はその列を式自体でマークします。mysql は返された行数とクエリの実行にかかった時間を表示します。これにより、サービスのパフォーマンスの大まかな指標が得られます。これらの時間値は、負荷やネットワーク遅延などの要因の影響を受けるため、クロック時間 (CPU 時間やマシン時間ではない) を表すため、あまり正確ではありません。(わかりやすくするために、次の例では「セット内の行」が表示されない場合があります) キーワードでは大文字と小文字が区別されず、次のクエリは同等です。

1. mysql> SELECT VERSION(), CURRENT_DATE; 
2. mysql> select version(), current_date; 
3. mysql> SeLeCt vErSiOn(), current_DATE;

これは別のクエリです。mysql を使用して簡単な計算を行うことができます。

1. mysql> SELECT SIN(PI()/4), (4+1)*5; 
2. +------------------+---------+ 
3. | SIN(PI()/4) | (4+1)*5 | 
4. +------------------+---------+ 
5. | 0.70710678118655 | 25 | 
6. +------------------+---------+ 
7. 1 row in set (0.02 sec)

これらのクエリは比較的短い単一行のステートメントです。複数のステートメントを 1 行に入力できます。各ステートメントの後にセミコロンを入力するだけです。


1. mysql> SELECT VERSION(); SELECT NOW(); 
2. +------------------+ 
3. | VERSION() | 
4. +------------------+ 
5. | 5.7.10-ndb-7.5.1 | 
6. +------------------+ 
7. 1 row in set (0.00 sec) 
8. +---------------------+ 
9. | NOW() | 
10. 
11. 11. +---------------------+ 12. | 2016-01-29 18:02:55 | 13. +---------------------+ 14. 1 row in set (0.00 sec)


クエリでは、すべてを 1 行に置く必要はありません。このような長いクエリの場合、複数行に分けても問題ありません。Mysql は、入力行の終わりではなく、セミコロンを探すことによってステートメントが終了するかどうかを判断します。(言い換えると、mysql は独自のフォーマットされた入力を受け入れます。つまり、セミコロンが表示されるまで入力を受け入れることができます) 以下に、単純な複数行のステートメントを示します。


1. mysql> SELECT 
2. -> USER() 
3. -> , 
4. -> CURRENT_DATE; 
5. +---------------+--------------+ 
6. | USER() | CURRENT_DATE | 
7. +---------------+--------------+
8. | jon@localhost | 2010-08-06 | 
9. +---------------+--------------+

この例では、複数行の最初の行を入力して Enter キーを押した後、プロンプトが mysql> から -> にどのように変化するかに注目してください。これは、mysql が完全なステートメントを確認しておらず、残りを待機していることを示しています。プロンプトは貴重なフィードバックを提供するため、非常に便利です。このフィードバックを使用すると、mysql が待機していることを常に感じることができます。入力中のクエリをキャンセルしたい場合は、次のように \c を入力します。

1. mysql> SELECT 
2. -> USER() 
3. -> \c 
4. mysql>

ここで、\c を入力すると、プロンプトが mysql> に戻ることに注意してください。これにより、新しいクエリの準備ができていることがフィードバックされます。次の表は、各プロンプトの意味を示しています。

促す 意味
mysql> 新しいクエリの準備ができました
-> 複数行の次の行を待っています
'> 一重引用符で始まる文字列の次の行を待機しています
"> 二重引用符で始まる文字列の次の行を待機しています
`> (') 記号で始まる文字列の次の行を待機しています
/*> コメント文字 (/*) で始まる文字列の次の行を待機しています

1. mysql> select user()` 
2. `> ` 
3. -> /* 
4. /*> */ 
5. -> ' 
6. '> ' 
7. -> " 
8. "> " 
9. -> \c

データベースを作成して使用する


1、 Creating and Selecting a Database 
2 、Creating a Table 
3、 Loading Data into a Table 
4、 Retrieving Information from a Table 

SQL ステートメントの入力方法を理解したら、データベースにアクセスする準備が整います。あなたの家 (動物園) でペットを数匹飼っており、その情報を追跡したいとします。この時点で、必要な情報を保存およびロードするためのテーブルを作成できます。その後、データベース内のテーブルを検索することで、さまざまな質問に答えることができます。このセクションでは、次の方法を示します。

1. データベースを作成する
2. テーブルを作成する
3. テーブルにデータをロードする4.さまざまな
でテーブルからデータ
方法
たとえば、このようなデータベースは、農家が家畜の情報を追跡するために使用したり、獣医師が患者の記録を追跡したりするために使用することができます。SHOW ステートメントを使用して、サーバー上に現在存在するデータベースを検索します。


1. mysql> SHOW DATABASES; 
2. +----------+ 
3. | Database | 
4. +----------+ 
5. | mysql | 
6. | test | 
7. | tmp | 
8. +----------+

mysql データベースにはユーザー権限が記述されています。テスト データベースは通常、ユーザーがテストのために使用します。
お使いのマシンでは、このステートメントによって表示されるデータベース リストが異なる場合があります。SHOW DATABASES は、現在のユーザーが権限を持つデータベースのみを表示し、権限を持たないデータベースは表示しません。

テスト データベースが存在する場合は、それにアクセスしてみます。

1. mysql> USE test 
2. Database changed

USE は、QUIT と同様、セミコロンを必要としません (必要に応じてセミコロンを使用することもできます)。USE ステートメントには、もう 1 つの特別な場所があります。それは、単一行で指定する必要があります。次の例では、テスト データベース (アクセス権がある場合) を使用できますが、作成したものはすべて、アクセス権を持つユーザーによって削除される可能性があります。このため、MySQL 管理者に、データベースが自分のものになるように依頼する必要があるでしょう。menagerie を使用したい場合、管理者は次のようなステートメントを実行する必要があります。

 mysql> GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';

your_mysql_name は MySQL によって割り当てられたユーザー名で、your_client_host は接続しているサーバーのホスト名です。

データベースの作成と選択

動物園データベースを作成します。

 mysql> CREATE DATABASE menagerie;

データベース作成時にデータベースの文字コード(ここではGBKを使用)を指定したい場合は、以下の方法があります。

 mysql> create database menagerie DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

または、utf8 エンコーディングを使用します。

mysql> CREATE DATABASE menagerie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

または、構成ファイルを直接変更します

hadoop@node1:~/mysql_shell$ sudo vi /etc/mysql/my.cnf

次に、ファイルの最後に以下を追加します。

1. [mysqld] 2.3. character-set-server=utf8 4. collation-server=utf8_general_ci

次に、MySQL サービスを再起動します。

1. hadoop@node1:~/mysql_shell$ sudo service mysql stop 
2. hadoop@node1:~/mysql_shell$ sudo service mysql start

status ステータス情報は、次のコマンドで表示できます。

mysql> status

mysql Ver 14.14 Distrib 5.7.13, for Linux (x86_64) using EditLine wrapper

Connection id: 3 Current database: eduCloud Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.7.13-0ubuntu0.16.04.2 (Ubuntu) Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/run/mysqld/mysqld.sock Uptime: 9 min 25 sec

Threads: 1 Questions: 62 Slow queries: 0 Opens: 128 Flush tables: 1 Open tables: 47 Queries per second avg: 0.109

動物園データベースを使用 (選択) します。

 1. mysql> USE menagerie 
 2. Database changed

データベース サーバーに接続するときに使用するデータベース管理を指定することもできます。

1. shell> mysql -h host -u user -p menagerie 
2. Enter password: ********

デフォルトでは、mysql へのログインはパスワードなしのログインであり、次の方法でパスワードを変更できます。MySQL 5.7.6 以降のバージョンでは、次のコマンドを使用します。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5 以前のバージョンの場合は、次のコマンドを使用します。

1. SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

このうち、MyNewPass が今回設定する新しいパスワードです。

テーブルを作成する

ペットの名前、所有者、種類、性別、生年月日、死亡日の列を含むペット テーブル (ペット テーブル) を作成します。

1. mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), 
2.     -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

テーブルを作成したら、作成したばかりのテーブルが目的のテーブルであるかどうかを確認できます。

1. mysql> SHOW TABLES; 
2. +---------------------+ 
3. | Tables in menagerie | 
4. +---------------------+ 
5. | pet | 
6. +---------------------+
7. mysql> DESCRIBE pet; 
8. +---------+-------------+------+-----+---------+-------+ 
9. | Field | Type | Null | Key | Default | Extra | 
10. +---------+-------------+------+-----+---------+-------+  
11. | name | varchar(20) | YES | | NULL | | 
12. | owner | varchar(20) | YES | | NULL | | 
13. | species | varchar(20) | YES | | NULL | | 
14. | sex | char(1) | YES | | NULL | | 
15. | birth | date | YES | | NULL | | 
10.| death | date | YES | | NULL | | 
16. +---------+-------------+------+-----+---------+-------+

テーブル ペットのフィールド、タイプ、その他のデータを確認できます。
次のように、スクリプトを通じてテーブルを作成し、ファイル内にテーブルを作成するスクリプトを記述してから、mysql> でsource コマンドまたは .run を使用することもできます。

 1. mysql> source ./testCreateTable.txt; 
 2. Database changed 
 3. Query OK, 0 rows affected, 1 warning (0.00 sec) 
 4. Query OK, 0 rows affected (0.24 sec)
1. mysql> \. ./studentScore.txt 
2. Database changed 
3. Query OK, 0 rows affected (0.14 sec) 
4.
5. Query OK, 0 rows affected (0.24 sec)

このうち、testCreateTable.txt は以下の内容のスクリプトファイルです。

1. use test 
2. drop table if exists testTable; 
3. create table testTable(name varchar(50), 
4. address varchar(50), 
5. timestamp timestamp, 
6. primary key(name));

おすすめ

転載: blog.csdn.net/weixin_58276266/article/details/131508836