5、mysql整理
4798 ワード
ソースhttps://github.com/TIGERB/easy-tipsみんなに分かち合って
常用sql文増 表 を追加増加記録 フィールド を追加インデックスの追加 プライマリ・キー ユニークインデックス 一般インデックス 全文インデックス 削除 行ごとに削除 表全体 をクリア削除テーブル フィールド を削除削除インデックス 改 変更データ 変更フィールド フィールド値を別のテーブルの値 に変更する.調べ 一般クエリー 関連クエリー 合計関数条件照会:WHEREキーワードは合計関数とともに使用できない 同じインスタンスの下でライブラリ間クエリ テーブル構造 をコピーテーブルを完全にコピー:テーブル構造+すべてのデータ
付録:mysql常用コマンドログイン:mysql-h host-u username-p データベースのリスト:SHOW DATABESES; リスト表:SHOW TABLES; リスト構造:DESC table_name データベースを使用:USE database_name; インポート:source'file; エクスポート:mysqldump-h 127.0.0.1-u root-p「database_name」「table_name」--where=「condition」>file_name.sql; スローログの表示:mysqldumpslow-s[c:記録回数順/t:時間/l:ロック時間/r:返される記録数]-t[n:前のn個のデータ]-g「正規」/path 新規ユーザー:insert into mysql 5.7新規ユーザーエンジン InnoDB MyISAM Memory Archive\Blackhole\CSV\Federated\merge\NDB
トランザクション独立性レベル READ UNCOMMITTED:未読 READ COMMITTED:コミット/再読み取り不可 REPEATABLE READ:繰り返し読み取り可能(MYSQLデフォルトトランザクション独立性レベル) SERIALIZEABLE:シリアル化可能 インデックス B-Tree ハッシュインデックス 空間データインデックス(R-Tree) 全文インデックス ロック 悲観ロック 楽観ロック 分表 垂直分表 水平分表 sql最適化 マスタスレーブ構成
常用sql文
CREATE TABLE `table_name`(
...
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `your_table_name`(`column_name`)
VALUES
('your_value_one'),
('your_value_two');
ALTER TABLE `your_table_name`
ADD `your_column_name` ...
AFTER `column_name`;
ALTER TABLE `your_table_name`
ADD PRIMARY KEY your_index_name(your_column_name);
ALTER TABLE `your_table_name`
ADD UNIQUE your_index_name(your_column_name);
ALTER TABLE `your_table_name`
ADD INDEX your_index_name(your_column_name);
ALTER TABLE `your_table_name`
ADD FULLTEXT your_index_name(your_column_name);
DELETE FORM `table_name`
WHERE ...;
TRUNCATE TABLE `your_table_name`;
DROP TABLE `your_table_name`;
ALTER TABLE `your_table_name`
DROP `column_name`;
ALTER TABLE `your_table_name`
DROP INDEX your_index_name(your_column_name);
UPDATE `table_name`
SET column_name=your_value
WHERE ...;
ALTER TABLE `your_table_name`
CHANGE `your_column_name` `your_column_name` ...( );
UPDATE `your_table_name`
AS a
JOIN `your_anther_table_name`
AS b
SET a.column = b.anther_column
WHERE a.id = b.a_id...;
SELECT `column_name_one`, `column_name_two`
FROM `table_name`;
SELECT *
FROM `your_table_name`
AS a
JOIN `your_anther_table_name`
AS b
WHERE a.column_name = b.column_name...;
SELECT aggregate_function(column_name)
FROM your_table_name
GROUP BY column_name
HAVING aggregate_function(column_name)...;
SELECT *
FROM database_name.your_table_name
AS a
JOIN another_database_name.your_another_table_name
AS b
WHERE a.column_name = b.column_name...;
CREATE TABLE `your_table_name`
LIKE `destination_table_name`;
CREATE TABLE `your_table_name`
LIKE `destination_table_name`;
INSERT INTO `your_table_name`
SELECT *
FROM `destination_table_name`;
付録:mysql常用コマンド
user
(Host
,User
,authentication_string
)value('localhost','username',password('pwd'))//
insert into mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject
value('localhost', 'username', password('password'), '', '', '');
//
grant all privileges on dbname.name.* to username@localhost identified by 'password';
//
FLUSH PRIVILEGES;
-
-
-
-
-
-
- :
update table table_name
set column_name = value, version=version+1
and
where version = version;
- :update table table_name set column_name = value for update;
- :x
- : , ;
- : , , ;
- : , , ;
- : , , commit ;