MySQL でよく使用されるステートメントの包括的な概要 (必読)

MySQL でよく使用されるステートメントの包括的な概要 (必読)

以下にまとめたナレッジポイントはどれもよく使われる貴重な情報ばかりですので、ぜひ上手に集めてください。

/* MySQL を起動します */

ネットスタートMySQL

/* サーバーへの接続と切断*/

mysql -h アドレス-P ポート-u ユーザー名-p パスワード

/* MySQL にログインするための権限検証をスキップします */

mysqld --skip-grant-tables
-- ルートパスワードを変更するパスワード暗号化関数 password()
mysql.user を更新し、password=password('root'); を設定します。

SHOW PROCESSLIST -- 実行中のスレッドを表示する
変数を表示 --

/* データベース操作 */ ------------------

-- 現在のデータベースを表示する
データベースを選択します();
-- 現在の時刻、ユーザー名、データベースのバージョンを表示します
now()、user()、version() を選択します。
-- ライブラリを作成する
データベースを作成[存在しない場合] データベース名 データベースオプション
データベースオプション:
文字セット charset_name
COLLATE 照合名
-- 既存のライブラリを表示
データベースを表示['パターン'のような]
-- 現在のライブラリ情報を表示
データベースの作成を表示 データベース名
-- ライブラリオプション情報を変更する
データベースライブラリ名オプション情報の変更
-- ライブラリを削除
データベースを削除[存在する場合] データベース名
同時に、データベースに関連するディレクトリとその内容を削除します。

/* テーブル操作 */ ------------------

-- テーブルを作成
[一時]テーブルを作成します[存在しない場合] [データベース名] テーブル名 (テーブル構造定義) [テーブルオプション]
各フィールドにはデータ型が必要です
最後のフィールドの後にカンマを入れることはできません
セッションが終了すると自動的に消える一時テーブル

フィールドの定義については、次のとおりです。

フィールド名 データ型 [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string']

-- テーブルオプション
--文字セット
CHARSET = 文字セット名
テーブルが設定されていない場合は、データベースの文字セットが使用されます。
-- ストレージエンジン
ENGINE = エンジン名
テーブルは、データを管理するときにさまざまなデータ構造を使用します。構造が異なると、処理方法や提供される機能操作などが異なります。
共通エンジン: InnoDB MyISAM メモリ/ヒープ BDB マージ例 CSV MaxDB アーカイブ
エンジンによって、テーブル構造とデータを保存する方法が異なります。
MyISAM テーブル ファイルの意味: .frm テーブル定義、.MYD テーブル データ、.MYI テーブル インデックス
InnoDB テーブル ファイルの意味: .frm テーブル定義、テーブルスペース データ、およびログ ファイル
SHOW ENGINES -- ストレージエンジンのステータス情報を表示します
SHOW ENGINE エンジン名 {LOGS|STATUS} -- ストレージエンジンのログまたはステータス情報を表示します
--データファイルディレクトリ
データディレクトリ = 'ディレクトリ'
-- インデックスファイルディレクトリ
INDEX DIRECTORY = 'ディレクトリ'
-- 表のコメント
COMMENT = '文字列'
-- パーティションオプション
PARTITION BY ... (詳細はマニュアルを参照)
-- すべてのテーブルを表示
テーブルを表示[LIKE 'pattern']
テーブル名からテーブルを表示
-- テーブル構造を表示
SHOW CREATE TABLE テーブル名(より詳細な情報)
DESC テーブル名/ DESCRIBE テーブル名/ EXPLAIN テーブル名/ SHOW COLUMNS FROM テーブル名 [LIKE 'PATTERN']
SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']
-- テーブルの変更
-- テーブル自体を変更するためのオプション
ALTER TABLE テーブル名 テーブルオプション
例: ALTER TABLE テーブル名 ENGINE=MYISAM;
-- テーブルの名前を変更する
元のテーブル名を新しいテーブル名に変更する
RENAME TABLE 元のテーブル名をデータベース名.テーブル名に変更します (テーブルを別のデータベースに移動できます)
-- RENAMEは2つのテーブル名を交換できる
-- テーブルのフィールド構造を変更する
ALTER TABLE テーブル名 操作名
-- 操作名
ADD[COLUMN] フィールド名 -- フィールドを追加する
フィールド名の後 - フィールド名の後に追加することを示します
FIRST -- 最初を追加することを示します
ADD PRIMARY KEY(フィールド名) -- 主キーを作成する
ADD UNIQUE [インデックス名] (フィールド名) - 一意のインデックスを作成する
ADD INDEX [インデックス名] (フィールド名) -- 通常のインデックスを作成する
追加
DROP[ COLUMN] フィールド名 -- フィールドを削除する
MODIFY[COLUMN] フィールド名 フィールド属性 -- フィールド属性の変更をサポートしますが、フィールド名を変更することはできません (元の属性もすべて記述する必要があります)
CHANGE[COLUMN] 元のフィールド名 新しいフィールド名 フィールド属性 -- フィールド名の変更をサポート
DROP PRIMARY KEY -- 主キーを削除します (主キーを削除する前に、その AUTO_INCREMENT 属性を削除する必要があります)
DROP INDEX インデックス名 -- インデックスを削除する
DROP FOREIGN KEY -- 外部キーを削除します

-- テーブルを削除
DROP TABLE[ IF EXISTS ] テーブル名...
-- テーブルデータをクリア
TRUNCATE [TABLE] テーブル名
-- テーブル構造をコピー
CREATE TABLE テーブル名 LIKE コピーするテーブル名
-- テーブル構造とデータをコピーする
CREATE TABLE テーブル名 [AS] SELECT * FROM コピーするテーブル名
-- テーブルにエラーがないか確認する
CHECK TABLE tbl_name [, tbl_name] ... [オプション] ...
-- テーブルを最適化
OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
-- 修理テーブル
REPAIR [LOCAL | NO_WRITE_TO_BINLOG] テーブル tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM]
-- 分析表
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

/* データ操作 */ ------------------

- 増加
INSERT [INTO] テーブル名 [(フィールドリスト)] VALUES (値リスト) [, (値リスト), ...]
-- 挿入する値のリストにすべてのフィールドが含まれ、同じ順序になっている場合は、フィールド リストを省略できます。
-- 複数のデータレコードを同時に挿入できます。
REPLACE は INSERT とまったく同じであり、互換性があります。
INSERT [INTO] テーブル名 SET フィールド名=値 [, フィールド名=値, ...]
- チェック
SELECT フィールドリスト FROM テーブル名 [その他の句]
-- 複数のフィールドは複数のテーブルから取得できます
-- 他の節は省略可能
-- フィールドリストを*に置き換えると、すべてのフィールドを示すことができます
- 消去
DELETE FROM テーブル名 [削除条件句]
条件節がなければ、すべて
- 変化
UPDATE テーブル名 SET フィールド名 = 新しい値 [, フィールド名 = 新しい値] [更新条件]

/* 文字セットのエンコーディング */ ------------------

