MySQL常見問題

一、mysql如何作分頁前端

mysql數據庫作分頁用limit關鍵字,它後面跟兩個參數startIndex和pageSizemysql


二、mysql引擎有哪些,各自的特色是什麼?程序員

innodb和myisam兩個引擎,二者區別是
innodb支持事物,myisam不支持
innodb支持外鍵,myisam不支持
innodb不支持全文索引,myisam支持全文索引
innodb提供提交、回滾、崩潰恢復能力的事物的安全能力,實現併發控制
myisam提供較高的插入和查詢記錄的效率,主要用於插入和查詢redis


三、數據庫怎麼創建索引sql

create index account_index on `table name `(`字段名`(length)

 

四、一張表多個字段,怎麼建立組合索引mongodb

create index account_index on `table name `(`字段名`,'字段名')

 

五、如何應對數據的高併發,大量的數據計算數據庫

  1. 建立索引
  2. 數據庫讀寫分離,兩個數據庫,一個做爲寫,一個做爲讀
  3. 外鍵去掉

 

 

4.django中orm表性能相關的
select_related:一對多使用,查詢主動作連表
prefetch_related:多對多或者一對多的時候使用,不作連表,作屢次查詢django

 

 

六、數據庫內連表、左連表、右連表編程

內鏈接是根據某個條件鏈接兩個表共有的數據
左鏈接是根據某個條件以及左邊的錶鏈接數據,右邊的表沒有數據的話則爲null
右鏈接是根據某個條件以及右邊的錶鏈接數據,左邊的表沒有數據的話則爲nullwindows

 

 

七、視圖和表的區別

視圖是已經編譯好的sql語句,是基於sql語句的結果集的可視化的表,而表不是
視圖是窗口,表示內容
視圖沒有實際的物理記錄,而表有
視圖的創建和刪除隻影響視圖自己,不影響對應的表

 

 

八、關係型數據庫的特色

數據集中控制
數據獨立性高
數據共享性好
數據冗餘度小
數據結構化
統一的數據保護能力

 

 

九、mysql數據庫都有哪些索引

普通索引:普通索引僅有一個功能:加速查找
惟一索引:惟一索引兩個功能:加速查找和惟一約束(可含null)
外鍵索引:外鍵索引兩個功能:加速查找和惟一約束(不可爲null)
聯合索引:聯合索引是將n個列組合成一個索引,應用場景:同時使用n列來進行查詢

 

 

十、存儲過程

存儲過程不容許執行return語句,可是能夠經過out參數返回多個值,存儲過程通常是做爲一個獨立的部分來執行,存儲過程是一個預編譯的SQL語句。

十一、sql語句與數據庫優化:

 

簡答:

select句中避免使用 '*'
減小訪問數據庫的次數
刪除重複記錄
用where子句替代having子句
減小對錶的查詢
explain

深刻:

  1. 儲存引擎選擇:若是數據表須要事務處理,應該考慮使用 InnoDB,由於它徹底符合 ACID 特性。若是不須要事務處理,使用默 認存儲引擎 MyISAM 是比較明智的
  2. 分表分庫,主從
  3. 對查詢進行優化,要儘可能避免全表掃描,首先應考慮在 where 及 order by 涉及的列上創建索引
  4. 應儘可能避免在 where 子句中對字段進行 null 值判斷,不然 將致使引擎放棄使用索引而進行全表掃描
  5. 應儘可能避免在 where 子句中使用 != 或 <> 操做符,不然將 引擎放棄使用索引而進行全表掃描
  6. 應儘可能避免在 where 子句中使用 or 來鏈接條件,若是一個 字段有索引,一個字段沒有索引,將致使引擎放棄使用索引而進行全 表掃描
  7. Update 語句,若是隻更改 一、2 個字段,不要 Update 所有字 段,不然頻繁調用會引發明顯的性能消耗,同時帶來大量日誌
  8. 對於多張大數據量(這裏幾百條就算大了)的表 JOIN,要先 分頁再 JOIN,不然邏輯讀會很高,性能不好。

數據庫優化:

  1. 1優化索引、SQL 語句、分析慢查詢;
  2. 設計表的時候嚴格根據數據庫的設計範式來設計數據庫;
  3. 使用緩存,把常常訪問到的數據並且不須要常常變化的數據 放在緩存中,能 節約磁盤 IO;
  4. 優化硬件;採用 SSD,使用磁盤隊列技術(RAID0,RAID1,RDID5) 等;
  5. 採用 MySQL 內部自帶的表分區技術,把數據分層不一樣的文件, 可以提升磁 盤的讀取效率;
  6. 垂直分表;把一些不常常讀的數據放在一張表裏,節約磁盤 I/O;
  7. 主從分離讀寫;採用主從複製把數據庫的讀操做和寫入操做 分離開來;
  8. 分庫分表分機器(數據量特別大),主要的的原理就是數據 路由;
  9. 選擇合適的表引擎,參數上的優化;
  10. 進行架構級別的緩存,靜態化和分佈式;
  11. 不採用全文索引;
  12. 採用更快的存儲方式,例如 NoSQL 存儲常常訪問的數

 

十二、char和vachar區別:

char是固定長度,存儲須要空間12個字節,處理速度比vachar快,費內存空間
vachar是不固定長度,須要存儲空間13個字節,節約存儲空間

 

 

1三、Mechached與redis

mechached:只支持字符串,不能持久化,數據僅存在內存中,宕機或重啓數據將所有失效
不能進行分佈式擴展,文件沒法異步法。
優勢:mechached進程運行以後,會預申請一塊較大的內存空間,本身進行管理。
redis:支持服務器端的數據類型,redis與memcached相比來講,擁有更多的數據結構和併發支持更豐富的數據操做,可持久化。
五大類型數據:string、hash、list、set和有序集合,redis是單進程單線程的。
缺點:數據庫的容量受到物理內存的限制。

 

 

1四、sql注入

sql注入是比較常見的攻擊方式之一,針對編程員編程的疏忽,經過sql語句,實現帳號沒法登錄,甚至篡改數據庫。
防止:凡涉及到執行sql中有變量時,切記不要用拼接字符串的方法

 

 

1五、什麼是觸發器

觸發器是一種特殊的存儲過程,主要是經過事件來觸發而被執行的,他能夠強化約束,來維護數據庫的完整性和一致性,能夠跟蹤數據內的操做從而不容許未經許可的 更新和變化,能夠聯級運算。
只有表支持觸發器,視圖不支持觸發器

1六、遊標是什麼?

是對查詢出來的結果集做爲一個單元來有效的處理,遊標能夠定在該單元中的特定行,從結果集的當前行檢索一行或多行,能夠對結果集當前行作修改,
通常不使用遊標,可是須要逐條處理數據的時候,遊標顯得十分重要

 

 

1七、 數據庫支持多有標準的SQL數據類型,重要分爲三類

數值類型(tinyint,int,bigint,浮點數,bit)
字符串類型(char和vachar,enum,text,set)
日期類型(date,datetime,timestamp)

 

 

1八、mysql慢查詢

慢查詢對於跟蹤有問題的查詢頗有用,能夠分析出當前程序裏哪些sql語句比較耗費資源
慢查詢定義:
指mysql記錄全部執行超過long_query_time參數設定的時間值的sql語句,慢查詢日誌就是記錄這些sql的日誌。
mysql在windows系統中的配置文件通常是my.ini找到mysqld
log-slow-queries = F:\MySQL\log\mysqlslowquery.log 爲慢查詢日誌存放的位置,通常要有可寫權限
long_query_time = 2 2表示查詢超過兩秒才記錄

1九、memcached命中率

命中:能夠直接經過緩存獲取到須要的數據
不命中:沒法直接經過緩存獲取到想要的數據,須要再次查詢數據庫或者執行其餘的操做,緣由多是因爲緩存中根本不存在,或者緩存已通過期
緩存的命中率越高則表示使用緩存的收益越高,應額用的性能越好,抗病發能力越強
運行state命令能夠查看memcached服務的狀態信息,其中cmd—get表示總的get次數,get—hits表示命中次數,命中率=get—hits / cmd—get

20、Oracle和MySQL該如何選擇,爲何?

他們都有各自的優勢和缺點。考慮到時間因素,我傾向於MySQL
選擇MySQL而不選Oracle的緣由
MySQL開源
MySQL輕便快捷
MySQL對命令行和圖形界面的支持都很好
MySQL支持經過Query Browser進行管理

 

https://www.cnblogs.com/songyifan427/ 步履不停總結

 

2一、什麼狀況下適合創建索引?

1.爲常常出如今關鍵字order by、group by、distinct後面的字段,創建索引
2.在union等集合操做的結果集字段上,創建索引,其創建索引的目的同上
3.爲常常用做查詢選擇的字段,創建索引
4.在常常用做錶鏈接的屬性上,創建索引

2二、數據庫底層是用什麼結構實現的,你大體畫一下:

底層用B+數實現,結構圖參考:
http://blog.csdn.net/cjfeii/article/details/10858721
http://blog.csdn.net/tonyxf121/article/details/8393545

 

 

2三、sql語句應該考慮哪些安全性?

1.防止sql注入,對特殊字符進行轉義,過濾或者使用預編譯的sql語句綁定變量
2.最小權限原則,特別是不要用root帳戶,爲不一樣的類型的動做或者組建使用不一樣的帳戶
3.當sql運行出錯時,不要把數據庫返回的錯誤信息所有顯示給用戶,以防止泄漏服務器和數據庫相關信息

 

 

2四、數據庫事物有哪幾種?

  1. 隔離性:事務的執行不受其餘事務的干擾,事務 執行的中間結果對其餘事務必須是透明的。
  2. 持久性:對於任意已提交事務,系統必須保證該 事務對數據庫的改變不被丟失,即便數據庫出現故障
  3. 一致性:幾個並行執行的事務,其執行結果必 須與按某一順序串行執行的結果相一致。
  4. 原子性:事務中的所有操做在數據庫中是不 可分割的,要麼所有完成,要麼均不執行。

 

 

2五、MySQ數據表在什麼狀況下容易損壞?

服務器忽然斷電致使數據文件損壞
強制關機,沒有先關閉mysq服務器等

 

 

2六、drop,delete與truncate的區別

drop直接刪除表
truncate刪除表中數據,再插入時自增加id又從1開始
delete刪除表中數據,能夠加where子句

 

 

2七、數據庫範式

  1. 第一範式:就是無重複的列
  2. 第二範式:就是非主屬性非部分依賴於主關鍵字
  3. 第三範式:就是屬性不依賴於其餘非主屬性(消除冗餘)

 

 

2八、MySQL鎖類型

根據鎖的類型分:能夠分爲共享鎖、排他鎖、意向共享鎖和意向排他鎖
根據鎖的粒度分:能夠分爲行鎖、表鎖
對於mysql而言,事務機制更可能是靠底層的存儲引擎來實現的,所以,mysql層面只有表鎖,
而支持事物的innodb存儲引發則實現了行鎖(在行相應的索引記錄上的鎖)
說明:對於更新操做(讀不上鎖),只有走索引纔可能上行鎖
MVCC(多版本併發控制)併發控制機制下,任何操做都不會阻塞讀取操做,
讀取操做也不會阻塞任何操做,只由於讀不上鎖
共享鎖:由讀表操做加上的鎖,加鎖後其餘用戶只能獲取該表或行的共享鎖,不能獲取排他鎖,
也就是說只能讀不能寫
排他鎖:由寫表操做加上的鎖,加鎖後其餘用戶不能獲取該表或該行的任何鎖,典型mysql事物中的更新操做
意向共享鎖(IS):事物打算給數據行加行共享鎖,事物在給一個數據行加共享鎖前必須先取得該表的IS鎖
意向排他鎖(IX):事物打算給數據行加行排他鎖,事物在給一個數據行家排他鎖前必須先取得該表的IX鎖

 

 

2九、如何解決MYSQL數據庫中文亂碼問題?

1.在數據庫安裝的時候指定字符集
2.若是在按完了之後能夠更改配置文件
3.創建數據庫時候:指定字符集類型
4.建表的時候也指定字符集

 

 

30、數據庫應用系統設計

1.規劃
2.需求分析
3.概念模型設計
4.邏輯設計
5.物理設計
6. 程序編制及調試
7.運行及維護

 

31.說一下 MySQL 數據庫存儲的原理?

過程是一個可編程的函數,它在數據庫中建立並保存。

它能夠有 SQL 語句和一些特殊的控制結構組成。

當但願在不一樣的應用 程序或平臺上執行相同的函數,或者封裝特定功能時,存儲過程是非 常有用的。

數據庫中的存儲過程能夠看作是對編程中面向對象方法的 模擬。它容許控制數據的訪問方式。

存儲過程一般有如下優勢:

  1. 存儲 能實現較快的執行速度。
  2. 存儲過程容許標準組件是編程。
  3. 存儲過程能夠用流控制語句編寫,有很強的靈活性,能夠完成 複雜的判斷和較複雜的運算。
  4. 存儲 可被做爲一種安全機制來充分利用。
  5. 存儲過程能過減小網絡流量。

 

3二、readis 和 mysql 的區別

readis 是內存數據庫,數據保存在內存中,速度快。 mysql 是關係型數據庫,持久化存儲,存放在磁盤裏面,功能強 大。檢索的話,會涉及到必定的 IO,數據訪問也就慢。

 

3二、redis 受攻擊怎麼辦?

主從 持久化存儲 Redis 不以 root 帳戶啓動 設置複雜密碼 不容許 key 方式登陸

 

3二、MongoDB是什麼

MongoDB 是一個面向文檔的數據庫系統。使用 C++編寫,不支持 SQL,但有本身功能強大的查詢語法。

MongoDB 使用 BSON 做爲數據存儲和傳輸的格式。BSON 是一種類 似 JSON 的二進制序列化文檔,支持嵌套對象和數組。

MongoDB 很像 MySQL,document 對應 MySQL 的 row,collection 對應 MySQL 的 table 應用場景:

  1. 網站數據:mongo 很是適合實時的插入,更新與查詢,並具 備網站實時數據存儲所需的複製及高度伸縮性。
  2. 緩存:因爲性能很高,mongo 也適合做爲信息基礎設施的緩 存層。在系統重啓以後,由 mongo 搭建的持久化緩存能夠避免下層的 數據源過載。
  3. 大尺寸、低價值的數據:使用傳統的關係數據庫存儲一些數 據時可能會比較貴,在此以前,不少程序員每每會選擇傳統的文件進 行存儲。
  4. 高伸縮性的場景:mongo 很是適合由數十或者數百臺服務器 組成的數據庫。
  5. 用於對象及 JSON 數據的存儲:mongo 的 BSON 數據格式很是 適合文檔格式化的存儲及查詢。
  6. 重要數據:mysql,通常數據:mongodb,臨時數據:memcache
  7. 對於關係數據表而言,mongodb 是提供了一個更快速的視圖 view;而對於 PHP 程序而言,mongodb 能夠做爲一個持久化的數組來 使用,而且這個持久化的數組還能夠支持排序、條件、限制等功能。
  8. 將 mongodb 代替 mysql 的部分功能,主要一個思考點就是: 把 mongodb 看成 mysql 的一個 view(視圖),view 是將表數據整合 成業務數據的關鍵。好比說對原始數據進行報表,那麼就要先把原始 數據統計後生成 view,在對 view 進行查詢和報表。

不適合的場景:

  1. 高度事物性的系統:例如銀行或會計系統。傳統的關係型數 據庫目前仍是更適用於須要大量原子性復瑣事務的應用程序。
  2. 傳統的商業智能應用:針對特定問題的 BI 數據庫會對產生 高度優化的查詢方式。對於此類應用,數據倉庫多是更合適的選擇。
  3. 須要 SQL 的問題
  4. 重要數據,關係數據 優勢:弱一致性(最終一致),更能保證用戶的訪問速度 文檔結構的存儲方式,可以更便捷的獲取數 內置 GridFS,高效存儲二進制大對象 (好比照片和視頻) 支持複製集、主備、互爲主備、自動分片等特性 動態查詢 全索引支持,擴展到內部對象和內嵌數組

缺點:不支持事務 MongoDB 佔用空間過大 維護工具不夠成熟

 

3三、 Mysql 和 redis 提升可用性

MySQL Replication 是 MySQL 官方提供的主從同步方案,用於將 一個 MySQL 實例的數據,同步到另外一個實例中。Replication 爲保證 數據安全作了重要的保證,也是如今運用最廣的 MySQL 容災方案。 Replication 用兩個或以上的實例搭建了 MySQL 主從複製集羣,提供 單點寫入,多點讀取的服務,實現了讀的 scale out. Sentinel 是 Redis 官方爲集羣提供的高可用解決方案。 在實際 項目中可使用 sentinel 去作 redis 自動故障轉移,減小人工介入 的工做量。另外 sentinel 也給客戶端提供了監控消息的通知,這樣 客戶端就可根據消息類型去判斷服務器的狀態,去作對應的適配操做。 下面是 Sentinel 主要功能列表: Monitoring:Sentinel 持續檢查集羣中的 master、slave 狀態, 判斷是否存活。 Notification:在發現某個 redis 實例死的狀況下,Sentinel 能經過 API 通知系統管理員或其餘程序腳本。 Automatic failover:若是一個 master 掛掉後,sentinel 立馬 啓動故障轉移,把某個 slave 提高爲 master。其餘的 slave 從新配 置指向新 master。 Configuration provider:對於客戶端來講 sentinel 通知是有效可 信賴的。客戶端會鏈接 sentinel 去請求當前 master 的地址,一旦發 生故障 sentinel 會提供新地址給客戶端。

 

3四、數據庫索引是什麼

數據庫索引,是數據庫管理系統中一個排序的數據結構,以協助 快速查詢、更新數據庫表中數據。索引的實現一般使用 B_TREE。 B_TREE 索引加速了數據訪問,由於存儲引擎不會再去掃描整張表得 到須要的數據;相反,它從根節點開始,根節點保存了子節點的指針, 存儲引擎會根據指針快速尋找數據。

 

3五、Redis mongodb 優缺點

MongoDB 和 Redis 都是 NoSQL,採用結構型數據存儲。兩者在使 用場景中,存在必定的區別,這也主要因爲兩者在內存映射的處理過 程,持久化的處理方法不一樣。MongoDB 建議集羣部署,更多的考慮到 集羣方案,Redis 更偏重於進程順序寫入,雖然支持集羣,也僅限於 主-從模式.

Redis 優勢:

  1. 讀寫性能優異
  2. 支持數據持久化,支持 AOF 和 RDB 兩種持久化方式
  3. 支持主從複製,主機會自動將數據同步到從機,能夠進行讀寫 分離。
  4. 數據結構豐富:除了支持 string 類型的 value 外還支持 string、hash、set、sortedset、list 等數據結構。

缺點:

  1. Redis 不具有自動容錯和恢復功能,主機從機的宕機都會致使 前端部分讀寫請求失敗,須要等待機器重啓或者手動切換前端的 IP 才能恢復。
  2. 主機宕機,宕機前有部分數據未能及時同步到從機,切換 IP 後還會引入數據不一致的問題,下降了系統的可用性。
  3. Redis 的主從複製採用全量複製,複製過程當中主機會 fork 出 一個子進程對內存作一份快照,並將子進程的內存快照保存爲文件發 送給從機,這一過程須要確保主機有足夠多的空餘內存。若快照文件 較大,對集羣的服務能力會產生較大的影響,並且複製過程是在從機 新加入集羣或者從機和主機網絡斷開重連時都會進行,也就是網絡波 動都會形成主機和從機間的一次全量的數據複製,這對實際的系統運 營形成了不小的麻煩。
  4. Redis 較難支持在線擴容,在集羣容量達到上限時在線擴容會 變得很複雜。爲避免這一問題,運維人員在系統上線時必須確保有足 夠的空間,這對資源形成了很大的浪費。 優勢:弱一致性(最終一致),更能保證用戶的訪問速度 文檔結構的存儲方式,可以更便捷的獲取數 內置 GridFS,高效存儲二進制大對象 (好比照片和視頻) 支持複製集、主備、互爲主備、自動分片等特性 動態查詢 全索引支持,擴展到內部對象和內嵌數組

缺點:不支持事務 MongoDB 佔用空間過大 維護工具不夠成熟

 

3六、數據庫負載均衡

負載均衡集羣是由一組相互獨立的計算機系統構成,經過常規網 絡或專用網絡進行鏈接,由路由器銜接在一塊兒,各節點相互協做、共 同負載、均衡壓力,對客戶端來講,整個羣集能夠視爲一臺具備超高 性能的獨立服務器。

(1)實現原理 實現數據庫的負載均衡技術,首先要有一個能夠控制鏈接數據庫 的控制端。在這裏,它截斷了數據庫和程序的直接鏈接,由全部的程 序來訪問這個中間層,而後再由中間層來訪問數據庫。這樣,咱們就 能夠具體控制訪問某個數據庫了,而後還能夠根據數據庫的當前負載 採起有效的均衡策略,來調整每次鏈接到哪一個數據庫。

(2)實現多據庫數據同步 對於負載均衡,最重要的就是全部服務器的數據都是實時同步的。 這是一個集羣所必需的,由於,若是數不據實時、不一樣步,那麼用戶 從一臺服務器讀出的數據,就有別於從另外一臺服務器讀出的數據,這 是不能容許的。因此必須實現數據庫的數據同步。這樣,在查詢的時 候就能夠有多個資源,實現均衡。比較經常使用的方法是 Moebius for SQL Server 集羣,Moebius for SQL Server 集羣採用將核心程序駐留在 每一個機器的數據庫中的辦法,這個核心程序稱爲 Moebius for SQL Server 中間件,主要做用是監測數據庫內數據的變化並將變化的數 據同步到其餘數據庫中。數據同步完成後客戶端纔會獲得響應,同步 過程是併發完成的,因此同步到多個數據庫和同步到一個數據庫的時 間基本相等;另外同步的過程是在事務的環境下完成的,保證了多份 數據在任什麼時候刻數據的一致性。正由於 Moebius 中間件宿主在數據 庫中的創新,讓中間件不但能知道數據的變化,並且知道引發數據變 化的 SQL 語句,根據 SQL 語句的類型智能的採起不一樣的數據同步的策 略以保證數據同步成本的最小化。 數據條數不多,數據內容也不大,則直接同步數據 數據條數不多,可是裏面包含大數據類型,好比文本,二進制數 據等,則先對數據進行壓縮而後再同步,從而減小網絡帶寬的佔用和 傳輸所用的時間。 數據條數不少,此時中間件會拿到形成數據變化的 SQL 語句,然 後對 SQL 語句進行解析,分析其執行計劃和執行成本,並選擇是同步 數據仍是同步 SQL 語句到其餘的數據庫中。此種狀況應用在對錶結構 進行調整或者批量更改數據的時候很是有用。

(3)優缺點 優勢:

  1. 擴展性強:當系統要更高數據庫處理速度時,只要簡單地增 加數據庫服務器就 能夠獲得擴展。
  2. 可維護性:當某節點發生故障時,系統會自動檢測故障並轉 移故障節點的應用,保證數據庫的持續工做。
  3. 安全性:由於數據會同步的多臺服務器上,能夠實現數據集 的冗餘,經過多份數據來保證安全性。另外它成功地將數據庫放到了 內網之中,更好地保護了數據庫的安全性。
  4. 易用性:對應用來講徹底透明,集羣暴露出來的就是一個 IP 缺點: (1) 不可以按照 Web 服務器的處理能力分配負載。 (2) 負載均衡器(控制端)故障,會致使整個數據庫系統癱瘓。

 

3七、MySQL 集羣的優缺點

優勢:

  1. 99.999%的高可用性
  2. 快速的自動失效切換
  3. 靈活的分佈式體系結構,沒有單點故障
  4. 高吞吐量和低延遲
  5. 可擴展性強,支持在線擴容

缺點:

  1. 存在不少限制,好比:不支持外鍵
  2. 部署、管理、配置很複雜
  3. 佔用磁盤空間大,內存大
  4. 備份和恢復不方便
  5. 重啓的時候,數據節點將數據 load 到內存須要很長時間

 

3八、redis 有多少個庫?

Redis 一個實例下有 16 個庫

 

3九、redis 緩存命中率計算?

Redis 提供了 INFO 這個命令,可以隨時監控服務器的狀態,只 用 telnet 到對應服務器的端口,執行命令便可:

telnet localhost 6379 info

在輸出的信息裏面有這幾項和緩存的狀態比較有關係:

keyspace_hits:14414110 keyspace_misses:3228654 used_memory:433264648 expired_keys:1333536 evicted_keys:1547380

經過計算 hits 和 miss,咱們能夠獲得緩存的命中率:14414110 / (14414110 + 3228654) = 81% ,一個緩存失效機制,和過時時間 設計良好的系統,命中率能夠作到 95%以上

 

40、sqlserver,MySQL ,Oracle http,redis,https 默認端 口號?

  • sqlserver:1433
  • MySQL:3306
  • Oracle :1521
  • http:80
  • https:443
  • redis:6379

41.mysql查重:

  select * from table where id in (select idcard from table group by id having count(idcard)>1);

 

42.查詢並集:

  SELECT oname,odesc FROM object_a
  UNION
  SELECT oname,odesc FROM object_b

 

43.查詢交集:

  SELECT a.oname,a.odesc FROM object_a a INNER JOIN object_b b ON a.oname=b.oname AND a.odesc=b.odesc;

  SELECT a.oname,a.odesc FROM object_a a INNER JOIN object_b b USING(oname,odesc);

 

44.查詢差集

  SELECT a.oname, a.odesc
  FROM
  object_a a
  LEFT JOIN object_b b
  ON a.oname = b.oname
  AND a.odesc = b.odesc
  WHERE b.id IS NULL

 

 

45.清空表並重置自增id:

  TRUNCATE TABLE table_name ;
相關文章
相關標籤/搜索