1. 程式人生 > 其它 >資料庫-sql(redis)

資料庫-sql(redis)

掌握基本的sql語句的使用方法,以及常見的sql增刪改查、聚合函式以及各類條件查詢、子查詢的命令。同時需要了解Sql資料庫在諸如介面和效能測試中扮演的“角色”和意義

資料庫的基本概念:什麼是資料庫,資料庫都有哪些型別;

資料庫:資料庫是一個長期儲存在計算機內,有組織的,有共享的,統一化管理資料集合。是一個數據儲存倉庫,為了方便資料儲存和管理,它將資料按照特定的規律儲存在磁碟上。通過資料庫管理系統,可以有效的組織和管理儲存在資料中的資料

資料庫型別:關係型---mysqloraclesqlserver  非關係型—redismongoDB

資料庫語法:學習掌握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 、自連線/內連線---innerjoin、全連線---full join 

條件查詢:where(無聚合函式) having (group by)

複雜查詢:子查詢unionall

聯絡參考: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欄位hmsettypehkeyshget/hmget 欄位hvals 鍵、hgetallhdel 欄位

資料庫客戶端:常見的資料庫客戶端的使用方法,以及不同的客戶端的優劣和應用場景。

常見資料庫連結工具:navicatplsqlsqlyogdbeaver