ホームページ  >  記事  >  データベース  >  MySql で一般的に使用されるステートメントの包括的な概要の詳細な紹介

MySql で一般的に使用されるステートメントの包括的な概要の詳細な紹介

黄舟
黄舟オリジナル
2017-03-21 13:24:041020ブラウズ

以下のエディターは、MySqlよく使用されるステートメントの包括的な概要を提供します (必読の記事)。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。編集者と一緒に見に来てください

以下にまとめた知識はどれもよく使うもので、役に立つ情報ばかりですので、ぜひコレクションしておきましょう。

/* MySQL を開始します */

net start mysql

/* サーバーに接続および切断します*/

mysql -h address -P port -u user name -p パスワード

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

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

SHOW PROCESSLIST -- 実行中のスレッドを表示
SHOW VARIABLES --

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

-- 現在のデータベースを表示します
select database();
-- 現在の時刻、ユーザー名、データベースのバージョンを表示します
select now(), user(), version();
- ライブラリを作成します
データベースを作成します[存在しない場合] データベース名 データベース オプション データベース オプション:
CHARACTER SET charset_name
COLLATE Collat​​ion_name
-- 既存のライブラリを表示します
データベースを表示します[ like 'pattern']
-- 現在のライブラリを表示します情報
データベース作成の表示 データベース名
-- ライブラリのオプション情報の変更
データベース変更 データベース名のオプション情報
--
ライブラリの削除 /* テーブル操作*/ ------------ ------

-- テーブルの作成 [一時的な] テーブルを作成します[存在しない場合] [ライブラリ名] テーブル名 (テーブルの定義) [ テーブル オプション
]
各フィールドには
が必要ですデータ型

最後のフィールドにはカンマ一時テーブルを含めることはできません。 :
フィールド名のデータ型 [NOT NULL | DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] [PRIMARY] KEY] [コメント「文字列」]

