MySQLコマンドリスト

高洛峰
リリース: 2016-12-14 10:13:24
オリジナル
1137 人が閲覧しました

1. MySQL に接続します

形式: mysql -h ホストアドレス -u ユーザー名 -p ユーザーパスワード

1. このマシン上の MYSQL に接続します。
まず DOS ウィンドウを開き、mysqlbin ディレクトリに入り、Enter キーを押した後、パスワードの入力を求めるプロンプトが表示されます。ユーザー名にはスペースを含めても構いません。ただし、パスワードの前にスペースを入れてはなりません。そうしないと、「パスワードを再入力してください」というメッセージが表示されます。

MYSQL がインストールされたばかりの場合、スーパー ユーザー root にはパスワードがないため、Enter キーを押して 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. パスワード ab12 を root に追加します。
まず、DOS で mysqlbin ディレクトリに入り、次のコマンドを入力します。
Mysqladmin -u root -password ab12
注: root には最初にパスワードがないため、-p old passwd 項目は省略できます。

2. root パスワードを djg345 に変更します。
Mysqladmin -u root -p ab12 passwd djg345

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

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

形式: 「データベースでの選択を許可します。*」を「パスワード」で識別されるユーザー名@ログイン ホストに追加します

1. ユーザー test1 をパスワード abc で追加し、任意のホストにログインして、すべてのクエリ、挿入、変更、および削除を実行できるようにします。データベースの権限。まず root ユーザーとして MYSQL に接続し、次のコマンドを入力します:
give select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “ abc”;

しかし、さらにユーザーを追加することは非常に危険です。誰かが test1 のパスワードを知っている場合、その人はインターネット上の任意のコンピューターにある mysql データベースにログインして、あなたのデータに対して何でもできるようになります。
を参照してください。
2. ユーザー test2 をパスワード abc で追加して、localhost にのみログインし、データベース mydb (localhost は MYSQL データベースが配置されているローカル ホストを指します) でクエリ、挿入、変更、削除の操作を実行できるようにします。 host) であるため、ユーザーが test2 のパスワードを知っている場合でも、インターネットからデータベースに直接アクセスすることはできず、MYSQL ホスト上の Web ページを介してのみアクセスできます
mydb で select、insert、update、delete を許可します。* 「abc」で識別される to [email=test2@localhost]test2@localhost[/email];

test2 にパスワードを持たせたくない場合は、別のコマンドを入力してパスワードを削除できます
grant select,insert, update,delete on.mydb.* to [email=test2@localhost]test2@localhost[/email] で識別されます;

4.1 データベースを作成します

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

コマンド: create database

例 1: xhkdb という名前のデータベースを作成します
mysql> create database xhkdb;

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

①CREATE DATABASE データベース名;

②GRANT SELECT ,INSERT,UPDATE,DELETE ,CREATE,DROP,ALTER ON データベース名.* TO データベース名@localhost IDENTIFIED BY 'パスワード';

③SET PASSWORD FOR 'データベース名'@'localhost' = OLD_PASSWORD('パスワード');

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

4.2 データベースを表示する

コマンド: show databases (注: 最後に s があります)
mysql> show Databases;

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

1. MYSQL 設定ファイルを変更します: my.ini のdefault-character-set=gbk を変更します:
①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
例: 影響を受ける 0 行という名前のデータベースを削除します (0.00 秒)

例 2: 存在しないデータベースを削除します
mysql>drop databasedrop_database;
ERROR 1008 (HY000) : データベース「drop_database」を削除できません。データベースが存在しません
// // エラーが発生しました。「drop_database」データベースは存在しません。
mysql> データベースが存在する場合ドロップデータベース;
クエリ OK、影響を受ける行は 0 件、警告 1 件 (0.00 秒)//このデータベースが存在しないことを示す警告を生成します
mysql> データベースを作成しますdrop_database;
クエリ OK、影響を受ける行は 1 つ ( 0.00 秒) )
mysql> データベースが存在する場合はdrop_database;//存在する場合 データベースが存在するかどうかを判断します。存在しない場合はエラーは生成されません
クエリは OK、影響を受ける行は 0 です (0.00 秒)

4.4 に接続しますデータベース

コマンド: use

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

mysql> use xhkdb;

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


use ステートメントは、MySQL に使用するように通知できます。 db_name データベースを後続のステートメントのデフォルト (現在の) データベースとして使用します。このデータベースは、セグメントの終了まで、または別の USE ステートメントが発行されるまで、デフォルトのデータベースのままになります。 ;
mysql> SELECT COUNT(*) FROM mytable; # db2.mytable から選択します

