python開發面試準備之mysql的總結

2021-09-24 16:52:21 字數 2644 閱讀 3096

dml:資料操作語言—>基礎的增刪改查,insert delete updata select

1)安裝

2)服務管理

5)資料管理

語法update 表名

set 欄位1 = 值1,

欄位2 = 值2,

…where 條件表示式;示例

語法delete from 表名 where 條件表示式;

示例– 刪除201801010002訂單的資訊

delete from orders

where order_id = 『201801010002』;

特別注意

1)進行嚴格條件限定,如果不帶條件刪除所有

2)真實專案中,刪除、修改資料之前一定要備份

帶比較操作符的查詢:>,<,>=,<=,<>(或!=)

示例1:查詢所有訂單金額大於200元的訂單

select * from orders where amt > 200;

示例2:查詢所有狀態不為2的訂單

select * from orders where status <> 2;

聯合查詢

1)什麼是聯合查詢:也叫連線查詢,將多個表中的

資料進行連線,得到乙個查詢結果集

2)什麼情況下使用聯合查詢:當從乙個表無法查詢

到所有想要的資料時,使用聯合查詢

前提:聯合的表之間一定要有邏輯上的關聯性

select a.order_id, a.amt,

b.cust_name, b.tel_no

from orders a, customer b

where a.cust_id = b.cust_id;

3)笛卡爾積(聯合查詢的理論依據)

4)連線查詢

索引什麼是索引:提高查詢效率的一種技術

原理:根據某一列(字段)進行分段、排序,通過避免

全表掃瞄提高查詢效率

索引分類

1)普通索引、唯一索引

普通索引:mysql基本型別,字段值可以重複

唯一索引:欄位的值不能重複(可以為空)

2)單列索引、組合索引

單列索引:乙個索引只包含乙個字段

組合索引:乙個索引包含多個字段

3)聚集索引、非聚集索引

聚集索引(cluster index): 索引的鍵值順序和資料

順序是一致的

非聚集索引:索引的鍵值順序和資料

順序不一致的

4)如何建立索引

5)刪除索引

7)實驗:索引效率測試(20分鐘)

第一步:利用現有的orders表,插入10萬筆資料

執行insert_orders_many.py檔案

第二步:在沒有索引的情況下查詢,條件如下:

order_id = 『2018010100000002』

order_id = 『2018010100055555』

order_id = 『2018010100099996』

第三步:給orders表新增索引

create index idx_order_id on orders(order_id)

再執行第二步的查詢,檢視執行時間

備註: 如果執行檔案報錯,檢查連線引數

核對欄位的名稱、順序、型別

pymysql匯入出錯,因為缺少了pymysql模組,更換

到教學機上執行

8)索引的優缺點

9)索引使用注意事項

10)索引失效的sql語句

索引失效:表中有索引,但是查詢時候沒有使用

什麼是儲存引擎:表的物理實現方式,由於物理

實現不一樣,決定不同儲存引擎型別的技術特性

不一樣,例如:儲存機制,索引機制,鎖定方式

檢視儲存引擎

1)檢視mysql支援的儲存引擎:show engines;

2)檢視某個表的儲存引擎

show create table 表名稱;

3)修改表的儲存引擎

alter table 表名稱 engine = 引擎名稱;

4)示例:建立表,並修改儲存引擎

create table t3 (

id int primary key,

name varchar(32)

) engine = innodb;

alter table t3 engine=myisam;

檢視:show create table t3;

常用儲存引擎特點

1)innodb(mysql5.5及以後的版本預設)

如果許可權不夠,使用sudo -i 進入root使用者,

進入上面的目錄檢視

cd /var/lib/mysql

ls orders.* (檢視orders表的儲存檔案)

1.三表的內連線+group by + 子查詢的綜合查詢

2.三正規化

第一正規化(確保每列保持原子性)

第二正規化(確保表中的每列都和主鍵相關)

第三正規化(確保每列都和主鍵列直接相關,而不是間接相關)

具體見:

3.4級隔離級別

具體見:

4.innodb和myisam引擎的區別,

上面有5.多對多表的反正規化優化

增加冗餘欄位來增加查詢的效率。

6.索引本質是二分法查詢。

研發面試準備

c 從編譯到執行要經歷以下過程 源 預處理 編譯 優化 彙編 鏈結 目標程式 要進行第一步,預處理過程,要幹的事情有哪些呢,要處理預編處理巨集定義,條件編譯指令,條件包含指令,特殊符號.對於巨集定義指令,會將巨集定義變數替換成對應的部分.對條件編譯指令,預處理過程按照程式定義過濾掉不必要的部分.對條...

人人測試開發面試準備

1 首先制定專案計畫,運用什麼模型,開發計畫,測試計畫,質量計畫,使用者期望。2 需求分析 需求分析報告 目標,硬體軟體執行環境,介面需求,系統特性,效能需求,其他需求。3 系統設計階段 系統總體架構,確定開發工具,用圖的方式描述出使用者和各子系統或模組的全域性檢視 概要設 高層架構設計,系統部署圖...

Python開發面試必備

1在cpython中,列表被實現為長度可變的陣列。2.在python2中,dict的底層是依靠雜湊表 hash table 進行實現的,使用開放位址法解決衝突.3手撕iou def compute iou rec1,rec2 computing area of each rectangles s r...