--- テーブルオプション 文字 - 文字セット
charset = charset_name
テーブルが設定されていない場合は、データベース文字セットを使用します
- ストレージエンジン
Engine = Engine_name
管理データで使用される異なるデータ構造、異なる構造、異なる構造、異なる構造、異なる構造、異なる構造、異なる構造、異なる構造、異なる構造、異なる構造、異なる構造、異なる構造、異なる構造、異なる構造、異なる処理方法、提供される機能操作などにつながります。共通エンジン: InnoDB MyISAM メモリ/ヒープ BDB マージの例 CSV MaxDB アーカイブ
エンジンが異なるとテーブルの構造とデータを保存する方法が異なります
MyISAM テーブル ファイルの意味:FRM テーブル定義、.myd テーブル データ、.mYi テーブル インデックス
innodb テーブル ファイルの意味: .fRM テーブル定義、テーブル スペース データおよびログ ファイル
show Engines - ストレージ エンジンのステータス情報を表示します
Show Engine Engine {logs | status } -- ストレージ エンジンのログまたはステータス情報を表示します
-- データファイルディレクトリ
DATA DIRECTORY = 'Directory'
-- インデックスファイルディレクトリ
INDEX DIRECTORY = 'Directory'
-- テーブルコメント
COMMENT = 'string'
- - パーティションオプション
PARTITION BY ... (マニュアルを参照)詳細)
-- すべてのテーブルを表示
SHOW TABLES[ LIKE 'pattern']
SHOW TABLES FROM テーブル名
-- テーブル構成を表示
SHOW CREATE TABLE テーブル名 (情報更新詳細)
DESC テーブル名/DESCRIBE テーブル名/ EXPLAIN テーブル名/SHOW COLUMNS FROM テーブル名 [LIKE 'PATTERN']
SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']
--
Modify table
-- テーブル自体を変更するためのオプション l Alter Table テーブル オプション 例: テーブル テーブル名変更エンジン = Myisam;
- テーブルの名前変更 テーブル名の変更テーブルの元の名前。テーブル名 (テーブルは別のデータベースに移動できます)
名前の変更 -Pugeフィールド t フィールド名の後に追加を示しますフィールド名の後に
first-最初に追加することを示します
主キーを追加 (フィールド名)- 主キーを作成します
adD unique [インデックス名] (フィールド名) (フィールド名) -- 一意のインデックスを作成します
使用する 使用する 使用するOut Out Out Out Out Out Out out out of to - to ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ greateは、属性の一意のインデックスであり、フィールド名は変更できません。変更する必要があります (元の属性をすべて書き込む必要があります)
[colorn] 元のフィールド名を変更します 新しいフィールド名セクション属性 - フィールド名の変更をサポートします
主キーを削除 - メインキーを削除します (主キーを削除する前に主キーを削除します)キーの 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 [NO_WRITE_TO_BINLOG] TABLE 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 テーブル名 [その他の句]
-- 複数のテーブルから取得できる フィールド
使用するusing using using using out out out through out'''' out'' out'' '' ' out' ' down to ‐ ‐‐‐ down‐‐‐‐‐‐‐‐他のフィールドで使用します
-
-- Change
UPDATE テーブル名 SET フィールド名 = 新しい値 [, フィールド名 = 新しい値] [
Update
条件]

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

--MySQL、データベース、テーブル、フィールドにエンコーディングを設定できます

-- データのエンコーディングはクライアントのエンコーディングと一致している必要はありませんSHOW VARIABLES LIKE 'character_set_%' - - すべて表示 文字セットエンコーディング項目 Character_set_client クライアントがサーバーにデータを送信するときに使用されるエンコーディング

Character_set_results サーバーが結果をクライアントに返すために使用するエンコーディング

Character_set_connection 接続層エンコーディング

SET

変数名

= 変数値

setcharacter_set_client = gbk;
setcharacter_set_results = gbk;

setcharacter_set_connection = gbk;

SET NAMES GBK; -- 上記 3 つの設定を完了するのと同等 -- 校正セット

ソート用の校正セット
SHOW CHARACTER SET [ LIKE 'pattern' ]/SHOW CHARSET [LIKE 'pattern'] すべての文字セットを表示
SHOW COLLATION [LIKE 'pattern'] すべての照合セットを表示
charset 文字セットのエンコーディング

Collat​​e Collat​​e 照合セットのエンコーディング


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


1. 数値型

-- a. -------

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

int(M ) M は合計桁数を表します

- デフォルトでは符号ビットがあり、unsigned 属性が変更されます

- 表示幅、フィールドを定義するときに特定の数値が設定するのに十分な桁数でない場合は、埋められます先頭に0を付けます 埋め込み、ゼロフィル属性の変更

例: int(5) 数値「123」を挿入します。埋め込み後は「00123」になります

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

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

浮動小数点型は、符号ビット unsigned 属性と表示幅の zerofill 属性の両方をサポートします。

整数型とは異なり、前後に0が埋め込まれます。浮動小数点型を定義する場合は、総桁数と小数点以下の桁数を指定する必要があります。 float(M, D) double(M, D)

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

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

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

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

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

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

10 進数 - 可変長

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

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

浮動小数点数を

String

に変換して保存します。各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、テキスト ----------

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

tinyblob、blob、mediumblob、longblob

text 非バイナリ文字列(文字列)

tinytext、text、mediumtext、longtext

text 定義する際、長さは定義する必要はなく、合計の長さは変わりません計算されます。

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

c. binary、varbinary ----------

char および varchar と同様、バイナリ文字列を保存するために使用されます。つまり、文字列ではなくバイト列が保存されます。

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

3. PHP はタイムスタンプを簡単にフォーマットできるため、日付と時刻の型

は通常、整数 timestamp で保存されます。

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

date 3 バイトの日付 1000-01-01 ~ 9999-12-3 1

timestamp 4 bytes timestamp 19700101000000 to 2038-01-19 03:14:07

time 3 bytes time -838:59:59 to 838:59:59

year 1 byte Year 1901 - 2155

datetime “ YYYY-MM-DD hh:mm:ss”
タイムスタンプ “YY-MM-DD hh:mm:ss”
“YYYYMMDDhhmmss”
“YYMMDDhhmmss”
“ YYMMDDhhmmss
日付 “YYYY-MM-DD”
“YY- "MM-DD" “ hhmmss"
"YYYY"
"YYYY"
"YYYY"
"YYYY"
"YYYY"
"YYYY" 列挙型とセット




--
Enum (enum) --------- -

enum(val1, val2, val3...) 既知の値の中から 1 つを選択します。最大数は 65535 です。

列挙値は保存時に 2 バイトの整数 (smallint) として保存されます。各列挙値は、保存された位置の順序で 1 から始まり、1 つずつ増加します。 は文字列型として動作しますが、整数型として保存されます。 NULL 値のインデックスは NULL です。

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

-- set ----------

set(val1, val2, val3...)

create table tab ( 性別 set('male', ' Female', 'なし') );

タブ値に挿入 ('男性、女性');
は最大 64 個の異なるメンバーを持つことができます。 bigint に格納され、合計 8 バイトになります。
ビット操作
の形式をとります。

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

/* タイプの選択 */

-- PHP の観点

1. 機能の満足度

2. ストレージ容量はできるだけ小さく、処理効率が高い必要があります

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


1. 計算や検索などが必要な場合は、文字列

を使用して保存するだけです。つまり、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. unique uniqueインデックス(一意制約)

特定のフィールドを作成します値を繰り返すこともできません。

3. null 制約

null はデータ型ではなく、列の属性です。
現在の列を null (何も存在しないことを意味します) にできるかどうかを示します。
null、空でも構いません。デフォルト。
null ではなく、空にすることはできません。
insert into tabvalues (null, 'val');
-- これは、フィールドが null であることが許可されているかどうかに応じて、最初のフィールドの値を null に設定することを意味します

4。属性

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

5. auto_increment 自動拡張制約

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

自動拡張には 1 つのフィールドのみが存在できます。

デフォルトは 1 で、自動的に増加し始めます。テーブル属性 auto_increment = x を使用して設定するか、テーブル tbl auto_increment = x;

6. コメント コメント

例: create table tab (id int) comment 'comment content';

7 . 外部キー外部キー制約

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

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

外部キーが存在するテーブルはスレーブテーブル(子テーブル)と呼ばれ、外部キーが指すテーブルはメインテーブル(親テーブル)と呼ばれますテーブル)。

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

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

構文:

外部キー (外部キー フィールド) 参照メイン テーブル名 (関連フィールド) [メイン テーブル レコードが削除されたときのアクション] [メインテーブルレコード更新時のアクション】

このとき、スレーブテーブルの外部キーをマスターテーブルの既存の値に制約する必要があることを検出する必要があります。関連がない場合、外部キーを null に設定できます。前提条件は、外部キー列が null でないことです。

メインテーブルのレコードが変更または更新された場合のアクションを指定することはできません。その場合、この時点でメインテーブルの操作は拒否されます。

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

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

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

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

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

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

L ----nORMAL FORMAT、NF

- 各テーブルは物理情報を保存します
- それぞれ ID フィールドを主キーとして使用します
- ID キー + 原子テーブル
- 1NF、
第一のパラダイム フィールドは分割できません。第一正規形。
-- 2NF,
第 2 正規形 第一正規形を満たすという前提の下では、部分依存は発生しません。键 部分的な依存関係を避けるためにメインキーを削除します。単一列のキーワードを追加します。
-3nf、
3nfにあるshird erormer form、

特定のフィールドは主キーに依存し、他のフィールドはこのフィールドに依存します。これは推移的な依存関係です。物理情報のデータを表にまとめます。

/* select */ ------------------select [all|distinct] select_expr from -> where ->関数] -> order by -> select_expr

-- すべてのフィールドを表すために * を使用できます。 * SELECT * from TB; 式を使用できます (計算式、関数呼び出し、フィールドも式です)
stu、29+25、now () from tb を使用できます
- 各列に使用できます。 。列の識別を簡素化し、複数の列識別子の重複を避けるのに適しています。
- as キーワードを使用することも、as を省略することもできます。 stu+10 を tb の add10 として選択します。

- テーブルに別名を付けることができます。 as キーワードを使用します。

* tb1 を tt、tb2 を bb から選択します。
- 複数のテーブルが水平方向に積み重ねられ、データはデカルト積を形成します。
select * from tb1, tb2;

c. where 句

-- から取得したデータ ソースからフィルターします。 - 整数 1 は true を表し、0 は false を表します。
-- 式は
operator
と操作

array

によって形成されます。 ️ but >、!、&&、||、 in (not) null、(not) like、(not) in、(not) between and、is (not)、and、or、not、xor is/ & lt; & lt; 句の信頼性をテストするための Ture/False/UNKNOWN ではありません



フィールド/エイリアス [ソート方法]
はグループ化後にソートされます。昇順: ASC、降順: DESC

次の [total 関数] を group by とともに使用する必要があります: count
異なる非 NULL 値の数を返します count(*)、count(field)
sum sums
max は最大値を見つけます

min は最小値を見つけます

avg は平均を見つけます
group_concat はグループの連結から NULL 以外の値を含む文字列の結果を返します。グループ内の
文字列連結
e.having節、条件節



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

f. order by句、sorting句

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

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

は、処理された結果の数のみを制限します。処理結果は、レコードの出現順に 0 から始まるインデックスを付けてコレクションとして扱います。
開始位置を制限し、項目数を取得します
最初のパラメータを省略すると、インデックス 0 から開始することを意味します。 limit レコードの数を取得します

h。distinct、すべてのオプション

distinct 重複レコードを削除します

デフォルトは、すべて、すべてのレコードです

/* UNION */ ------- -- ---------

複数の選択クエリの結果を結果セットに結合します。

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

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

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


--from タイプ

from の後の要件はテーブルであり、サブクエリの結果はエイリアス化される必要があります。

- 各クエリ内の条件を簡素化します。
- from タイプは、結果から一時的な
table を生成する必要があります。これは、元のテーブルのロックを解放するために使用できます。 - サブクエリはテーブル、テーブルサブクエリを返します。
select * from (select * from tb where id>0) as subfrom where id>1;

-- ここで、タイプ

- サブクエリは値、スカラーサブクエリを返します。

- サブクエリにエイリアスを付ける必要はありません。
- where サブクエリ内のテーブルは直接更新できません。
select * from tb wheremoney = (select max(money) from tb);

-- column subquery

サブクエリの結果が列を返す場合。 T クエリを完了するには、in または not in を使用します。

EXISTS 条件と Not Existul 条件を使用します。
子クエリがデータを返す場合は、1 または 0 を返します。条件を判断するためによく使用されます。 ️存在する t1 から列 1 を選択 (t2 から * を選択);



-- row subquery


クエリ条件は行です。
select * from t1スルーアウト アウトスルーアウトセンサーアウトウェイアウトMBサーサーサーセ一緒にアウトアウトアウトアウトアウトアウトアウトソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーソーはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいはいso so so so so so so so so so so so so so so so so so so so so so so so so so so 通常、サブクエリとの比較に使用されます。 2 つ以上の列を返します。

- 特殊演算子
!= all() not in
= some() in と同等。 any は some
のエイリアスです != some() これは、not in と同等ではなく、それらの 1 つと同等ではありません。

すべて、一部は他の演算子と一緒に使用できます。





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


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

- クロス結合 クロス結合
つまり、条件なしの内部結合です。 * TB1 Cross Join Tb2 から * を選択します。

外部
- データが存在しない場合は、接続結果にも表示されます。 L - 左結合
データが存在しない場合、左のテーブルのレコードが表示され、右のテーブルは Null 埋め込み
-- 自然結合
接続を完了するための接続条件を自動的に決定します。
using を省略したことに相当し、同じフィールド名が自動的に検索されます。
自然結合
自然左結合
自然右結合

info, extra_info から info.id、info.name、info.stu_num、extra_info.hobby、extra_info.sex を選択します (info.stu_num = extra_info.stu_id;

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


select * into out
file

ファイルアドレス [制御形式] from テーブル名; --Export table データ

データをロード [ローカル] infile ファイル アドレス [replace|ignore] into table テーブル名 [制御形式]; -- データをインポート 生成されるデータのデフォルトの区切り文字はタブ文字です local が指定されていない場合、データはファイルは次の場所にある必要があります サーバー上の
replace キーワードとignore キーワードは、既存の一意のキー レコードの繰り返し処理を制御します
-- 制御形式



フィールド 制御フィールド形式

デフォルト: フィールドは 't' で囲まれ、'' で終了します。 by ' \' 'string' で終了 -- 'char' で終了
-- ラップ
'char' でエスケープ -- 例:
SELECT a,b,a+b INTO OUTFILE '/tmp/ Result.Text '
フィールドは ',' で終了 オプションで '" で囲まれる
行は ' N' で終了
from Test_table; 'string' で終了 -- 終了



/* insert */ --------- --------


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

列の指定を省略し、値を指定するために括弧内の値 () を要求することもできます。列の順序で表示されるすべてのフィールド。

または、set 構文を使用します。
insert into tbl_name set field=value,...;

()、()、(); の形式で一度に複数の値を使用できます。 tbl_name 値に挿入 (), (), ();
列の値を指定するときに式を使用できます。
insert into tbl_namevalues (field_value, 10+10, now());
特別なデフォルト値を使用できます。これは、列がデフォルト値を使用することを意味します。

insert into tbl_name 値 (field_value, デフォルト);

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

insert into tbl_name select ...;

挿入された値に主キー (または一意のインデックス) の競合がある場合に、他の非主キー列の情報を更新するように指定できます。

tbl_name に挿入 値/重複キー更新フィールド=値で設定/選択, …;


/* 削除 */ ------------------


DELETE FROM tbl_name [WHERE where_定義] [ORDER BY ...] [LIMIT row_count]

条件に従って削除


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

条件を並べ替えることで削除できます。 order by + limit

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

/* truncate */ ------------------

TRUNCATE [TABLE] tbl_name
データの消去
テーブルの削除と再構築

違い:

1、truncateはテーブルを削除して再度作成すること、deleteは1つずつ削除することです

2、truncateはauto_incrementの値をリセットします。 3. Truncate は削除されたアイテムの数を知りませんが、delete は知っています。

4、パーティション化されたテーブルで使用すると、truncate はパーティションを保持します


/* バックアップと復元*/ ------------------ バックアップ。テーブル内のデータ構造とデータを保存します。

mysqldump コマンドを使用して完了します。

-- エクスポート


1. 1 つのテーブルをエクスポート

mysqldump -u ユーザー名 -p パスワード データベース名 テーブル名 > ファイル名 (D:/a.sql)

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

-w バックアップ条件を保持できます

-- import


1. mysql にログインする場合:

ソース バックアップ ファイル



2. ログインしていない場合

mysql -u ユーザー名 -p パスワード データベース名 < バックアップ ファイル


/*

View
*/ ----- -------------

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


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


ビューは、ビュー内で参照される基になるテーブルのフィルターのように機能します。定義されたビューのフィルターは、現在のデータベースまたは

他の

データベース内の 1 つ以上のテーブル、または他のビューから取得できます。ビューを介したクエリには制限がなく、ビューを介したデータ変更にもほとんど制限がありません。
ビューは、データベースに保存されるクエリの SQL ステートメントであり、主に次の 2 つの理由で使用されます:

セキュリティ

理由により、ビューは次のような一部のデータを隠すことができます: 社会保障基金テーブル、ビューを使用できます。名前、住所のみを表示するため。社会保障番号、給与番号などを表示しないもう 1 つの理由は、複雑なクエリを理解し、使用しやすくするためです。

-- ビューを作成します


CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement

- ビュー名は一意である必要があり、同じにすることはできませんテーブルとして名前を付けます。

- ビューでは、select ステートメントによってクエリされた列名を使用することも、対応する列名を自分で指定することもできます。
- ALGORITHM を通じて指定された、ビューによって実行されるアルゴリズムを指定できます。
- column_list が存在する場合、その数は SELECT ステートメントによって取得される列の数と等しくなければなりません

-- ビュー構造


SHOW CREATE VIEW view_name

-- ビューを削除します


- 削除後ビューでは、データはまだ存在します。


- 複数のビューを同時に削除できます。

DROP VIEW [IF EXISTS] view_name ...


-- ビュー構造を変更します


- 更新されたすべてのビューがテーブルにマップされるわけではないため、通常、ビューは変更されません。

ALTER VIEW view_name [(column_list)] AS select_statement


-- 関数を表示


1. ビジネスロジックを簡素化する

2. 実際のテーブル構造をクライアントから隠す


-- アルゴリズム(ALGORITHM)を表示する
MERGE マージ

ビューのクエリ ステートメントは、実行前に外部クエリとマージする必要があります。

TEMPTABLE 一時テーブル
ビューの実行後、一時テーブルが形成され、その後、外部クエリが実行されます。
UNDEFINED 未定義 (デフォルト) は、MySQL が対応するアルゴリズムを独自に選択することを意味します。

/* トランザクション (transaction) */ ------------------

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

--トランザクションのオープン
START TRANSACTION; または BEGIN;
トランザクションがオープンされると、実行されたすべての SQL ステートメントが現在のトランザクション内の SQL ステートメントとして認識されます。
--トランザクションの送信
COMMIT;
--トランザクションのロールバック
ROLLBACK;
一部の操作に問題がある場合は、トランザクションが開始される前にマッピングされます。

-- トランザクションの特性
1. アトミック性
トランザクションは、トランザクション内のすべての操作が発生するか、何も発生しないかのどちらかです。
2. 一貫性
​​トランザクションの前後でデータの整合性が一貫している必要があります。 « - トランザクションの開始時と終了時、外部データは一貫しています - トランザクション全体を通じて、操作は継続的です
3. 分離
複数のユーザーがデータベースにアクセスするために発行された場合、ユーザーの業務は影響を受けません。他のユーザーのデータの干渉を避けるために、複数の同時トランザクション間のデータは互いに分離されている必要があります。
4. 耐久性
トランザクションがコミットされると、データベース内のデータに対する変更は永続的になります。

-- トランザクションの実装

1. 要件は、トランザクションでサポートされているテーブル タイプです

2. 関連する一連の操作を実行する前にトランザクションを開きます
3. 一連の操作全体が完了し、すべてが成功したら、送信します。失敗した場合、ローリングはトランザクションが開始されたバックアップ ポイントに戻ります。

--トランザクション

の原理は、InnoDB の自動コミット機能を使用して完了します。

通常の MySQL がステートメントを実行すると、現在のデータ送信操作が他のクライアントから見えるようになります。
トランザクションは一時的に「自動コミット」メカニズムをオフにし、永続的なデータ操作を送信するにはコミットを必要とします。

-- 注意

1. データベースを作成またはキャンセルするステートメントや、テーブルまたはストアド サブルーチンを作成、キャンセル、または変更するステートメントなどのデータ定義言語 (D

DL
) ステートメントはロールバックできません。 2. トランザクションはネストできません
-- ポイントを保存します

SAVEPOINT 保存ポイント名 -- トランザクションの保存ポイントを設定します

ROLLBACK TO SAVEPOINT 保存ポイント名 -- 保存ポイントにロールバックします
RELEASE SAVEPOINT 保存ポイント名 -- 保存を削除します

-- InnoDB 自動コミット機能設定

をクリックします。 SET autocommit = 0|1; 0 は自動コミットをオフにすることを意味し、1 は自動コミットをオンにすることを意味します。

- 閉じられている場合、通常の操作の結果は他のクライアントには表示されず、データ操作を永続化するにはコミットが必要です。
- 自動コミットをオフにしてトランザクションを有効にすることもできます。ただし、START TRANSACTION とは異なり、
SET autocommit は、次回設定が再度変更されるまでサーバー設定を永続的に変更します。 (現在の接続の場合)
トランザクションがコミットまたはロールバックされると、トランザクションを再度開く必要があります。 (現在のトランザクションの場合)

/* ロックテーブル*/

テーブルロックは、他のクライアントが不適切に読み書きできないようにするためにのみ使用されます
MyISAM はテーブルロックをサポートし、InnoDB は行ロックをサポートします
--Lock
LOCK TABLES tbl_name [AS alias]
-- UNLOCK TABLES


/* Trigger*/ ------------------

トリガーは、特定のイベントが発生したときにテーブルに関連する名前付きデータベース オブジェクトです。テーブル内で が発生すると、オブジェクトがアクティブ化されます

リスニング: レコードの追加、変更、削除。

--トリガーの作成
CREATE TRIGGER trigger_nametrigger_timetrigger_event ON tbl_name FOR EACH ROW trigger_stmt
パラメーター:
trigger_time はトリガー プログラムのアクション時間です。トリガーをアクティブにするステートメントの前または後にトリガーが起動されるかどうかを示す前または後を指定できます。
trigger_event は、トリガーをアクティブにするステートメントのタイプを指定します
INSERT: テーブルに新しい行が挿入されたときにトリガーがアクティブになります
UPDATE: 行が変更されたときにトリガーがアクティブになります
DELETE: 行が変更されたときにトリガーがアクティブになりますはテーブル tbl_name から削除されます: リスナー テーブルは永続テーブルである必要があり、トリガーを TEMPORARY テーブルまたはビューに関連付けることはできません。
trigger_stmt: トリガープログラムが起動されたときに実行されるステートメント。複数のステートメントを実行するには、BEGIN...END 複合ステートメント構造を使用できます

-- 削除

DROP TRIGGER [schema_name.]trigger_name

old と new を使用して古いデータと新しいデータを置き換えることができます

Update 操作、old更新前、更新後は新しいです。
削除操作、古いもののみです。
追加操作、新しいもののみです。

-- 注

1. 同じトリガーのアクション時間とイベントを持つ特定のテーブルに対して、2 つのトリガーは存在できません。

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

--分岐文

if条件 then
実行文
elseif条件 then
実行文
else
実行文
end if;

-- 最も外側のステートメント終了記号を変更します

delimiter カスタム終了記号
SQL ステートメント
カスタム終了記号

delimiter ; -- 元のセミコロンに戻します

-- ステートメント ブロック ラッパー

begin
ステートメント ブロック
end

-- 特別な実行

1. レコードが追加されている限り、プログラムがトリガーされます。
2. 重複キー更新構文に挿入すると、以下がトリガーされます。
重複レコードがない場合は、挿入前、挿入後にトリガーされます。
重複レコードがあり、更新があった場合は、挿入前、更新前、更新後にトリガーされます。 ;
レコードが重複しているが更新が発生しない場合は、挿入前、更新前にトリガーします
3. レコードがある場合は、挿入前、削除前、削除後、挿入後に実行します

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

--// ローカル変数----------

-- 変数宣言

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

--代入

ステートメントに set および select を使用して、値を変数に代入します。

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

--// グローバル変数 ----------
-- 定義と代入
set ステートメントは定義および代入できます。変数に値を割り当てます。
set @var = value;
select into ステートメントを使用して初期化し、変数に値を代入することもできます。これには、select ステートメントが 1 つの行のみを返す必要がありますが、複数のフィールドを返すことができます。つまり、複数の変数に同時に値が割り当てられるように、変数の数はクエリ内の列の数と一致する必要があります。 。
代入ステートメントを式とみなして、select を通じて実行することもできます。このとき、= が関係演算子として扱われるのを避けるために、代わりに := を使用します。 (set ステートメントでは = と := を使用できます)。
select @var:=20;
select @v1:=id, @v2=name from t1 limit 1;
select * from tbl_name where @var:=30;

select into テーブル内のクエリから取得したデータ変数に代入することができます。

-| select max(height) into @max_height from tb;

-- カスタム変数名

select ステートメント内のユーザー定義変数とシステム識別子 (通常はフィールド名) の間の競合を避けるために、ユーザー定義変数を使用します変数名の前に開始記号として @ を付けます。
@var=10;

- 変数が定義されると、セッション サイクル (ログインからログアウトまで) を通じて有効になります

--// 制御構造 ----------
-- ifステートメント
if search_condition then
statement_list
[elseif search_condition then
statement_list]
...
[else
state_list]
end if;

-- case ステートメント

CASE value WHEN [比較値] THEN result
[WHEN [比較値] THEN 結果 ...]
[ELSE 結果]
END

--
while ループ[begin_label:] while search_condition do
Statement_list
end while [end_label];

- while ループをループ内の早い段階で終了する必要がある場合は、ラベルを使用する必要があります。ラベルはペアで表示する必要があります。

“function
Abs(x)abs天井(10.1)=11
floor(x) - ラウンドダウンフロア(10.1)=10
round(x) - ラウンドオフ

mod(m、n) - m%n m mod n 余り 10 を求める %3 = 1

pi () -Capow (m, n) -m^n
sqrt (x) - -算術平方根 RAND () -乱数 Truncate (x, d) - - - - - - - - 小数点以下を切り捨てる

-- 時刻と日付の関数
now(), current_timestamp(); -- 現在の日付と時刻
current_date(); -- 現在の日付
current_time(); time
date('yyyy -mm -dd hh:ii:ss'); -- 日付部分を取得します
time('yyyy-mm-dd hh:ii:ss') -- 時刻部分を取得します

date_format
('yyyy-mm-dd hh: ii:ss', '%d %y %a %d %m %b %j'); -- 時刻のフォーマット
unix_timestamp() -- UNIX タイムスタンプ
from_unixtime( ); -- タイムスタンプ時刻から取得

-- 文字列関数
length(string) -- 文字列の長さ、バイト数
char_length(string) -- 文字列内の文字数
substring(str,position [,length]) - - str の位置から開始して、length 文字を取ります
replace(str ,search_str ,replace_str) -- str 内の search_str を replace_str に置き換えます
instr(string ,substring) -- string 内で部分文字列が最初に出現する位置を返します
concat(string [,... ]) -- 文字列を連結します charset(str) -- 文字列の文字セットを返します lcase(string) -- 小文字に変換します
left(string, length) -- string2 の左から length 文字を取得します
load_file (file_name) -- ファイルから内容を読み取ります

locate(substring, string [,start_position]) -- instr と同じですが、開始位置を指定できます

lpad(string, length, Pad) -- パッドを使用して繰り返します文字列の長さが length になるまで、文字列の先頭に追加します
ltrim(string) -- 先頭のスペースを削除します
repeat(string, count) -- count 回繰り返します
rpad(string, length, Pad) --Add長さが length になるまで str の後にパッドを入れます
rtrim(string) - バックエンドのスペースを削除します
strcmp(string1, string2) - 2 つの文字列のサイズを 1 文字ずつ比較します

-- 関数を処理します
case when [条件] then result [when [条件] then result .. .] [else result] end 複数分岐
if(expr1,expr2,expr3) 二重分岐。

-- 集計関数
count();
sum();
max();
min();
avg();
group_concat()

-- その他の一般的に使用される関数
md5();
default( ) ;


--// ストレージ関数、
カスタム関数
----------
-- New
CREATE FUNCTION function_name (パラメータリスト)
RETURN

S 戻り値の型

関数本体

- 関数名は正当な識別子である必要があり、既存のキーワードと競合してはなりません。
- 関数は特定のデータベースに属している必要があります。db_name.funciton_name の形式を使用して、現在の関数が属するデータベースを実行できます。それ以外の場合は、現在のデータベースが使用されます。
- パラメータ部分は「パラメータ名」と「パラメータの種類」で構成されます。複数のパラメータはカンマで区切られます。
- 関数本体は、使用可能な複数の mysql ステートメント、プロセス制御、変数宣言、およびその他のステートメントで構成されます。
- begin...end ステートメント ブロックを使用して複数のステートメントを含める必要があります。
- return 戻り値ステートメントが必要です。

-- 削除
DROP FUNCTION [IF EXISTS] function_name;

-- 表示
SHOW FUNCTION STATUS LIKE 'partten'
SHOW CREATE FUNCTION function_name;

-- 変更
ALTER FUNCTION function_name 関数オプション


--/ / ストアド プロシージャ 、カスタム関数 ----------
-- 定義
ストアド プロシージャは、データベースに格納される SQL で構成されるコード (プロシージャ) です。
ストアド プロシージャは通常、登録、シフトの支払い、注文の倉庫管理などのビジネス ロジックを完了するために使用されます。
関数は通常、ある関数に焦点を当て、他のプログラムのサービスとしてみなされますが、ストアドプロシージャは他の人が呼び出すことができず、呼び出しを通じて単独で実行されます。

--作成
CREATE PROCEDURE sp_name (パラメータ リスト)
プロセス本体

パラメータ リスト: 関数パラメータ リストとは異なり、パラメータ タイプ
IN (入力タイプを意味します)
OUT (出力を意味します) を指定する必要がありますtype
INOUT、これは混合型を意味します

戻り値がないことに注意してください。


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

ストアド プロシージャは、実行可能コードのコレクションです。関数よりもビジネス ロジックを優先します。
Call: CALL プロシージャ名
-- 注意
- 戻り値はありません。
- 単独でのみ呼び出すことができ、他のステートメントと混合することはできません

-- パラメーター
IN|OUT|INOUT パラメーター名 データ型
IN 入力: 呼び出しプロセス中に、プロセス本体内のパラメーターにデータを入力します
OUT 出力: 呼び出し処理中に、プロセス本体の結果がクライアントに返されます
INOUT 入出力: 入力と出力の両方

-- 構文
CREATE PROCEDURE プロセス名 (パラメータリスト)
BEGIN
プロセス本体
END


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

ユーザー情報テーブル: mysql.user
-- 権限を更新します
FLUSH PRIVILEGES
-- ユーザーを追加します
CREATE USER ユーザー名 IDENTIFIED BY [PASSWORD] パスワード (文字列)
- mysql データベース のグローバル CREATE USER 権限が必要ですまたは INSERT 権限を持っています。
- ユーザーは作成のみ可能ですが、権限を付与することはできません。
- ユーザー名、引用符に注意してください: 'user_name'@'192.168.1.1' など
- パスワードにも引用符が必要で、純粋な数値のパスワードにも引用符が必要です
- パスワードをプレーン テキストで指定するには、 PASSWORD キーワードは無視する必要があります。 PASSWORD() 関数によって返されるハッシュ値としてパスワードを指定するには、キーワード PASSWORD を含める必要があります
-- ユーザーの名前を変更します
RENAME USER old_user TO new_user
-- パスワードを設定します
SET PASSWORD = PASSWORD('password' ) -- 現在のユーザーのパスワードを設定します
SET PASSWORD FOR Username = PASSWORD('Password') - 指定したユーザーのパスワードを設定します
-- ユーザーを削除します
DROP USER username
-- 権限を割り当てる/ユーザーを追加します
GRANT 権限リスト ON テーブル名 TO ユーザー名 [IDENTIFIED BY [PASSWORD] 'パスワード']
- すべての権限はすべての権限を意味します
- *.* はすべてのライブラリ内のすべてのテーブルを意味します
- ライブラリ名は特定のライブラリの下にあるテーブルを意味します。
-- 権限を表示します
SHOW GRANTS FOR username
-- 現在のユーザー権限を表示します
SHOW GRANTS; または SHOW GRANTS FOR CURRENT_USER; または SHOW GRANTS FOR CURRENT_USER();
REVOKE 権限リスト ON テーブル名 FROM ユーザー名
REVOKE ALL PRIVILEGES, GRANT OPTION FROM username — すべての権限を取り消します
--権限レベル
-- GRANT または REVOKE を使用するには、GRANT OPTION 権限が必要で、付与または取り消している権限を使用している必要があります。
グローバル レベル: グローバル アクセス許可は、特定のサーバー内のすべてのデータベースに適用されます。mysql.user
GRANT ALL ON *.* および REVOKE ALL ON *.* は、グローバル アクセス許可の付与と取り消しのみを行います。
データベースレベル: データベース権限は、特定のデータベース、mysql.db、mysql.host 内のすべてのターゲットに適用されます
GRANT ALL ON db_name.* および REVOKE ALL ON db_name.* は、データベース権限の付与と取り消しのみを行います。
テーブルレベル: テーブル権限は特定のテーブル内のすべての列に適用されます。mysql.talbes_priv
GRANT ALL ON db_name.tbl_name と REVOKE ALL ON db_name.tbl_name はテーブル権限の付与と取り消しのみを行います。
列レベル: 列の権限は、特定のテーブル mysql.columns_priv 内の単一の列に適用されます
REVOKE を使用する場合は、許可された列と同じ列を指定する必要があります。
-- 権限リスト
ALL [PRIVILEGES] -- GRANT OPTION を除くすべての単純な権限を設定します
ALTER -- ALTER TABLE の使用を許可します
ALTER ROUTINE -- 保存されているサブルーチンを変更またはキャンセルします
CREATE -- CREATE TABLE
CREATE ROUTINE の使用を許可します-- ストアド サブルーチンを作成します。
CREATE TEMPORARY TABLES -- CREATE TEMPORARY TABLE を許可します。
CREATE USER -- CREATE USER、DROP USER、RENAME USER、および REVOKE ALL PRIVILEGES を許可します。
ビューの作成ただし、 」のデータと . ED
RELOAD -- FLUSH
REPLICATION の使用を許可しますCLIENT -- ユーザーがスレーブまたはマスターのアドレスを要求できるようにします
REPLICATION SLAVE -- レプリケーション スレーブの場合 (マスターからバイナリ ログ イベントを読み取る)
SELECT -- SELECT を許可します
SHOW DATABASES -- すべてのデータベースを表示します
SHOW VIEW - - SHOW CREATE VIEW
SHUTDOWN を許可します -- mysql
admin のシャットダウンを許可します

SUPER
-- CHANGE MASTER、KILL、PURGE MASTER LOGS および SET GLOBAL ステートメントを許可します。mysqladmin デバッグ コマンドでは、max_connections が設定されている場合でも (1 回のみ) 接続できます。に達しました。
UPDATE -- UPDATE の使用を許可します
USAGE -- 「権限なし」の同義語
GRANT OPTION -- 権限の付与を許可します


/* テーブルのメンテナンス */
-- テーブルのキーワード分布を分析して保存します
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG ] TABLE テーブル名...
-- 1 つ以上のテーブルにエラーがないか確認します
CHECK TABLE [, tbl_name] ...[option] ...
option = {QUICK MEDIUM | | CHANGED}
--データ ファイルのデフラグ
OPTIMIZE [NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

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

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

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

3. コメント:

単一行コメント# コメント内容
複数行コメント/* コメント内容*/
単一行コメント -- コメント内容 (標準 SQL コメント形式、二重ダッシュの後にスペースが必要です (スペース、 TAB、改行など)

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

_ 任意の 1 文字
% 複数の文字 (0 文字も含む)
一重引用符はエスケープする必要があります'

5. CMD コマンドのステートメント終了文字line には「;」、「G」、「g」を指定できますが、表示結果にのみ影響します。それ以外の場合はセミコロンで終わります。 delimiter は、現在の会話のステートメント終了文字を変更できます。

6. SQL は大文字と小文字を区別しません

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

以上がMySql で一般的に使用されるステートメントの包括的な概要の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。