資料庫-sql(redis)
掌握基本的sql語句的使用方法,以及常見的sql增刪改查、聚合函式以及各類條件查詢、子查詢的命令。同時需要了解Sql資料庫在諸如介面和效能測試中扮演的“角色”和意義
①資料庫的基本概念:什麼是資料庫,資料庫都有哪些型別;
資料庫:資料庫是一個長期儲存在計算機內,有組織的,有共享的,統一化管理資料集合。是一個數據儲存倉庫,為了方便資料儲存和管理,它將資料按照特定的規律儲存在磁碟上。通過資料庫管理系統,可以有效的組織和管理儲存在資料中的資料
資料庫型別:關係型---mysql、oracle、sqlserver 非關係型—redis、mongoDB
②資料庫語法:學習掌握Sql語句的基本語法;where用於篩選原有欄位,having用於篩選新建欄位
去重--distinct(只能在select中使用) 計數--count() 平均值--avg() 浮點數平均值--round()
字串的擷取:substring(字串,起始位置,擷取字元數)
字串的拼接:concat(字串1,字串2,字串3,...)、字母大寫:upper(字串)
sql查詢語句的順序:
Select (distinct)xx,xx,xx(聚合函式) from xx (left/rigth/full) join xx on 多表的連線條件 (left/rigth/full) join xx on 多表的連線條件 where 無聚合函式的條件 group by xx , xx having 聚合函式的條件 order by xx (desc) limit x,x
eg: 每個學校每種性別的使用者數、30天內平均活躍天數和平均發帖數量
每個學校每種性別:按學校和性別分組:group by gender, university
使用者數:count(device_id) 30天內平均活躍天數:avg(active_days_within_30)
Select gender, university, count(device_id) as user_num, avg(active_days_within_30) as avg_active_days, avg(question_cnt) as avg_question_cnt from user_profile group by gender, university having avg_active_days > 5
Sql基本語法:
表:新增列 alter table mytable add age int (first/after)
刪除列 alter table mytable drop column age
修改列 alter table mytable change age age1 int
行資料:刪除 delete from mytable where id =1
新增 insert into mytable values (值1,值2 ……)
列資料:新增 insert into mytable (列1,列2...) values (值1,值2...)
修改 update mytable set 列1=xx ,列2=xx where id =1
主鍵:刪除 alter table mytable drop primary key
新增 alter table mytable add constraint 主鍵1 primary key (列1)
③資料庫查詢:學習和掌握多種資料庫的查詢方法,比如複雜查詢、多表查詢 、條件查詢等等;
多表查詢:左連線--left join 、右連線---right 、自連線/內連線---(inner)join、全連線---full join
條件查詢:where(無聚合函式)、 having (group by)
複雜查詢:子查詢、union(all)
聯絡參考:https://www.cnblogs.com/Diyo/p/11424844.html
④資料庫索引:瞭解和掌握資料庫索引以及資料庫事務相關的概念;
索引:primary key 主鍵索引、unique 唯一索引、index 普通索引
創/查索引:CREATE UNIQUE INDEX id_index on table1 (id) / SHOW INDEXES FROM table1
新增索引:alter table biao add index id_index (id)
刪除索引:DROP INDEX id_index on table1
事務:開始事務—start transaction
設定儲存點---savepoint a
事務回滾—rollback (to a)
事務提交—commit
⑤redis:快取資料庫(非關係型)、區別於mysql等關係型資料庫
1、 Mysql將持久化資料儲存在磁碟中,而請求絕大部分都是讀取(I/O),讀取速度慢、Redis將資料儲存在記憶體中,讀取速度快,經常用於資料和頁面快取
2、 Redis快取資料一多,就需要清除不用的資料,就有了定時掃描清理機制,而定時清理花費時間且影響資料儲存,就有了隨機掃描,但隨機掃描會有未掃描到的資料,就有了惰性刪除(刪除查詢到過期資料),惰性刪除還會遺留部分資料,就有了8種記憶體淘汰策略。
set、setex/expire/ttl、mset/mget、append、get、del、keys、exists、type
hset鍵欄位值、hmset、type、hkeys、hget/hmget 鍵欄位、hvals 鍵、hgetall、hdel 鍵欄位
⑥資料庫客戶端:常見的資料庫客戶端的使用方法,以及不同的客戶端的優劣和應用場景。
常見資料庫連結工具:navicat、plsql、sqlyog、dbeaver