-- MySQL、データベース、テーブル、フィールドはすべてエンコードできます

-- データのエンコーディングはクライアントのエンコーディングと一致する必要はありません

SHOW VARIABLES LIKE 'character_set_%' -- すべての文字セットエンコード項目を表示します
character_set_client クライアントがサーバーにデータを送信するために使用するエンコーディング
character_set_results サーバーがクライアントに結果を返すために使用するエンコーディング
character_set_connection 接続層エンコーディング

SET 変数名 = 変数値

文字セットクライアントをgbkに設定します。
文字セット結果 = gbk を設定します。
文字セット接続を gbk に設定します。
SET NAMES GBK; -- 上記の3つの設定を完了するのと同等

-- 校正セット

並べ替えの照合セット
SHOW CHARACTER SET [LIKE 'pattern']/SHOW CHARSET [LIKE 'pattern'] すべての文字セットを表示
SHOW COLLATION [LIKE 'pattern'] すべての照合セットを表示
charset 文字セットエンコーディング 文字セットエンコーディングを設定する
collat​​e 照合セットのエンコード 照合セットのエンコードを設定する

/* データ型(列型) */ ------------------

1. 数値型

-- a. 整数---------

型 バイト範囲 (符号付きビット)
tinyint 1バイト -128 ~ 127 符号なしビット: 0 ~ 255
smallint 2 バイト -32768 ~ 32767
mediumint 3 バイト -8388608 ~ 8388607
整数 4 バイト
bigint 8 バイト

int(M) Mは桁の総数を表す

- デフォルトでは、符号ビットがあり、符号なし属性の変更

- 表示幅。フィールド定義時に設定した桁数に足りない数値は0で埋められます。ゼロフィル属性の変更

例: int(5)は数字「123」を挿入し、埋めると「00123」になります。

- 要件が満たされていれば、小さいほど良いです。

- 1 はブール値 true を表し、0 はブール値 false を表します。 MySQL にはブール型がなく、整数 0 と 1 で表されます。 Tinyint(1)はブール型を表すためによく使用されます。

-- b. 浮動小数点型----------

タイプ バイト範囲

浮動小数点数(単精度)4バイト

double(倍精度)8バイト

浮動小数点型は、unsigned 属性と zerofill 属性の両方をサポートします。

整数とは異なり、前後に 0 が埋め込まれます。

浮動小数点型を定義するときは、合計桁数と小数点以下の桁数を指定する必要があります。

浮動小数点数(M, D) 倍精度浮動小数点数(M, D)

M は総桁数を表し、D は小数点以下の桁数を表します。

M と D のサイズによって浮動小数点数の範囲が決まります。整数型の固定範囲とは異なります。

M は、合計桁数 (小数点と正負の符号を除く) と表示幅 (表示されるすべての記号を含む) の両方を表します。

科学的記数法をサポートします。

浮動小数点数は近似値を表します。

-- c. 固定小数点数----------

小数点 -- 可変長

小数点(M, D) M は合計桁数を表し、D は小数点以下の桁数を表します。

浮動小数点数の丸めとは異なり、データを変更せずに正確な値を保存します。

浮動小数点数を文字列に変換して保存します。各 9 桁は 4 バイトとして保存されます。

2. 文字列型

-- a. char、varchar ----------

char 固定長文字列、高速だがスペースを無駄にする

varchar 可変長文字列。遅いがスペースを節約できる

M は保存できる最大長を表します。この長さはバイト数ではなく文字数です。

異なるコードは異なるスペースを占有します。

char、エンコーディングに関係なく最大 255 文字。

varchar、エンコーディングに応じて最大 65535 文字。

有効なレコードの最大長は 65535 バイトを超えることはできません。

utf8 文字列の最大長は 21844 文字、gbk 文字列の最大長は 32766 文字、latin1 文字列の最大長は 65532 文字です。

VARCHAR は可変長であり、VARCHAR の長さを格納するためのストレージ スペースが必要です。データが 255 バイト未満の場合、長さを格納するために 1 バイトが使用されます。それ以外の場合は、長さを格納するために 2 バイトが必要です。

varchar の最大有効長は、最大行サイズと使用される文字セットによって決まります。

有効な最大長は 65532 バイトです。varchar に文字列を格納する場合、最初のバイトは空でデータが含まれず、文字列の長さを格納するために 2 バイトが必要になるため、有効な長さは 64432-1-2=65532 バイトになります。

たとえば、テーブルが CREATE TABLE tb(c1 int, c2 char(30), c3 varchar(N)) charset=utf8; と定義されている場合、N の最大値は何ですか? 答え: (65535-1-2-4-30*3)/3

-- b. ブロブ、テキスト ----------

blob バイナリ文字列 (バイト文字列)

小さなブロブ、ブロブ、中くらいのブロブ、長いブロブ

テキスト非バイナリ文字列(文字列)

小さなテキスト、テキスト、中程度のテキスト、長いテキスト

テキストを定義するときに長さを定義する必要はなく、合計の長さは計算されません。

テキスト タイプを定義するときに、デフォルト値を指定することはできません。

-- c. バイナリ、varbinary ----------

char や varchar と同様に、バイナリ文字列、つまり文字列ではなくバイト文字列を格納するために使用されます。

char、varchar、text は、binary、varbinary、blob に対応します。

3. 日付と時刻の種類

通常、PHP はタイムスタンプを簡単にフォーマットできるため、タイムスタンプの保存には整数が使用されます。

datetime 8 バイト 日付と時刻 1000-01-01 00:00:00 から 9999-12-31 23:59:59

日付 3 バイト 日付 1000-01-01 から 9999-12-31

タイムスタンプ 4 バイト タイムスタンプ 19700101000000 から 2038-01-19 03:14:07

時間 3 バイト 時間 -838:59:59 から 838:59:59

年 1 バイト 1901 - 2155

日時 "YYYY-MM-DD hh:mm:ss"
タイムスタンプ「YY-MM-DD hh:mm:ss」
「YYYYMMDDhhmmss」
「YYMMDDhhmmss」
YYYYMMDDhhmmss
年月日
日付 "YYYY-MM-DD"
「YY-MM-DD」
「YYYYMMDD」
「年月日」
年月日
年月日
時間 "hh:mm:ss"
「うーん」
うーん
年 "YYYY"
「YY」
ええ
ええ

4. 列挙と集合

--列挙型 -----------

列挙型(val1、val2、val3...)

既知の値から単一の値を選択します。最大数は65535です。

列挙値が保存される際、2 バイトの整数 (smallint) として保存されます。各列挙値は保存された位置の順に 1 から始まり 1 つずつ増加します。

文字列型として表現されますが、整数型として保存されます。

NULL 値のインデックスは NULL です。

空の文字列エラー値のインデックス値は 0 です。

- セット - - - - -

(val1、val2、val3...) を設定します

テーブル tab を作成します ( 性別 set('男', '女', 'None') );

タブ値('男, 女')に挿入します。