USE ステートメントを使用して、特定の現在のデータベースをマークします。これにより、他のデータベースのテーブルにアクセスできなくなります。次の例では、db1 データベースから author テーブルにアクセスし、db2 データベースから edit テーブルにアクセスできます。 db2.editor .editor_id;

USE ステートメントは、Sybase との互換性を保つために設定されています。

一部のネチズンは、接続後に終了する方法を尋ねました。実際、データベースを使用した後、show Databases を使用してすべてのデータベースをクエリできます。他のデータベースにジャンプしたい場合は、
他のデータベース名を使用するだけです。

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

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

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

1. MYSQL のバージョンを表示します
mysql> select version(); - ----------+
| 6.0.4-アルファコミュニティ | -------+
1 行 (0.02 秒)

2. 現在時刻を表示
select now(); -------+
| 今 ()
+----------+ 2009-09-15 22:35:32 |
+----------+
1 行 (0.04 秒)

3. 年、月、日を表示
SELECT DAYOFMONTH(CURRENT_DATE);
+---------------+
| DAYOFMONTH(CURRENT_DATE) | - -------------+
|
+---------------+
1セット内の行 (0.01 秒)

SELECT MONTH(CURRENT_DATE)
+----------+
| - ------------------+
+---------------------- --+
セット内の 1 行 (0.00 秒)

SELECT YEAR(CURRENT_DATE)
+---------------+
| 年(現在の日付) |
+----+
| -----+
1 行 (0.00 秒)

4. 文字列を表示
mysql> "私のブログへようこそ!"; -------+
| 私のブログへようこそ!
+----------+
| +---------- ------------+
1行セット(0.00秒)

5. 電卓として使用する場合
select ((4 * 4) / 10 ) + 25;
+----- ------------------+
| ((4 * 4) / 10 ) + 25 | -------------- ------+
+----------+
セット内の 1 行 (0.00 秒)

6. 文字列接続文字列
select CONCAT(f_name, " ", l_name)
AS Name
employee_data
where title = 'Marketing Executive'
+------ --------+
|
+----------+
| ---------- -+
セット内の 3 行 (0.00 秒)
注: ここでは、文字列を連結するために CONCAT() 関数が使用されています。さらに、以前に学習した AS を使用して、結果列 'CONCAT(f_name, " ", l_name)' に仮名を付けました。

5.1 データテーブルを作成します

コマンド: create table

( [,.. ]);

たとえば、create MyClass という名前のテーブル、




mysql> create table MyClass(
> id int(4) not null 主キー auto_increment,
> name char(20) not null,
> sex int(4) not null デフォルト '0',
>degree double(16,2));

5.3 データテーブルの削除

コマンド:drop table

例: MyClass テーブルという名前のテーブルを削除します
mysql> MyClass;

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

MySQLコマンドリスト注: パーティション化されたテーブルの場合、DROP TABLE はテーブル定義を完全にキャンセルし、各パーティションをキャンセルし、これらのパーティションに保存されているすべてのデータをキャンセルします。 DROP TABLE は、削除されたテーブルに関連付けられたパーティション定義 (.par) ファイルもキャンセルします。

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

RESTRICT と CASCADE を使用すると、パーティション分割が簡単になります。現在、RESTRICT と CASCADE は機能しません。

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

コマンド: insert into [( [,.. ])] 値 (値 1)[, (値 n)]

例: テーブル MyClass に 2 つのレコードを挿入します。これらの 2 つのレコードは、番号 1 の Tom という名前の人のスコアが 96.45、番号 2 の Joan という名前の人のスコアが 82.99、および という名前の人のスコアを示しています。背番号3の王は96.5。
mysql> insert into MyClassvalues(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

注: insert into はテーブルにのみ挿入できます。レコードを挿入するたびに。

5.5 テーブル内のデータをクエリします

1)、すべての行をクエリします
コマンド: から 例: すべて表示テーブル MyClass のデータ
mysql> select * from MyClass; 2)、データの最初の数行をクエリします
例: テーブル MyClass の最初の 2 行を表示します select * from MyClass; limit 0,2;

select は通常、より正確で複雑なデータをクエリする場所と組み合わせて使用​​されます。

5.6 テーブル内のデータを削除します

コマンド: delete from table name where 式

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

mysql> delete from MyClass where id=1;


以下は前です。データ削除後のテーブル比較。



以下は、「Persons」テーブル内の LastName='Griffin' を持つすべてのレコードを削除する PHP コードの例です。

MySQLコマンドリスト

