5、mysql整理

源文來自https://github.com/TIGERB/easy-tips,分享給大家 共同進步

常用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`;
  • 關聯(lián)查詢
SELECT *
FROM `your_table_name`
AS a
JOIN `your_anther_table_name`
AS b
WHERE a.column_name = b.column_name...;
  • 合計函數條件查詢:WHERE 關鍵字無法與合計函數一起使用
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...;
  1. 復制一張表結構
CREATE TABLE `your_table_name`
LIKE `destination_table_name`;
  1. 完全復制一張表:表結構+全部數據
CREATE TABLE `your_table_name`
LIKE `destination_table_name`;

INSERT INTO `your_table_name`
SELECT *
FROM `destination_table_name`;

附錄: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 user(Host, User, authentication_string) value('localhost', 'username', password('pwd'))

mysql 5.7 新增用戶

// 插入新用戶
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;
  • 引擎
    • InnoDB
    • MyISAM
    • Memory
    • Archive\Blackhole\CSV\Federated\merge\NDB
  • 事務隔離級別
    • READ UNCOMMITTED:未提交讀
    • READ COMMITTED:提交讀/不可重復讀
    • REPEATABLE READ:可重復讀(MYSQL默認事務隔離級別)
    • SERIALIZEABLE:可串行化
  • 索引
    • B-Tree
    • 哈希索引(hash index)
    • 空間數據索引(R-Tree)
    • 全文索引
- 主鍵唯一索引
- 唯一索引
- 普通索引
- 聯(lián)合索引
- 聚簇索引
- 非聚簇索引
    • 悲觀鎖
    • 樂觀鎖
- 樂觀鎖:
  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鎖

- 臟讀:一個事務內修改了數據,另一個事務讀取并使用了這個數據;
- 幻讀:一個事務內修改了涉及全表的數據,另一個事務往這個表里面插入了新的數據,第一個事務出現幻讀;
- 不可重復讀:一個事務內連續(xù)讀了兩次數據,中間另一個事務修改了這個數據,導致第一個事務前后兩次讀的數據不一致;
- 更新丟失:一個事務內變更了數據,另一個事務修改了這個數據,最后前一個事務commit導致另一個事務的變更丟失;
  • 分表
    • 垂直分表
    • 水平分表
  • sql優(yōu)化
  • 主從配置
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • SQL SELECT 語句 一、查詢SQL SELECT 語法 (1)SELECT 列名稱 FROM 表名稱 (2...
    有錢且幸福閱讀 5,992評論 0 33
  • 什么是數據庫? 數據庫是存儲數據的集合的單獨的應用程序。每個數據庫具有一個或多個不同的API,用于創(chuàng)建,訪問,管理...
    chen_000閱讀 4,124評論 0 19
  • MySQL 數據庫常用命令 1、MySQL常用命令 create database name; 創(chuàng)建數據庫 use...
    55lover閱讀 5,038評論 1 57
  • 清晨 睜開眼睛的那一刻,明亮的光恍惚了我的眼睛,推開門發(fā)現窗外的綠蔭更加挺拔俊俏。 蜿蜒的青石板路上垂直而下,不遠...
    白點點閱讀 496評論 0 2
  • 文/孫意陽 那個下午我們是多么興奮。“明天春游!”自軍訓來,這可是第一次集體出游呀!同學們急忙準備著,飲料、...
    蓉城文學閱讀 408評論 1 1

友情鏈接更多精彩內容