最大 64 人の異なるメンバーが存在できます。 bigint として保存され、合計 8 バイトになります。ビット演算の形式をとります。

テーブルを作成すると、SET メンバー値の末尾のスペースは自動的に削除されます。

/*タイプを選択*/
-- PHP の視点
1. 機能的な満足度
2. ストレージスペースを最小限に抑え、処理効率を向上
3. 互換性の問題を考慮する

-- IP ストレージ -----------

1. 保存するだけで、文字列を使用できます

2. 計算や検索などが必要な場合は、4バイトのunsigned int、つまりunsignedとして保存することができます。

1) PHP関数変換

ip2long は整数に変換できますが、符号の繰り上がりの問題が発生します。符号なし整数としてフォーマットする必要があります。

sprintf関数を使用して文字列をフォーマットする

sprintf("%u", ip2long('192.168.3.134'));

次にlong2ipを使用して整数をIP文字列に変換します。

2) MySQL関数変換(符号なし整数、UNSIGNED)

INET_ATON('127.0.0.1') IPを整数に変換
INET_NTOA(2130706433) 整数をIPに変換する

/* 列属性(列制約) */ ------------------

1. 主キー

- レコードを一意に識別し、主キーとして使用できるフィールド。
- テーブルには主キーを 1 つだけ設定できます。
- 主キーは一意です。
- フィールドを宣言するときは、主キーを使用してフィールドを識別します。
フィールドリストの後に宣言することもできます

例: create table tab ( id int, stu varchar(10), primary key (id));
- 主キー フィールドの値は null にできません。
- 主キーは複数のフィールドで構成できます。この場合、メソッドはフィールド リストの後に宣言する必要があります。
例: create table tab ( id int, stu varchar(10), age int, primary key (stu, age));

2. ユニークインデックス(ユニーク制約)

これにより、フィールドの値が繰り返されるのを防ぎます。

3. ヌル制約

NULL はデータ型ではなく、列のプロパティです。
現在の列が null になる可能性があるかどうかを示します (何もないことを示します)。
null、空は許可されます。デフォルト。
null ではありません。空にすることはできません。
タブに値(null、 'val')を挿入します。
-- これは、フィールドがnullを許可されているかどうかに応じて、最初のフィールドの値をnullに設定することを意味します。

4. デフォルトのデフォルト値属性

現在のフィールドのデフォルト値。
insert into tab values ​​(default, 'val'); -- これはデフォルト値が強制的に使用されることを意味します。
テーブル tab を作成します ( add_time timestamp default current_timestamp );
-- 現在のタイムスタンプをデフォルト値として設定することを意味します。
現在の日付、現在の時刻

5. auto_increment 自動増加制約

自動インクリメントはインデックス(主キーまたは一意)である必要があります

自動増分できるフィールドは 1 つだけです。

デフォルト値は 1 で、自動拡張が開始されます。テーブル属性 auto_increment = x を使用するか、alter table tbl auto_increment = x; を使用して設定できます。

6. コメント

例: create table tab (id int) comment 'コメントの内容';

7. 外部キー制約

マスター テーブルとスレーブ テーブルのデータ整合性を制限するために使用されます。

テーブル t1 を変更し、制約 `t1_t2_fk` 外部キー (t1_id) が t2(id) を参照するように追加します。
-- テーブル t1 の t1_id 外部キーをテーブル t2 の id フィールドに関連付けます。
-- 各外部キーには名前があり、制約を通じて指定できます。

外部キーを持つテーブルをスレーブテーブル(子テーブル)と呼び、外部キーが指すテーブルをマスターテーブル(親テーブル)と呼びます。

機能: データの一貫性と整合性を維持します。主な目的は、外部キー テーブル (テーブルから) に格納されるデータを制御することです。

MySQL では、InnoDB エンジンで外部キー制約を使用できます。

文法:

外部キー(外部キーフィールド)はメインテーブル名(関連フィールド)を参照します [メインテーブルレコードが削除された場合のアクション] [メインテーブルレコードが更新された場合のアクション]

このとき、セカンダリ テーブルの外部キーをプライマリ テーブルの既存の値に制約する必要があることを検出する必要があります。外部キー列に not null が含まれていない場合、関連付けがない場合には外部キーを null に設定できます。

マスター テーブル レコードが変更または更新された場合は、アクションを指定する必要はありません。その場合、マスター テーブルに対する操作は拒否されます。

on update または on delete が指定されている場合: 削除または更新時に、次の操作から選択できます。

1. カスケード、カスケード操作。マスターテーブルのデータが更新され(主キーの値が更新され)、スレーブテーブルも更新されます(外部キーの値が更新されます)。マスター テーブルのレコードが削除され、スレーブ テーブルの関連レコードも削除されます。

2. null を設定します。プライマリ テーブルのデータが更新され (プライマリ キーの値が更新され)、セカンダリ テーブルの外部キーが null に設定されます。マスター テーブルのレコードが削除され、スレーブ テーブルの関連レコードの外部キーが null に設定されます。ただし、外部キー列には NOT NULL 属性制約がない必要があることに注意してください。

3. 親テーブルの削除と更新を制限、拒否します。

外部キーは InnoDB ストレージ エンジンでのみサポートされていることに注意してください。他のエンジンはサポートされていません。

/* テーブル作成仕様*/ ------------------

-- 通常形式、NF
- 各テーブルにはエンティティ情報が格納されます
- それぞれに主キーとしてIDフィールドがある
- ID主キー + アトミックテーブル
-- 1NF、第一正規形
体をさらに分割できない場合は、第 1 正規形が満たされます。
-- 2NF、第 2 正規形
最初の正規形を満たすという前提の下では、部分的な依存関係は発生しません。
主キーを削除することで部分的な依存関係を回避できます。単一列のキーワードを追加します。
-- 3NF、第3正規形
2 番目のパラダイムを満たすという前提の下では、推移的な依存関係は発生しません。
フィールドは主キーに依存し、他のフィールドも主キーに依存します。これは推移的な依存関係です。
エンティティ情報のデータはテーブルに配置されます。

/* 選択 */ ------------------

select [all|distinct] select_expr from -> where -> group by [集計関数] -> having -> order by -> limit

a. 選択式

-- すべてのフィールドを示すには * を使用できます。
tb から * を選択します。
-- 式を使用できます(計算式、関数呼び出し、フィールドも式です)
tb から stu、29+25、now() を選択します。
-- 各列にエイリアスを使用できます。列の識別を簡素化し、複数の列識別子の重複を回避するのに役立ちます。
- as キーワードを使用するか、as を省略します。
tb から stu+10 を add10 として選択します。

b. 節から

クエリのソースを識別するために使用されます。
-- テーブルに別名を付けることができます。 as キーワードを使用します。
tb1 から tt として、tb2 から bb として * を選択します。
-- from 句の後に複数のテーブルを記述できます。
-- 複数のテーブルが水平に積み重ねられ、データはデカルト積を形成します。
tb1、tb2から*を選択します。

c. where句