<?php 
   $con = mysql_connect("localhost","peter","abc123"); 
   if (!$con) 
   {
      die(&#39;Could not connect: &#39; . mysql_error()); 
   } 
   mysql_select_db("my_db", $con); 
   mysql_query("DELETE FROM Persons WHERE LastName=&#39;Griffin&#39;"); mysql_close($con); 
?>
ログイン後にコピー

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



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

MySQLコマンドリスト 構文: update table name set field = new value,... wherecondition

mysql> update MyClass set name='Mary' where id=1; 例 1: 単一テーブル MySQL UPDATE ステートメント:

UPDATE [LOW_PRIORITY ] [IGNORE] tbl_name SETcol_name1=expr1 [,col_name2=expr2 ...] [WHERE where_定義] [ORDER BY ...] [LIMIT row_count]

例 2: 複数のテーブルの UPDATE ステートメント:
UPDATE [LOW_PRIORITY] [ IGNORE] table_references SETcol_name1=expr1 [,col_name2=expr2 ...] [WHERE where_定義]

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



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

コマンド: 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 テーブル名 addindex インデックス名 (フィールド名 1[, フィールド名 2...]);

例: mysql>従業員追加インデックス emp_name (名前);

主キー インデックスを追加
mysql> alter table table name add Primary key (field name);
例: mysql> alter table 従業員 add Primary key(id);

一意の制限インデックスを追加
mysql> alter table テーブル名 add unique インデックス名 (フィールド名);
例: mysql> alter table member add unique emp_name2(cardnumber);

インデックスを削除する
alter table table name drop インデックス インデックス名;
例: mysql>テーブル従業員ドロップインデックスemp_name;

フィールドを追加します:
mysql> ALTER TABLE table_name ADD field_name field_type;

元のフィールド名とタイプを変更します:
mysql> old_field_name new_field_name field_type;

削除フィールド:
MySQL ALTER TABLE table_name DROP field_name;

5.9 テーブル名を変更します

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

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

mysql> to YouClass;

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


複数テーブルの名前変更中に MySQL でエラーが発生した場合、名前が変更されたすべてのテーブルの逆方向の名前変更が実行され、すべてが元の状態に戻ります。

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

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

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

1. データベース全体をエクスポートします
エクスポート ファイルはデフォルトで mysqlbin ディレクトリに保存されます
mysqldump -u ユーザー名 -p データベース名 > エクスポートされたファイル名
mysqldump -u ユーザー名 -p123456 データベース名 > outfile_name.sql

2. テーブルをエクスポートする
mysqldump -u ユーザー名 -p データベース名 > エクスポートされたファイル名
mysqldump -u ユーザー名 -p データベース名 テーブル名 > outfile_name.sql

3. データベース構造をエクスポートします
mysqldump -u ユーザー名 -p -d –add-drop-table データベース名 > データなし –add -drop-table 各 create ステートメントの前にドロップ テーブルを追加します

4. 言語パラメーターを使用してエクスポートします
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt data_name >

たとえば、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 names school; //SCHOOL が存在する場合は削除します

create database school //ライブラリを作成します SCHOOL
use school; //ライブラリを開きます。 SCHOOL
create table Teacher // Create table TEACHER
(
id int(3) auto_increment not null Primary key,
name char(10) not null,
address varchar(50) default 'Shenzhen',
year date
); //テーブル作成終了

//以下は挿入フィールドです
insert into Teachervalues(”,'allen','Dalian No.1 Middle School','1976-10-10′);
insert into Teacher value(",'jack','大連第二中学校' ,'1975-12-23');

mysql プロンプトで上記のコマンドを入力すると動作しますが、デバッグには不便です。
1. 上記のコマンドをそのままテキスト ファイルに記述し、それを school.sql として c:\ にコピーし、ディレクトリ [url=file://\mysql\bin]\mysql に入力します。 DOS 状態 \bin[/url] で、次のコマンドを入力します:
mysql -uroot -p passwd 成功した場合は、空白行のままにすると、何も表示されません。エラーが発生した場合は、プロンプトが表示されます。 (上記のコマンドはデバッグされています。使用するには // コメントを削除するだけです)。

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


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

データベースが存在する場合は削除します。 school; // ライブラリを作成します。 SCHOOL

use school; // データベースを作成します。 library SCHOOL

create table Teacher //Create table TEACHER
(
id int(3) auto_increment not null 主キー,
name char(10) not null,
address varchar(50) default ''Shenzhen'',
year date
); / /テーブル作成終了

//以下は挿入されたフィールドです
教師の値に挿入します('''',''glchengang'',''深セン第一中学校'',''1976) -10-10'');
教師の値に挿入('''',''jack'',''深セン第一中学校'',''1975-12-23'');

注: 作成中のテーブル
1. ID を 3 の数値フィールドに設定し、各レコードに 1 つを自動的に追加します: auto_increment; それをメインにします。フィールドの主キー。

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

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

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


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート