這是加入數(shù)據(jù)蛙的第一周,完成了SQL進(jìn)階的課程。
SQL部分的內(nèi)容因?yàn)橹岸紝W(xué)習(xí)過(guò),所以就當(dāng)重新過(guò)一遍知識(shí)點(diǎn)。里面的內(nèi)容講的比較淺,很適合新手來(lái)學(xué)習(xí)。
剛剛把力扣上免費(fèi)的數(shù)據(jù)庫(kù)題刷了一遍,驚喜的發(fā)現(xiàn)之前每次都做不出來(lái)的困難題目,現(xiàn)在竟然能獨(dú)立做出來(lái)了,還是挺開(kāi)心的。這里來(lái)記錄一下SQL方面我比較容易忽視或者是之前不知道的點(diǎn)。
1、isdelete bit default 0 這個(gè)字段是用來(lái)標(biāo)記是否刪除,通常在數(shù)據(jù)庫(kù)中使用邏輯刪除就把這個(gè)字段設(shè)為0
2、foreign key(clsid) references classes(id) 在一對(duì)多的關(guān)系時(shí)候,用單的主鍵作為多的外鍵約束 這里的clsid為一,id為多。在網(wǎng)上查了下一對(duì)一關(guān)系建表和一對(duì)多關(guān)系建表是一樣的。
3、ifnull(birthday,'無(wú)') 如果為真 則返回?zé)o 如果為假 返回birthday?
4、group by + group_concat() ????group_concat(字段名)可以作為一個(gè)輸出字段來(lái)使用,表示分組之后,根據(jù)分組結(jié)果,使用group_concat()來(lái)放置每一組的某字段的值的集合? ? ? ? ? ? ? ? ? select userid,GROUP_CONCAT(price) from orderinfo GROUP BY userid
5、group by + with rollup 作用是:在最后新增一行,來(lái)記錄當(dāng)前列里所有記錄的總和select gender,count(*) from students group by gender with rollup;
6、事務(wù) 原子性(Atomicity) 一致性(Consistency) 隔離性(Isolation) 持久性(Durability)。表的引擎類型必須是innodb類型才可以使用事務(wù),這是mysql表的默認(rèn)引擎。開(kāi)始begin/start transaction; 提交commit;回滾 rollback;
7、索引 查看索引 show index from 表名; 創(chuàng)建索引 如果指定字段是字符串,需要指定長(zhǎng)度,建議長(zhǎng)度與定義字段時(shí)的長(zhǎng)度一致字段類型如果不是字符串,可以不填寫(xiě)長(zhǎng)度部分? ? ? ? create index 索引名稱 on 表名(字段名稱(長(zhǎng)度)) 刪除索引:drop index 索引名稱 on 表名;
8、開(kāi)啟運(yùn)行時(shí)間監(jiān)測(cè):set profiling=1; 查看執(zhí)行時(shí)間:show profiles;
9、導(dǎo)入大量數(shù)據(jù):load data local? infile '路徑' into table orderinfo? fields terminated by ',';? 路徑不要有中文,是左斜桿 mysql 8.0 登陸使用 mysql --local-infile -uroot -p 注意: 要有fields terminated by ','? 是因?yàn)閏sv 文件是以逗號(hào)為分割符的
10、查看全局變量 SHOW GLOBAL VARIABLES LIKE 'wait_timeout' 或者 SELECT @@wait_timeout????設(shè)置全局變量 SET GLOBAL local_infile=1;
11、部門(mén)最高薪水 分類取最高:where?E.Salary=(select?max(E1.Salary)?from?Employee?E1?where?E.DepartmentId=E1.DepartmentId)
12、分組取前N名:where (select count(distinct Salary) from Employee E1 where E1.Salary>=E.Salary and E1.DepartmentId=E.DepartmentId)<=N
下一周開(kāi)始Python學(xué)習(xí),在數(shù)據(jù)蛙學(xué)習(xí)感覺(jué)是放養(yǎng)狀態(tài),老師助教不會(huì)干涉太多,不會(huì)強(qiáng)制交作業(yè)之類的,全憑自己自覺(jué),加油咯。