-- 取得元のデータ ソースからフィルターします。
-- 整数 1 は true を表し、0 は false を表します。
-- 式は演算子とオペランドで構成されます。
-- オペランド: 変数 (フィールド)、値、関数の戻り値
-- オペレーター:
=、<=>、<>、!=、<=、<、>=、>、!、&&、||、
in (not) null、(not) like、(not) in、(not) between and、is (not)、and、or、not、xor
値の真偽をテストするために、is/is not と true/false/unknown を加算します。
<=>は<>と同じ機能を持ち、<=>はnull比較に使用できます。

d. group by 節、グループ化節

フィールド/エイリアスでグループ化 [並べ替え]
グループ化後、並べ替えられます。昇順: ASC、降順: DESC

次の集計関数は、group by で使用する必要があります。
count NULL以外の異なる値の数を返します count(*), count(field)

max 最大値を見つける
min 最小値を見つける
平均 平均値
group_concat は、グループから連結された NULL 以外の値を含む文字列結果を返します。グループ内文字列の連結。

e. having 節、条件節

where と機能や使い方は同じですが、実行タイミングが異なります。
ここで、最初に検出データを実行し、元のデータをフィルタリングします。
フィルタリングされた結果を再度フィルタリングします。
having フィールドをクエリする必要があり、where フィールドがデータ テーブル内に存在している必要があります。
フィールド エイリアスは使用できませんが、使用できます。 WHERE コードが実行されたときに、列の値がまだ決定されていない可能性があるためです。
集計関数を使用できない場合。通常、having は集計関数が必要な場合にのみ使用されます。
SQL 標準では、HAVING は GROUP BY 句内の列または集計関数で使用される列を参照する必要があります。

f. order by 句、ソート句

ソートフィールド/エイリアス ソート方法 [、ソートフィールド/エイリアス ソート方法] で並べ替え...
昇順: ASC、降順: DESC
複数のフィールドでの並べ替えをサポートします。

g. 制限句、結果の数を制限する句

処理結果のみ数に制限があります。処理された結果を、レコードの出現順に、インデックスが 0 から始まるセットとして扱います。
開始位置を制限し、エントリの数を取得します
最初のパラメータを省略すると、インデックス 0 から開始することになります。 limit エントリ数を取得する

h. 個別、すべてのオプション

distinct は重複レコードを削除します
デフォルトはすべてのレコードです

/* ユニオン */ ------------------

複数の選択クエリの結果を 1 つの結果セットに結合します。
SELECT ... UNION [ALL|DISTINCT] SELECT ...
デフォルトの DISTINCT モードは、返されるすべての行が一意であることを意味します。
各 SELECT クエリを括弧で囲むことをお勧めします。
ソートにORDER BYを使用する場合は、組み合わせにLIMITを追加する必要があります。
各選択クエリ内のフィールドの数は同じである必要があります。
結果のフィールド名は最初の選択ステートメントに基づいているため、各選択クエリのフィールド リスト (番号、タイプ) は一貫している必要があります。

/* サブクエリ */ ------------------

- サブクエリは括弧で囲む必要があります。

-- タイプから

from キーワードの後に​​はテーブルが続く必要があり、サブクエリの結果にはエイリアスを指定する必要があります。
- 各クエリ内の条件を簡素化します。
- from タイプでは、結果を含む一時テーブルを生成する必要があります。これを使用して、元のテーブルのロックを解除できます。
- サブクエリはテーブル、テーブル タイプ サブクエリを返します。
select * from (select * from tb where id>0) as subfrom where id>1;

-- 型

- サブクエリは値を返します (スカラー サブクエリ)。
- サブクエリにエイリアスを付ける必要はありません。
- where サブクエリ内のテーブルを直接更新することはできません。
tb から * を選択します。ここで、money = (tb から max(money) を選択します)。

-- 列サブクエリ

サブクエリの結果が列を返す場合。
クエリを完了するには、in または not in を使用します。
存在する条件と存在しない条件
サブクエリがデータを返す場合は 1 または 0 を返します。状況を判断するためによく使用されます。
存在するt1から列1を選択します(t2から*を選択します)。

-- 行サブクエリ

クエリ条件は 1 行です。
(id, gender) が t1 にある場合、(t2 から id, gender を選択) から * を選択します。
行コンストラクタ: (col1, col2, ...) または ROW(col1, col2, ...)
行コンストラクターは、2 つ以上の列を返すサブクエリを比較するためによく使用されます。

-- 特殊演算子
!= all() は not in と同等です
= some() は in と同等です。 anyはsomeの別名である
!= some() は not in と同等ではなく、いずれにも等しくありません。
すべて、一部は他の演算子と組み合わせて使用​​できます。


/* 結合クエリ (join) */ ------------------

複数のテーブルのフィールドを接続し、接続条件を指定できます。
-- 内部結合
- デフォルトは内部結合です。inner は省略できます。
- データが存在する場合にのみ接続を送信できます。つまり、接続結果に空白行を含めることはできません。
on は接続状態を示します。その条件式は where に似ています。条件を省略することもできます(つまり、常に真になります)。
where を使用して結合条件を表現することもできます。
使用もありますが、フィールド名は同じである必要があります。 using(フィールド名)

-- クロス結合
つまり、条件付き内部結合はありません。
tb1 から * を選択し、tb2 をクロス結合します。
-- 外部結合
- データが存在しない場合は、接続結果にも表示されます。
--左外部結合
データが存在しない場合は、左側のテーブルレコードが表示され、右側のテーブルにはnullが入ります。
--右外部結合
データが存在しない場合は、右側のテーブル レコードが表示され、左側のテーブルには null が入ります。
-- 自然な結合
接続条件を自動的に判断し、接続を完了します。
これは using を省略するのと同じであり、同じフィールド名が自動的に検索されます。
自然結合
自然な左結合
自然権結合

info.stu_num = extra_info.stu_id の場合、info、extra_info から info.id、info.name、info.stu_num、extra_info.hobby、extra_info.sex を選択します。

/* インポートとエクスポート */ ------------------

select * into outfile ファイルアドレス [制御形式] from テーブル名; -- テーブルデータをエクスポートします
データをロード [ローカル] infile ファイルアドレス [置換|無視] テーブル テーブル名 [制御形式] にロードします。 -- データをインポートします
生成されたデータのデフォルトの区切り文字はタブ文字です。
ローカルが指定されていない場合、データファイルはサーバー上にある必要があります
replace および ignore キーワードは、既存の一意のキー レコードの重複の処理を制御します。
-- 制御フォーマット

フィールドはフィールドのフォーマットを制御します
デフォルト: フィールドは '\t' で終了し、'' で囲まれ、'\\' でエスケープされます。
'文字列'で終了
'char'で囲まれている
'char' によってエスケープ
- 例:
a、b、a+b を OUTFILE '/tmp/result.text' に選択します
フィールドは ',' で終了し、オプションで '"' で囲まれます
'\n' で終了する行
test_table から;

行は行の書式を制御します

デフォルト: '\n' で終了する行
'文字列'で終了

