mysql 基本操作文コマンドの詳細な説明

mysql 基本操作文コマンドの詳細な説明

1. MySQLに接続する

フォーマット: mysql -h ホストアドレス -u ユーザー名 -p ユーザーパスワード

1. このマシン上の MYSQL に接続します。

まず DOS ウィンドウを開き、mysql\bin ディレクトリに移動して、mysql -u root -p コマンドを入力します。Enter キーを押すと、パスワードの入力を求められます。ユーザー名の前にスペースがあってもなくてもかまいませんが、パスワードの前にスペースがあってはなりません。スペースがあると、パスワードの再入力を求められます。

MYSQL をインストールしたばかりの場合は、スーパーユーザー root にはパスワードがないので、Enter キーを押して MYSQL に入ります。MYSQL プロンプトは次のとおりです: mysql>

2. リモートホスト上の MYSQL に接続します。リモート ホストの IP が 110.110.110.110、ユーザー名が root、パスワードが abcd123 であるとします。次に、次のコマンドを入力します。

mysql -h110.110.110.110 -u root -p 123;(注:u與root之間可以不用加空格,其它也一樣)

3. MYSQLコマンドを終了します: exit (Enterキーを押します)

2. パスワードを変更する

フォーマット: mysqladmin -u ユーザー名 -p 古いパスワード パスワード 新しいパスワード

1. rootにパスワードab12を追加します。

まず、DOSでmysql\binディレクトリに入り、次のコマンドを入力します。

mysqladmin -u root -password ab12

注: 最初は root にパスワードがないため、-p 古いパスワード項目は省略できます。

2. ルートパスワードをdjg345に変更します。

mysqladmin -u root -p ab12 password djg345

3. 新しいユーザーを追加する

注: 上記とは異なり、次のコマンドは MYSQL 環境にあるため、コマンド終了文字としてセミコロンが続きます。

形式: 「password」で識別される username@login ホストに database.* の select を許可します

1. パスワードが abc のユーザー test1 を追加します。これにより、このユーザーは任意のホストにログインでき、すべてのデータベースを照会、挿入、変更、および削除する権限を持つことになります。まず、root ユーザーとして MYSQL に接続し、次のコマンドを入力します。

grant select,insert,update,delete on *.* to test1@localhost Identified by “abc”;

しかし、ユーザーを追加するのは非常に危険です。test1 のパスワードを知っている人がいれば、インターネット上のどのコンピューターからでも MySQL データベースにログインして、データを自由に操作できます。解決策については 2 を参照してください。

2. パスワード abc を持つユーザー test2 を追加します。これにより、このユーザーは localhost にのみログインし、データベース mydb を照会、挿入、変更、削除できるようになります (localhost はローカル ホスト、つまり MYSQL データベースが配置されているホストを指します)。このようにすると、ユーザーが test2 のパスワードを知っていても、インターネットから直接データベースにアクセスすることはできず、MYSQL ホストの Web ページを介してのみアクセスできます。

grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”;

test2 にパスワードを設定したくない場合は、別のコマンドを入力してパスワードを削除できます。

grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”;

4.1 データベースを作成する

注: データベースを作成する前に、まず Mysql サーバーに接続する必要があります。

コマンド: データベースを作成 <データベース名>

例1: xhkdbという名前のデータベースを作成する

mysql> データベース xhkdb を作成します。

例2: データベースを作成し、ユーザーを割り当てる

CREATE DATABASE データベース名;

'password' によって識別される databasename@localhost に対して、databasename.* に対する SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、ALTER 権限を付与します。

SET PASSWORD FOR 'データベース名'@'localhost' = OLD_PASSWORD('password');

3 つのコマンドを順番に実行して、データベースの作成を完了します。注意: 中国語の「パスワード」と「データベース」はユーザー自身が設定する必要があります。

4.2 データベースの表示

コマンド: show databases (注意: 最後に s があります)

mysql> show databases;

注意: 表示時に文字化けしないようにするには、データベースのデフォルトのエンコードを変更する必要があります。以下は、GBK エンコーディング ページを例にしています。

1. MYSQL設定ファイルを変更します。my.iniのdefault-character-set=gbkを変更します。

2. コードランタイムの変更:

①Javaコード:

jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk

②PHPコード:

header("Content-Type:text/html;charset=gb2312");

③C言語コード:

int mysql_set_character_set( MYSQL * mysql, char * csname);

この関数は、現在の接続のデフォルトの文字セットを設定するために使用されます。文字列 csname は有効な文字セット名を指定します。接続照合は、文字セットのデフォルトの照合になります。この関数は SET NAMES ステートメントと同様に動作しますが、mysql->charset の値も設定するため、mysql_real_escape_string() によって設定される文字セットに影響します。

4.3 データベースの削除

コマンド: drop database <データベース名>

たとえば、xhkdbという名前のデータベースを削除します。

mysql> drop database xhkdb;

例1: 既存のデータベースを削除する

mysql> drop database drop_database;

Query OK, 0 rows affected (0.00 sec)

例2: 存在しないデータベースを削除する

 mysql> データベースを削除します。drop_database;

 エラー 1008 (HY000): データベース 'drop_database' を削除できません。データベースが存在しません。

  // エラーが発生しました。'drop_database' データベースを削除できません。データベースが存在しません。

 mysql> データベースが存在する場合は削除します drop_database;

 クエリは正常、影響を受けた行数 0、警告数 1 (0.00 秒)//データベースが存在しないことを示す警告を生成しますmysql> create database drop_database;

 クエリは正常、1 行が影響を受けました (0.00 秒)

 mysql> drop database if exists drop_database; //if exists はデータベースが存在するかどうかを判断します。存在しない場合はエラーは生成されません。クエリは正常、0 行が影響を受けました (0.00 秒)

4.4 データベースへの接続

コマンド: use <データベース名>

たとえば、xhkdb データベースが存在する場合は、それにアクセスしてみます。

mysql> use xhkdb;

画面プロンプト: データベースが変更されました

use ステートメントは、後続のステートメントのデフォルト (現在の) データベースとして db_name データベースを使用するように MySQL に指示します。このデータベースは、セッションが終了するまで、または別の USE ステートメントが発行されるまで、デフォルトのデータベースのままになります。

 mysql> USE db1;

 mysql> SELECT COUNT(*) FROM mytable; # db1.mytableから選択します

 mysql> USE db2;

 mysql> SELECT COUNT(*) FROM mytable; # db2.mytableから選択します

USE ステートメントを使用して特定の現在のデータベースをマークしても、他のデータベース内のテーブルにアクセスできなくなるわけではありません。次の例では、db1 データベースの authors テーブルと db2 データベースの edits テーブルにアクセスできます。

mysql> USE db1;

 mysql> author_name、editor_name から author、db2.editor を選択

  -> WHERE author.editor_id = db2.editor.editor_id;

USE ステートメントは Sybase との互換性のために作成されました。

一部のネットユーザーは、接続後にログアウトする方法を尋ねました。実際には、終了する必要はありません。データベースを使用した後、show databases を使用してすべてのデータベースを照会できます。別のデータベースに移動する場合は、別のデータベースの名前を使用するだけです。

4.5 現在選択されているデータベース

コマンド: mysql> select database();

MySQL の SELECT コマンドは、他のプログラミング言語の print や write に似ています。これを使用して、文字列、数値、数式の結果などを表示できます。 MySQL で SELECT コマンドの特別な機能を使用するにはどうすればよいでしょうか?

1. MYSQLのバージョンを表示する

mysql> バージョンを選択します();

+-----------------------+

| バージョン() |

+-----------------------+

| 6.0.4-アルファ-コミュニティ |

+-----------------------+

セット内の1行(0.02秒)

2. 現在の時刻を表示する

mysql> now() を選択します。

+---------------------+

| 今() |

+---------------------+

| 2009-09-15 22:35:32 |

+---------------------+

セット内の1行(0.04秒)

3. 年、月、日を表示する

DAYOFMONTH(CURRENT_DATE)を選択します。

+--------------------------+

| 現在の日付(月) |

+--------------------------+

| 15 |

+--------------------------+

セット内の1行(0.01秒)

月(CURRENT_DATE)を選択します。

+---------------------+

| 月(現在の日付) |

+---------------------+

| 9 |

+---------------------+

セット内の 1 行 (0.00 秒)

YEAR(CURRENT_DATE)を選択します。

+--------------------+

| 年(現在の日付) |

+--------------------+

| 2009 |

+--------------------+

セット内の 1 行 (0.00 秒)

4. 文字列を表示する

mysql> SELECT "私のブログへようこそ!";

+----------------------+

| 私のブログへようこそ! |

+----------------------+

| 私のブログへようこそ! |

+----------------------+

セット内の 1 行 (0.00 秒)

5. 計算機として使う

((4 * 4) / 10) + 25を選択します。

+----------------------+

| ((4 * 4) / 10 ) + 25 |

+----------------------+

| 26.60 |

+----------------------+

セット内の 1 行 (0.00 秒)

6. 文字列の連結

CONCAT(f_name, " ", l_name) を選択

AS名

従業員データから

title = 'マーケティングエグゼクティブ';

+---------------+

| 名前 |

+---------------+

| モニカ・セガル |

| ハル・シムライ |

| ジョセフ・アーバイン |

+---------------+

セット内の 3 行 (0.00 秒)

注: ここでは、文字列を連結するために CONCAT() 関数が使用されています。さらに、以前に学習した AS を使用して、結果列 'CONCAT(f_name, " ", l_name)' に仮名を付けました。

5.1 データテーブルを作成する

コマンド: create table <テーブル名> ( <フィールド名 1> <タイプ 1> [,..<フィールド名 n> <タイプ n>]);

たとえば、MyClass というテーブルを作成します。

フィールド名数値型データ幅空ですか? 主キーですか? 自動増加デフォルト値
id 整数4 いいえ主キー自動増分
名前文字20 いいえ
セックス整数4 いいえ
程度ダブル16 いいえ
mysql>テーブルMyClass(を作成

> id int(4) NULLでない主キー auto_increment,

> 名前 char(20) が null ではない、

> 性別 int(4) NULLでない デフォルト '0',

> 度数倍精度(16,2)

5.3 データテーブルの削除

コマンド: drop table <テーブル名>

たとえば、MyClassという名前のテーブルを削除します。

mysql> テーブル MyClass を削除します。

DROP TABLE は、1 つ以上のテーブルを削除するために使用されます。各テーブルに対して DROP 権限が必要です。すべてのテーブル データとテーブル定義がキャンセルされるため、このステートメントは注意して使用してください。

注意: パーティション化されたテーブルの場合、DROP TABLE はテーブル定義を永久にキャンセルし、パーティションを削除し、それらのパーティションに格納されているすべてのデータを削除します。 DROP TABLE は、削除されたテーブルに関連付けられているパーティション定義 (.par) ファイルも削除します。

存在しないテーブルの場合は、エラーを防ぐために IF EXISTS を使用します。 IF EXISTS を使用すると、存在しないテーブルごとに NOTE が生成されます。

RESTRICT と CASCADE を使用すると、パーティショニングが容易になります。現在、RESTRICT と CASCADE は効果がありません。

5.4 テーブルにデータを挿入する

コマンド: insert into <テーブル名> [( <フィールド名 1>[,..<フィールド名 n > ])] values ​​(値 1)[, (値 n)]

たとえば、MyClass テーブルに 2 つのレコードを挿入します。これらの 2 つのレコードは、番号 1 の Tom のスコアが 96.45、番号 2 の Joan のスコアが 82.99、番号 3 の Wang のスコアが 96.5 であることを示しています。

 mysql> MyClass に値 (1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59) を挿入します。

注意: insert into では、一度に 1 つのレコードのみをテーブルに挿入できます。

5.5 テーブル内のデータのクエリ

1) すべての行をクエリする

コマンド: select <field1, field2, ...> from <table name> where <expression>

例: MyClassテーブル内のすべてのデータを表示する

mysql> select * from MyClass;

2) 最初の数行のデータをクエリする

例: MyClassテーブルの最初の2行のデータを表示する

mysql> select * from MyClass order by id limit 0,2;

Select は通常、より正確で複雑なデータを照会するために where と共に使用されます。

5.6 テーブルからデータを削除する

コマンド: テーブル名から削除、式

例: MyClassテーブル内の番号1のレコードを削除します

mysql> delete from MyClass where id=1;

以下は、データを削除する前と削除した後の表の比較です。

ファーストネーム苗字
ピーターグリフィン35
グレン泥沼33

次の PHP コードは、LastName='Griffin' である "Persons" テーブル内のすべてのレコードを削除する例として使用されます。

<?php 
 $con = mysql_connect("localhost","peter","abc123"); 
 もし (!$con) 
 {
 die('接続できませんでした: ' . mysql_error()); 
 } 
 mysql_select_db("my_db", $con); 
 mysql_query("DELETE FROM Persons WHERE LastName='Griffin'"); mysql_close($con); 
?>

削除後、テーブルは次のようになります。

ファーストネーム苗字
グレン泥沼33

5.7 テーブル内のデータを変更する

構文: テーブル名を更新、フィールド = 新しい値、... where 条件

mysql> update MyClass set name='Mary' where id=1;

例 1: 単一テーブルに対する MySQL UPDATE ステートメント:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

例 2: 複数のテーブルに対する UPDATE ステートメント:

UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

UPDATE 構文を使用すると、既存のテーブル行の列を新しい値で更新できます。 SET 句は、どの列を変更するか、およびそれらにどのような値を与えるかを示します。 WHERE 句は、更新する行を指定します。 WHERE 句がない場合、すべての行が更新されます。 ORDER BY 句が指定されている場合、行は指定された順序で更新されます。 LIMIT 句は、更新できる行数を制限するために使用されます。

5.8 フィールドの追加<br /> コマンド: alter table table name add field type other;

たとえば、フィールドpasstestがテーブルMyClassに追加され、型はint(4)、デフォルト値は0です。

mysql> alter table MyClass add passtest int(4) default '0'

インデックスを追加

mysql> alter table テーブル名 add index インデックス名 (フィールド名 1 [, フィールド名 2 ...]);

例: mysql> alter table employee add index emp_name (name);

主要なキーワードインデックスを追加する

mysql> alter table 表名add primary key (字段名);

例: mysql> alter table employee add primary key(id);

ユニークな制限インデックスを追加する

mysql> alter table 表名add unique 索引名(字段名);

例: mysql> alter table employee add unique emp_name2(cardnumber);

インデックスを削除する

mysql> alter table 表名drop index 索引名;

例: mysql>alter table employee drop index emp_name;

フィールドを追加します:

mysql> ALTER TABLE table_name ADD field_name field_type;

元のフィールド名とタイプを変更します。

mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

フィールドを削除するには:

MySQL ALTER TABLE table_name DROP field_name;

5.9 テーブル名の変更

コマンド: テーブルの元のテーブル名を新しいテーブル名に変更します。

例: テーブル名をMyClassからYouClassに変更します

mysql> rename table MyClass to YouClass;

RENAME を実行するときは、ロックされたテーブルやアクティブなトランザクションが存在することはできません。また、元のテーブルに対する ALTER および DROP 権限、および新しいテーブルに対する CREATE および INSERT 権限も必要です。

MySQL は、複数テーブルの名前変更中にエラーが発生した場合、名前が変更されたすべてのテーブルのロールバック名前変更を実行し、すべてを元の状態に戻します。

RENAME TABLE は MySQL 3.23.23 で追加されました。

6. データベースをバックアップする

コマンドはDOSディレクトリ[url=file://\\mysql\\bin]\\mysql\\bin[/url]で実行されます。

1. データベース全体をエクスポートする

エクスポート ファイルは、デフォルトで mysql\bin ディレクトリに保存されます。

mysqldump -u ユーザー名 -p データベース名 > エクスポートされたファイル名

mysqldump -u user_name -p123456 database_name > outfile_name.sql

2. テーブルをエクスポートする

mysqldump -u ユーザー名 -p データベース名 テーブル名 > エクスポートされたファイル名

mysqldump -u ユーザー名 -p データベース名 テーブル名 > 出力ファイル名.sql

3. データベース構造をエクスポートする

mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql

-d 沒有數據–add-drop-table 在每個create語句之前增加一個drop table

4. 言語パラメータを指定してエクスポートする

mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql

たとえば、aaa ライブラリをファイル back_aaa にバックアップします。

[root@test1 root]# cd /home/data/mysql

[root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa

7.1 データベースとテーブルの構築例 1

drop database if exists school; //如果存在SCHOOL則刪除

create database school; //建立庫SCHOOL

use school; //打開庫SCHOOL

教師テーブルを作成 // 教師テーブルを作成
(
 id int(3) auto_increment nullでない主キー、
 名前 char(10) が null ではない、
 住所varchar(50) デフォルト '深セン'、
 年 月日
); //テーブル作成終了


//以下は挿入されたフィールドです
insert into teacher values(”,'allen','大連一中','1976-10-10′);
insert into teacher values(”,'jack','大連二中','1975-12-23′);

上記のコマンドをmysqlプロンプトで入力すると動作しますが、デバッグには不便です。

1. 上記のコマンドを、school.sql というテキスト ファイルにそのまま書き込んで c:\\ にコピーし、DOS 状態で [url=file://\\mysql\\bin]\\mysql\\bin[/url] ディレクトリに入り、次のコマンドを入力します。

mysql -uroot -p密碼< c:\\school.sql

成功した場合、行は何も表示されずに空白のままになります。エラーがある場合は、プロンプトが表示されます。 (上記のコマンドはデバッグ済みなので、使用するには // コメントを削除するだけです)。

2. または、コマンド ラインを入力し、mysql> source c:\\school.sql; を使用して school.sql ファイルをデータベースにインポートします。

7.2 データベースとテーブル2の構築例

drop database if exists school; //SCHOOLが存在する場合は削除します create database school; //データベースSCHOOLを作成します

use school; //ライブラリSCHOOLを開く

教師テーブルを作成 // 教師テーブルを作成
(
 id int(3) auto_increment nullでない主キー、
 名前 char(10) が null ではない、
 住所varchar(50) デフォルト''深セン''、
 年 月日
); //テーブル作成終了//次はフィールドを挿入します insert into teacher values('''',''glchengang'',''深圳一中'',''1976-10-10'');

教師の値に挿入します('''',''jack'',''深圳第一中学校'',''1975-12-23'');

注: 構築テーブル内

1. ID を長さ 3 の数値フィールドに設定します (int(3))。レコードごとに自動的に 1 ずつ増加するようにします (auto_increment)。空にすることはできません (not null)。これを主キー フィールドにします。

2. NAMEを長さ10の文字フィールドに設定する

3. ADDRESS を長さ 50 の文字フィールドに設定します。デフォルト値は Shenzhen です。

4. 日付フィールドとして YEAR を設定します。

この記事が困っている友人の助けになれば幸いです

以下もご興味があるかもしれません:
  • 基本的なMySQL操作
  • MySQL でのサブクエリとスカラーサブクエリの使用に関する基本操作チュートリアル
  • MySQLデータベース操作の基本コマンド
  • MySQL入門(I)データテーブルとデータベースの基本操作
  • MySQLの基本操作ステートメントの概要
  • MySQLテーブルの基本操作の詳細な例
  • MySQL 学習ノート 2: 基本的なデータベース操作 (作成、削除、表示)
  • MySQL 学習ノート 3: 基本的なテーブル操作の紹介
  • MySQLの基本操作を詳しく解説(第2部)
  • MySQL初心者のための基本操作のまとめ

<<:  Linux yum コマンドを使用して mysql8.0 をインストールする方法の詳細なチュートリアル

>>:  Vue スキャフォールディング プロジェクトを作成するための詳細な手順

推薦する

React のネストされたコンポーネントの構築順序

目次Reactの公式サイトではライフサイクルの説明を見ることができます次に、ネストされたコンポーネン...

MycliはMySQLコマンドライン愛好家にとって必須のツールです

マイクリMyCLI は、自動補完と構文の強調表示を備えた MySQL、MariaDB、および Per...

Linuxのdateコマンドの使用

1. コマンドの紹介date コマンドは、現在の時刻または指定された時刻を指定された形式で表示するた...

Linux の一般的なテキスト処理コマンドと vim テキストエディタ

今日は、いくつかの一般的なテキスト処理コマンドとvimテキストエディタを紹介します。 3日目 - 一...

30 種類の無料の高品質英語リボンフォント

30 種類の高品質な英語リボン フォントを無料でダウンロードできます。デザイナーは常に、25 種類の...

体験したい17 404ページ

404 を避けるべきだとどうして言えるのでしょうか? その理由は、ほとんどの 404 ページが粗雑す...

VMware 仮想マシンに固定 IP アドレスを設定する方法 (グラフィック チュートリアル)

1. メニューバーで「編集」→「仮想ネットワーク エディター」を選択して仮想ネットワーク エディタ...

nginx がアップストリーム アドレスにジャンプしない問題の解決方法

序文今日、nginx で非常に奇妙な問題に遭遇しました。フロントエンドの tomcat がページにジ...

Windows での自動展開に Jenkins を使用するチュートリアル図

今日は、Jenkins + powershell スクリプトを使用して、.NET CORE スクリプ...

GolangでMySQLデータベースを操作するための実装コード

序文Golang は、SQL データベースにアクセスするための database/sql パッケージ...

Docker 実行オプションを使用して Dockerfile の設定を上書きする

通常は、最初に Dockerfile ファイルを定義し、次に docker build コマンドを使...

Centos6.5 でのスーパーバイザーのアップグレード、インストール、および構成に関するチュートリアル

スーパーバイザー紹介Supervisor は、Python で開発されたクライアント/サーバー サー...

Vue Element フロントエンドアプリケーション開発開発環境の準備

目次概要1. 必要なソフトウェア環境を開発する1) VSコードのインストール2) ノード開発環境をイ...

Linux Samba サーバーの超詳細なインストールと構成 (問題解決付き)

目次Samba サーバーの紹介Samba サーバー コンポーネントSamba サーバー関連の設定ファ...

Vueはel-tree遅延読み込みを使用して、追加、削除、変更、クエリ機能を実装します。

Vue のツリー表示については、プロジェクトが使用されています: エフェクト ダイアグラムがツリー...