/* 入れる */ - - - - - - - - -

select ステートメントによって取得されたデータは、 insert を使用して挿入できます。

列の指定は省略可能で、必要な値の()括弧は列順にすべてのフィールドの値を提供します。
または、set 構文を使用します。
tbl_name に挿入し、field=value を設定します...;

()、()、(); の形式で複数の値を同時に使用できます。
tbl_name の値 (), (), () に挿入します。

列の値を指定するときに式を使用できます。
tbl_name に値を挿入します (field_value、10 + 10、now());
特別な値 default を使用すると、列がデフォルト値を使用することを示すことができます。
tbl_name値(field_value、デフォルト)に挿入します。

クエリの結果を挿入する値として使用できます。
tbl_name に挿入して ... を選択します。

挿入された値が主キー (または一意のインデックス) と競合する場合に、他の非主キー列の情報が更新されるように指定できます。
tbl_name に値を挿入/設定/重複キーの選択、フィールド = 値の更新、…;

/* 消去 */ - - - - - - - - -

DELETE FROM tbl_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

条件により削除

削除するレコードの最大数を指定します。制限

並び替え条件により削除できます。順序 + 制限

同様の結合構文を使用して、複数のテーブルの削除をサポートします。
delete from は、テーブル結合操作条件を使用して複数のテーブル 1 と 2 からデータを削除する必要があります。

/* 切り捨て */ ------------------

TRUNCATE [テーブル] tbl_name
データをクリアし、テーブルを削除して再構築する

違い:

1. 切り捨てはテーブルを削除してから作成し、削除は1つずつ削除します。

2. truncate は auto_increment の値をリセットします。そして削除はしない

3. truncate は削除されるレコードの数を認識しませんが、delete は認識します。

4. パーティション化されたテーブルで使用する場合、切り捨てはパーティションを保持します。


/* バックアップと復元 */ ------------------

テーブル内のデータ構造とデータをバックアップして保存します。

これは、mysqldump コマンドを使用して実行されます。

- 輸出

1. テーブルをエクスポートする mysqldump -u ユーザー名 -p パスワード データベース名 テーブル名 > ファイル名 (D:/a.sql)
2. 複数のテーブルをエクスポートする mysqldump -u ユーザー名 -p パスワード データベース名 テーブル 1 テーブル 2 テーブル 3 > ファイル名 (D:/a.sql)
3. すべてのテーブルをエクスポートします。mysqldump -u ユーザー名 -p パスワード データベース名 > ファイル名 (D:/a.sql)
4. ライブラリをエクスポートする mysqldump -u ユーザー名 -p パスワード -B ライブラリ名 > ファイル名 (D:/a.sql)

-wを使用してバックアップ条件を渡すことができる

- 輸入

1. MySQLにログインするとき:
ソースバックアップファイル

2. ログインせずに、mysql -u ユーザー名 -p パスワード データベース名 < バックアップファイル


/* ビュー */ - - - - - - - - -

ビューとは:

ビューは、クエリによって内容が定義される仮想テーブルです。実際のテーブルと同様に、ビューは名前付きの列とデータ行のセットで構成されます。ただし、ビューはデータベース内に格納されたデータ値のセットとしては存在しません。行と列のデータは、ビューを定義するクエリによって参照されるテーブルから取得され、ビューが参照されたときに動的に生成されます。

ビューにはテーブル構造ファイルがありますが、データ ファイルはありません。

ビューは、その中で参照される基になるテーブルに対するフィルターのように機能します。ビューを定義するフィルターは、現在のデータベースまたは他のデータベース内の 1 つ以上のテーブル、あるいは他のビューから取得できます。ビューを介したクエリには制限はなく、ビューを介したデータの変更にも制限はほとんどありません。

ビューは、データベースに保存されているクエリの SQL ステートメントです。ビューが使用される主な理由は 2 つあります。セキュリティ上の理由です。ビューでは、社会保険基金テーブルなどの一部のデータを非表示にすることができます。このテーブルでは、社会保険番号や給与などを表示せずに、名前と住所のみを表示できます。もう 1 つの理由は、複雑なクエリを理解しやすく、使いやすくできることです。

-- ビューを作成する

CREATE [または REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement
- ビュー名は一意である必要があり、テーブルと同じ名前にすることはできません。
- ビューでは、SELECT ステートメントによって照会された列名を使用することも、対応する列名を自分で指定することもできます。
- ALGORITHM を指定することで、ビューで実行するアルゴリズムを指定できます。
- column_list が存在する場合、SELECT ステートメントによって取得される列の数と同じである必要があります。

-- ビュー構造

SHOW CREATE VIEW ビュー名

-- ビューを削除する

- ビューを削除した後も、データは残ります。

- 複数のビューを同時に削除できます。
DROP VIEW [存在する場合] view_name ...

-- ビュー構造を変更する

- 更新されたビューがすべてテーブルにマップされるわけではないため、ビューは通常変更されません。
ALTER VIEW ビュー名 [(列リスト)] AS 選択ステートメント

-- 表示機能

1. ビジネスロジックを簡素化する
2. 実際のテーブル構造をクライアントから隠す

-- アルゴリズムを表示 (ALGORITHM)

マージ
ビューのクエリ ステートメントは、実行前に外部クエリとマージする必要があります。
誘惑的
ビューが実行されると、一時テーブルが形成され、外部クエリが実行されます。
UNDEFINED 未定義 (デフォルト)。MySQL が対応するアルゴリズムを個別に選択することを意味します。

/* 取引 */ - - - - - - - - -

トランザクションとは、論理的な操作のグループを指します。この操作グループを構成する各ユニットは、成功するか失敗するかのいずれかになります。
- 連続する SQL ステートメントの一括成功または一括キャンセルをサポートします。
- トランザクションは、データ管理におけるデータベースの機能です。
- 自動コミット機能をサポートするには、InnoDB または BDB ストレージ エンジンを使用する必要があります。
- InnoDB はトランザクションセーフなエンジンとして知られています。

-- 取引開始
START TRANSACTION; または BEGIN;
トランザクションが開かれた後、実行されたすべての SQL ステートメントは、現在のトランザクション内の SQL ステートメントと見なされます。
-- トランザクションのコミット
専念;
-- トランザクションのロールバック
ロールバック;
一部の操作で問題が発生した場合、トランザクションが開始される前にマッピングされます。

-- 取引特性
1. 原子性
トランザクションは、分割できない作業単位です。トランザクション内のすべての操作が実行されるか、まったく実行されないかのいずれかになります。
2. 一貫性
トランザクションの前後のデータの整合性は一貫している必要があります。
- トランザクションの開始時と終了時に外部データが一貫している
- 取引全体を通じて操作が継続される
3. 孤立
複数のユーザーが同時にデータベースにアクセスする場合、あるユーザーのトランザクションが他のユーザーによって妨害されることはなく、複数の同時トランザクション間のデータは互いに分離されている必要があります。
4. 耐久性
トランザクションがコミットされると、データベース内のデータに対する変更は永続的になります。

-- トランザクションの実装
1. テーブルタイプはトランザクションでサポートされている必要があります
2. 一連の関連操作を実行する前にトランザクションを開始する
3. 一連の操作がすべて完了した後、すべてが成功した場合はコミットし、失敗した場合はロールバックを選択すると、トランザクションは開始時のバックアップ ポイントに戻ります。

-- 取引の原則
これは、InnoDB の自動コミット機能を使用して行われます。
通常のMySQLステートメントが実行された後、現在のデータ送信操作は他のクライアントによって確認できます。
トランザクションは一時的に「自動コミット」メカニズムをオフにし、データ操作を持続するためにコミットが必要です。

- 知らせ
1.データ定義言語(DDL)ステートメントは、データベースを作成またはドロップするステートメントや、テーブルまたはストアドプロシージャを作成、ドロップ、または変更するステートメントなど、ロールバックすることはできません。
2。トランザクションをネストすることはできません

- セーブポイント
SavePoint SavePoint名 - トランザクションSavePointを設定します
SavePoint SavePoint名へのロールバック - セーブポイントにロールバック
SavePoint SavePoint名をリリース - SavePointを削除します

-INNODB自動コミット機能設定
AutoCommit = 0 | 1を設定します。
- 閉鎖されている場合、通常の操作の結果は他のクライアントには表示されず、データ操作はコミット後にのみ持続することができます。
- オートコミットをオフにしてトランザクションを開始することもできます。しかし、開始トランザクションとは異なり、
SET AutoCommitは、次回設定が再び変更されるまでサーバーの設定を永続的に変更します。 (現在の接続用)
開始トランザクションは、ステータスが開始される前にステータスを記録し、トランザクションがコミットまたはロールバックされると、トランザクションを再度開始する必要があります。 (現在のトランザクション用)


/ *テーブルをロック */
テーブルロックは、他のクライアントによる不適切な読み取りと書き込みを防ぐためにのみ使用されます。
Myisamはテーブルロックをサポートし、InnoDBはRow Locksをサポートします。
- ロック
テーブルTBL_NAME [エイリアスとして]ロック
- ロックを解除します
テーブルのロックを解除


/ *トリガー */ ---------------------
トリガーは、そのテーブルで特定のイベントが発生したときにアクティブ化されるテーブルに関連付けられた名前のデータベースオブジェクトです。
監視:レコードの追加、変更、削除。

- トリガーを作成します
trigger_name trigger_time trigger_event on tbl_name on for suly trigger_time_eventを作成するtrigger_stmt
パラメータ:
trigger_time はトリガー プログラムのアクション時間です。トリガーがそれを有効にする声明の前後に起動されていることを示すことができます。
trigger_eventトリガーをアクティブ化するステートメントのタイプを指定します
挿入:新しい行がテーブルに挿入されたときにトリガーをアクティブにします
更新:行が変更されたときに手順をトリガーします
削除:行がテーブルから削除されたときにトリガーをアクティブにします
TBL_NAME:監視されたテーブルは、トリガーを一時的なテーブルまたはビューに関連付けることはできません。
trigger_stmt:トリガーがアクティブになったときに実行されるステートメント。複数のステートメントを実行するには、BEGIN ... END化合物ステートメント構造を使用できます。

- 消去
ドロップトリガー[schema_name。] trigger_name

古いデータと新しいデータを置き換えるために古いものと新しいものを使用できます
更新が古くなる前に、更新が新しくなった後、操作を更新します。
操作を削除して、古いだけです。
操作を追加するには、新しいだけです。

- 知らせ
1.特定のテーブルの場合、同じトリガーアクション時間とイベントを持つ2つのトリガーはできません。


- 文字連結関数
concat(str1 [、str2、...])

- ブランチステートメント
条件が
ステートメントの実行
その後、elseif条件
ステートメントの実行
それ以外
ステートメントの実行
終了の場合;

- 最も外側のステートメントターミネーターを変更します
デリミッターカスタムエンドシンボル
SQLステートメントカスタムエンドシンボル

デリミッター - 元のセミコロンに戻ります

- ステートメントブロックラッピング
始める
ステートメントブロック
終わり

- 特別な実行
1.レコードが追加されるたびに、プログラムがトリガーされます。
2。重複して挿入キーアップデート構文がトリガーします。
挿入前と挿入後に重複したレコードがない場合。
レコードが重複していて、挿入前、更新の前、更新後、更新後に更新された場合。
レコードが複製されているが、挿入前と更新がトリガーされる前に更新が発生しない場合。
3。記録がある場合は構文を交換し、挿入前に削除する前、削除する前、挿入後、挿入後、削除する前、削除する前、削除する前、削除する前、


/ * SQLプログラミング */ ----------------------

- //ローカル変数---------
- 変数宣言
var_nameを宣言[、...]タイプ[デフォルト値]
このステートメントは、ローカル変数を宣言するために使用されます。変数のデフォルト値を提供するには、デフォルト節を含めます。値は式として指定でき、定数である必要はありません。デフォルトの句がない場合、初期値はnullです。

- 割り当て
セットを使用して、ステートメントに選択して、変数に値を割り当てます。

- 注:関数内でグローバル変数(ユーザー定義変数)を使用できます


- //グローバル変数---------
- 値を定義して割り当てます
SETステートメントは、変数に値を定義し、割り当てます。
@var = valueを設定します。
また、Select Inthingステートメントを使用して、変数に値を初期化して割り当てることもできます。これには、Selectステートメントは1つの行のみを返すことができますが、複数のフィールドになる可能性があります。これは、複数の変数に同時に値を割り当てることを意味し、変数の数はクエリの列の数と一致する必要があります。
また、割り当てステートメントを式として考慮し、Selectを使用して実行することもできます。 =リレーショナル演算子として扱われることを避けるために、使用してください:=。 (設定されたステートメントは=および:=)を使用できます。
@var:= 20;を選択します。
@v1:= id、 @v2 = t1 limit 1からの名前を選択します。
select * from tbl_name where @var:= 30;

Into Selectは、テーブルクエリから取得したデータを変数に割り当てることができます。
- |。

- ユーザー定義の変数とシステム識別子(通常はフィールド名)の間の競合を回避するカスタム変数名、ユーザー定義の変数は、変数名の前の開始記号として @を使用します。
@var = 10;

- 変数が定義されたら、セッション全体を通して有効です(ログアウトにログイン)


- //制御構造----------
- IFステートメント
Search_Conditionの場合
ステートメントリスト
[Elseif Search_Condition
Statement_list]
...
[それ以外
Statement_list]
終了の場合;

- ケースステートメント
[Compart-Value]から結果を得た場合
[[compare-value]から結果として...]
[他の結果]
終わり


- ループ中
[begin_label:] search_conditionが実行します
ステートメントリスト
[end_label] while while whiled;

- ループ内でwhileループを終了する必要がある場合は、ラベルを使用する必要があります。

- ループを終了します
ループの休暇全体を終了します
現在のループの反復を終了します
出口ラベルで出口するループを決定します


- //ビルトイン関数-----------
- 数値関数
ABS(x) - 絶対値ABS(-10.9)= 10
Format(x、d) - 1000分の1の価値形式(1234567.456、2)= 1,234,567.46
CEIL(x) - ラウンドアップ天井(10.1)= 11
フロア(x) - 丸く床(10.1)= 10
round(x) - ラウンドから整数
mod(m、n)-m%nm mod n残り10%3 = 1
pi() - piの値を取得します
pow(m、n)-m^n
SQRT(x) - 平方根
rand() - 乱数
切り捨て(x、d) - d小数桁を切り捨てます

- 日付と日付の関数
now()、current_timestamp();
current_date();
current_time();
日付( 'yyyy-mm-dd hh:ii:ss');
時間( 'yyyy-mm-dd hh:ii:ss');
date_format( 'yyyy-mm-dd hh:ii:ss'、 '%y%a%d%m%b%j');
unix_timestamp();
from_unixtime();

- 文字列関数
長さ(文字列) - 文字列長、バイト
char_length(string) - 文字列の文字の数
サブストリング(str、位置[、長さ]) - strの位置から開始し、長さの文字を取得します
置き換え(str、search_str、leplage_str) - strの置換_strを置き換えますstr
string(string、substring) - 弦のサブストリングの最初の発生の位置を返します
concat(string [、...]) - 連結文字列
charset(str) - 文字列の文字セットを返します
lcase(string) - 小文字に変換します
左(文字列、長さ) - string2の左から長さの文字を取ります
load_file(file_name) - ファイルからコンテンツを読み取ります
locate(substring、string [、start_position]) - 機器と同じですが、開始位置を指定できます
LPAD(文字列、長さ、パッド) - 文字列の長さが長さになるまで、文字列の先頭にパッドを繰り返し追加します
ltrim(string) - 主要なスペースを削除します
繰り返し(string、count) - カウント時間を繰り返します
rpad(string、length、pad) - 長さが長さになるまでstrに追加するためにパッドを使用します
rtrim(string) - トレーリングスペースを削除します
strcmp(string1、string2) - 文字ごとに2つの文字列の文字を比較します

- プロセス関数
[条件]から[条件]の場合[[条件]から結果として...] [else result]は複数の枝を終了する場合
if(expr1、expr2、expr3)二重分岐。

- 集約関数
カウント()
和();
max();
min();
avg();
グループ連結()

- 他の一般的に使用される関数
md5();
デフォルト();


- //保存された関数、カスタム関数----------
- 新しい
function function_name(パラメーターリスト)を作成しますreturen return値タイプ
関数本体

- 関数名は法的識別子である必要があり、既存のキーワードと競合するべきではありません。
- 関数は、特定のデータベースに属する必要があります。DB_NAME.FUNCITON_NAMEの形式を使用して、現在の関数が属するデータベースを実行できます。
- パラメーターパーツは、「パラメーター名」と「パラメータータイプ」で構成されています。複数のパラメーターはコンマで分離されています。
- 関数本文は、複数の利用可能なMySQLステートメント、フロー制御、可変宣言、およびその他のステートメントで構成されています。
- 複数のステートメントを開始...終了ステートメントブロックに囲む必要があります。
- 返品声明が必要です。

- 消去
[存在する場合] function_name;

- チェック
「Partten」のような関数ステータスを表示
function function_nameの作成を表示します。

- 改訂
function function_name関数オプションを変更します


- //ストアドプロシージャ、カスタム関数---------
- 定義ストアドプロシージャ:ストアドプロシージャは、SQLのデータベースに保存されているコード(手順)です。
通常、ストアドプロシージャは、登録、クラス料金の支払い、注文エントリなど、ビジネスロジックを完了するために使用されます。
通常、関数は特定の機能に焦点を当て、他の声明で呼び出される必要がありますが、ストアドプロシージャは他のプログラムでは呼び出されず、コールを通じて実行されます。

- 作成する
プロシージャSP_NAME(パラメーターリスト)を作成する
手順本体

パラメーターリスト:関数のパラメーターリストとは異なり、パラメータータイプを指定する必要があります
で、入力タイプを示します
出力タイプを示します
混合タイプを示します

返品値はないことに注意してください。


/ *ストアドプロシージャ */ ----------------------

ストアドプロシージャは、実行可能なコードのコレクションです。関数と比較して、それはビジネスロジックにもっと傾いています。
呼び出し:コールプロシージャ名
- 知らせ
- 返品値はありません。
- 単独でのみ呼ばれ、他のステートメントと混ぜることはできません

- パラメーター
in | out | inoutパラメーター名データ型
入力:呼び出しプロセス中、データは手順本体内のパラメーターに入力されます。
out output:呼び出しプロセス中に、手順本文の結果がクライアントに返されます
Inout入力と出力:入力と出力の両方

- 文法
手順手順名(パラメーターリスト)を作成する
始める
手順本体
終わり


/* ユーザーと権限の管理 */ ------------------

ユーザー情報テーブル: mysql.user
- 更新許可
フラッシュ特権
- ユーザーを追加します
CREATE USER ユーザー名 IDENTIFIED BY [PASSWORD] パスワード (文字列)
- mysql データベースに対するグローバル CREATE USER 権限、または INSERT 権限を持っている必要があります。
- ユーザーの作成のみ可能で、権限を付与することはできません。
- ユーザー名、引用符に注意してください: 例: 'user_name'@'192.168.1.1'
- パスワードも引用する必要があり、純粋な数値パスワードも引用する必要があります
- プレーンテキストでパスワードを指定するには、パスワードキーワードを省略します。 PASSWORD() 関数によって返されるハッシュ値としてパスワードを指定するには、キーワード PASSWORD を含めます。
- ユーザーの名前を変更します
ユーザー名 old_user を new_user に変更
- パスワードを設定します
パスワードを設定=​​パスワード( 'password') - 現在のユーザーのパスワードを設定します
username = password( 'password')のパスワードを設定します - 指定されたユーザーのパスワードを設定します
- ユーザーを削除します
ユーザーユーザー名をドロップします
- アクセス許可/ユーザーの追加
テーブル名のユーザー名の付与権限[パスワード] 'パスワード']を付与
- すべての特権は、すべての特権を意味します
- *。 *すべてのライブラリのすべてのテーブルを意味します
- ライブラリ名。特定のライブラリの下のテーブルを示します
- 許可を表示します
ユーザー名のグラントを表示します
- 現在のユーザー権限を表示します
grantsを表示します。
- 公開権を取り消します
ユーザー名からテーブル名の特権リストを取り消します
すべての特権を取り消し、ユーザー名からオプションを付与 - すべての特権を取り消す
- 許可レベル
- 助成金または取り消しを使用するには、Grant Option Privilegeを使用する必要があり、許可または取り消ししている特権を使用する必要があります。
グローバルレベル:特定のサーバー内のすべてのデータベースにグローバルアクセス許可が適用されます。
GRANT ALL ON *.* および REVOKE ALL ON *.* は、グローバル権限のみを付与および取り消します。
データベースレベル:データベースの権限は、特定のデータベース、mysql.db、mysql.hostのすべてのオブジェクトに適用されます
GRANT ALL ON db_name.* および REVOKE ALL ON db_name.* は、データベース権限のみを付与および取り消します。
テーブルレベル:特定のテーブル内のすべての列に適用されます
GRANT ALL ON db_name.tbl_name および REVOKE ALL ON db_name.tbl_name は、テーブル権限のみを付与および取り消します。
列レベル:列の特権は、特定のテーブルの単一の列に適用されます
REVOKE を使用する場合は、付与される列と同じ列を指定する必要があります。
- 許可リスト
すべての[特権] - グラントオプション以外のすべての簡単な権限を設定します
Alter -Alter Tableの使用を可能にします
ルーチンを変更 - 保存されたルーチンを変更または削除します
作成 - 作成テーブルの使用を許可します
ルーチンを作成 - 保存されたルーチンを作成します
一時テーブルの作成 - 一時テーブルの作成を有効にします
CREATE USER - CREATE USER、DROP USER、RENAME USER、および REVOKE ALL PRIVILEGES の使用を有効にします。
CREATE VIEW -- CREATE VIEWの使用を許可します
DELETE -- DELETEの使用を許可します
DROP -- DROP TABLEの使用を許可します
実行 - ユーザーが保存されたサブルーチンを実行できるようにします
ファイル - selectを使用することを可能にします。
INDEX -- CREATE INDEX と DROP INDEX の使用を許可します
INSERT -- INSERTの使用を許可します
LOCK TABLES - SELECT 権限を持つテーブルに対して LOCK TABLES を使用できます。
PROCESS -- SHOW FULL PROCESSLIST の使用を有効にする
参照 - 実装されていません
リロード - フラッシュを使用できます
複製クライアント - ユーザーがスレーブサーバーまたはマスターサーバーのアドレスをクエリすることができます
複製スレーブ - レプリケーションスレーブサーバー用(マスターサーバーからバイナリログイベントを読む)
SELECT -- SELECTの使用を許可する
データベースを表示 - すべてのデータベースを表示します
ショービュー - ショーの作成ビューの使用を有効にします
SHUTDOWN -- mysqladmin シャットダウンの使用を許可する
SUPER - CHANGE MASTER、KILL、PURGE MASTER LOGS、SET GLOBAL ステートメント、および mysqladmin debug コマンドの使用を有効にします。max_connections に達した場合でも、接続 (1 回) できます。
UPDATE -- UPDATEの使用を許可する
使用法 - 「許可なし」の同義語
許可オプション - 特権の付与を許可します


/ *テーブルメンテナンス */
- テーブルのキーワード分布を分析して保存します
分析[ローカル|
- 1つ以上のテーブルがエラーを確認してください
テーブルtbl_name [、tbl_name] ... [オプション] ...
オプション = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
- データファイルを削除します
[local |] no_write_to_binlog]テーブルtbl_name [、tbl_name] ...

/*その他*/ -----------------------

1.キーワードの複製を避けるために、バックテック( `)を識別子(ライブラリ名、テーブル名、フィールド名、インデックス、エイリアス)をラップすることができます!中国人は識別子としても使用できます!

2。各ライブラリディレクトリには、現在のデータベースを保存するオプションファイルdb.optがあります。

3. 注記:

シングルラインコメント#コメントcontentmulti-lineコメント/*コメントコンテンツ*/
シングルラインコメント - コメントコンテンツ(標準のSQLコメントスタイル、ダブルダッシュの後にスペース文字(スペース、タブ、ラインブレークなど)が必要です)

4。パターンワイルドカード:

_単一の文字
%ゼロ文字を含む任意の数の文字
単一の引用は逃げる必要があります\ '

5。CMDコマンドラインのステートメントターミネーターは、「;」、「\ g」、「\ g」であり、表示結果にのみ影響します。他の場所では、セミコロンを使用してステートメントを終了します。 Delimiterは、現在のダイアログのステートメントターミネーターを変更できます。

6。SQLはケースに敏感ではありません

7.既存のステートメントをクリアする:\ c

頻繁に使用されるMySQLステートメント(必見)の包括的な概要は、あなたと共有したいことを願っています。

以下もご興味があるかもしれません:
  • よく使用されるSQLクエリステートメントの毎日の収集
  • MySQL シリーズ: MySQL リレーショナル データベースの基本概念
  • MySQL はリレーショナルデータベースですか?
  • MySQLの基本を素早く学ぶ
  • SQLクエリ構文の知識の要約

<<:  JavaScriptはスクロールバーの位置を取得し、ページをアンカーポイントまでスライドします。

>>:  Docker コンテナのネットワーク障害に対する 6 つの解決策

推薦する

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

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

Docker で nginx の https を設定する方法

https をサポートしていない Web サイトは、ブラウザによって徐々に安全でないとマークされるた...

JavaScript 円グラフの例

描画効果実装コードJavaScript var キャンバス = document.getElemen...

Vueはシンプルなメモ帳機能を実装します

この記事では、参考までに、簡単なメモ帳機能を実装するためのVueの具体的なコードを紹介します。具体的...

Docker バインディング固定 IP/クロスホストコンテナ相互アクセス操作

序文これまでは、パイプワークで割り当てた静的 IP は一時的なものであり、再起動すると無効になってい...

HTML で dl(dt,dd)、ul(li)、ol(li) を使用する方法

HTML <dl> タグ#定義と使用法<dl> タグは定義リストを定義します...

MySQL 文字セットの変更に関する実践的なチュートリアル

序文: MySQL では、システムが多くの文字セットをサポートしており、異なる文字セット間にはわずか...

Vue プロジェクトで Baidu Map API を使用する方法

目次1. Baidu Map Open Platformにアカウントを登録してログインする2. 必要...

WindowsでのNginxの起動や停止などの基本操作コマンドの詳しい説明

Windows で Nginx を使用するには、Nginx サービスの起動、停止、Nginx のリロ...

HTML テーブル マウス ドラッグ ソート機能

効果画像: 1. ファイルをインポートする<script src="js/jquer...

VirtualBox を使用して Linux クラスターをシミュレートする方法

1. ホストMacbookにHOSTをセットアップする前回のドキュメントでは仮想マシンの静的 IP ...

MySQL に大量のデータを挿入する 4 つの方法の例

序文この記事では主に、MySQLに大量のデータを挿入する4つの方法を紹介し、参考と学習のために共有し...

Element-ui アップロードファイルのアップロード制限の解決策

質問アップロードするファイルのタイプを accept に追加することは、「表面的な」役割しか果たしま...

IE 環境での css-vars-ponyfill の使用に関する詳細な説明 (nextjs ビルド)

css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...

Linux で fdisk を使用してディスクをパーティション分割する方法

Linux パーティションでよく使用されるコマンド: fdisk、MBR パーティション テーブルの...