mysql 復習與再學習2018-12-23

1. MYSQL安裝

安裝教程沒有data目錄和my-default.ini和my.ini文件以及服務(wù)無法啟動的解決辦法以及修改初始密碼的方法

2. Mysql 基礎(chǔ)語法以及常用的命令語句

需要注意:SQL 對大小寫不敏感:SELECT 與 select 是相同的

(1)提取推励、更新與刪除

SELECT - 從數(shù)據(jù)庫中提取數(shù)據(jù)??????? ###:相當于tag,選取所需“數(shù)據(jù)” ///? +where? 限制條件

UPDATE - 更新數(shù)據(jù)庫中的數(shù)據(jù)??? ###更新數(shù)據(jù)需要進行限定where阿宅,不然就是全局更改

DELETE - 從數(shù)據(jù)庫中刪除數(shù)據(jù) ###? 限制性類同于update;不刪除表的情況下澄成,刪除表中所有的行:

DELETE FROMtable_name; 或 DELETE *FROMtable_name;

延伸:? SQL關(guān)于刪除的三個語句:DROP鲜棠、TRUNCATE暖哨、DELETE的區(qū)別赌朋。

a. DROP:

DROP test;?????? 刪除表test,并釋放空間篇裁,將test刪除的一干二凈沛慢。

b. TRUNCATE:

TRUNCATE test;????? 刪除表test里的內(nèi)容,并釋放空間达布,但不刪除表的定義团甲,表的結(jié)構(gòu)還在

c. DELETE:

? 1黍聂、刪除指定數(shù)據(jù)

刪除表test中年齡等于30的且國家為US的數(shù)據(jù)

DELETE FROM test WHERE age=30 AND country='US';

? 2躺苦、刪除整個表

僅刪除表test內(nèi)的所有內(nèi)容,保留表的定義产还,不釋放空間匹厘。

DELETE FROM test 或者 DELETE FROM test;DELETE * FROM test 或者 DELETE * FROM test;

(2). 常用的插入查詢

INSERT INTO - 向數(shù)據(jù)庫中插入新數(shù)據(jù)?

? ? ? ???INSERT INTO Websites?(name, url, alexa, country)

? ? ? ? ? VALUES?('百度','https://www.baidu.com/','4','CN');

CREATE DATABASE - 創(chuàng)建新數(shù)據(jù)庫

ALTER?DATABASE - 修改數(shù)據(jù)庫

CREATE TABLE - 創(chuàng)建新表

ALTER TABLE - 變更(改變)數(shù)據(jù)庫表

DROP?TABLE - 刪除表

CREATE INDEX - 創(chuàng)建索引(搜索鍵)

DROP INDEX - 刪除索引

***ORDER BY?- 關(guān)鍵字用于對結(jié)果集按照一個列或者多個進行排序。

如果需要按照?降序?對記錄進行排序脐区,您可以使用?DESC 關(guān)鍵字

????????????eg?: order by A,B 這個時候都是默認按升序排列

??????????? ?????? order by A desc,B 這個時候 A 降序愈诚,B 升序排列

???????? ????????? order by A ,B desc 這個時候 A 升序,B 降序排列

(3). 相關(guān)練習

(其中部分相近的會寫在一塊,順序可能會有些亂扰路,需要后續(xù)的整理和繼續(xù)學習實踐)

1.查詢學過編號為"01"并且也學過編號為"02"的課程的同學的信息

select a.* from

? ? student a,score b,score c

? ? where a.s_id = b.s_id? and a.s_id = c.s_id and b.c_id='01' and c.c_id='02';

*** 兩種完全不同的思路? ?

2. 查詢學過編號為"01"但是沒有學過編號為"02"的課程的同學的信息

select a.* from

? ? student a

? ? where a.s_id in (select s_id from score where c_id='01' ) and a.s_id not in(select s_id from score where c_id='02')?

3. 自己想想這個功能是什么

SELECT s.* FROM

? ? student s WHERE s.s_id IN(

? ? ? ? SELECT s_id FROM score WHERE s_id NOT IN(

? ? ? ? ? ? SELECT a.s_id FROM score a

? ? ? ? ? ? ? ? JOIN score b ON a.s_id = b.s_id AND b.c_id='02'

? ? ? ? ? ? ? ? JOIN score c ON a.s_id = c.s_id AND c.c_id='03'

? ? ? ? ? ? WHERE a.c_id='01'))



4. 查詢和"01"號的同學學習的課程完全相同的其他同學的信息;

? 最后步使用統(tǒng)計量count? ? ? ? ? ?

SELECT a.* FROM student a WHERE a.s_id? IN (

? ? SELECT DISTINCT s_id FROM score WHERE s_id!="01" AND c_id IN (

? ? SELECT c_id FROM score WHERE s_id="01") GROUP BY s_id

? ? HAVING COUNT(1)=(SELECT COUNT(1) FROM score WHERE s_id="01"))

5. 核心在于having 和where的位置

查詢兩門及其以上不及格課程的同學的學號,姓名及其平均成績

SELECT a.`s_id`, a.`s_name`, ROUND(AVG(b.s_score)) AS avg_score FROM

? ? student a

? ? LEFT JOIN score b ON a.`s_id`=b.s_id

? ? WHERE a.`s_id` IN (

? ? SELECT s_id FROM score WHERE s_score<60 GROUP BY s_id HAVING COUNT(1)>=2)

? ? GROUP BY a.`s_id`, a.`s_name`


6. 此處的知識點在于選取時 可將(語句)作為屬性

按平均成績從高到低顯示所有學生的所有課程的成績以及平均成績

SELECT a.s_id,(SELECT s_score FROM score WHERE s_id=a.s_id AND c_id='01') AS 語文,

? ? ? ? ? ? ? ? (SELECT s_score FROM score WHERE s_id=a.s_id AND c_id='02') AS 數(shù)學,

? ? ? ? ? ? ? ? (SELECT s_score FROM score WHERE s_id=a.s_id AND c_id='03') AS 英語,

? ? ? ? ? ? ? ? ROUND(AVG(s_score),2) AS 平均分

? ? ? ? ? ? FROM score a?

? ? ? ? ? ? GROUP BY a.s_id ORDER BY 平均分 DESC;



7.(19)排序倔叼,需要后續(xù)進行研究

-- 24汗唱、查詢學生平均成績及其名次

? ? ? ? SELECT a.s_id,

? ? ? ? ? ? ? ? @i:=@i+1 AS '不保留空缺排名',

? ? ? ? ? ? ? ? @k:=(CASE WHEN @avg_score=a.avg_s THEN @k ELSE @i END) AS '保留空缺排名',

? ? ? ? ? ? ? ? @avg_score:=avg_s AS '平均分'

? ? ? ? FROM (SELECT s_id,ROUND(AVG(s_score),2) AS avg_s FROM score GROUP BY s_id)a,(SELECT @avg_score:=0,@i:=0,@k:=0)b;

-- 25、查詢各科成績前三名的記錄

? ? ? ? ? ? -- 1.選出b表比a表成績大的所有組

? ? ? ? ? ? -- 2.選出比當 前id成績大的 小于三個的

? ? ? ? SELECT a.s_id,a.c_id,a.s_score FROM score a

? ? ? ? ? ? LEFT JOIN score b ON a.c_id = b.c_id AND a.s_score<b.s_score

? ? ? ? ? ? GROUP BY a.s_id,a.c_id,a.s_score HAVING COUNT(b.s_id)<3

? ? ? ? ? ? ORDER BY a.c_id,a.s_score DESC

8. 一個是union 的連續(xù)使用丈攒;還發(fā)現(xiàn)另一個問題(嘗試找出):

SELECT a.*, b.rank,b.s_score, b.c_id FROM (


? ? SELECT a.s_id,a.s_score,a.c_id,@k:=@k+1 AS rank FROM score a,(SELECT @k:=0)s WHERE a.c_id='03'

? ? )b

? ? LEFT JOIN student a ON b.`s_id`=a.`s_id`

? ? WHERE rank BETWEEN 2 AND 3

查詢所有課程的成績第2名到第3名的學生信息及該課程成績

? ? ? ? ? ? SELECT d.*,c.排名,c.s_score,c.c_id FROM (

? ? ? ? ? ? ? ? SELECT a.s_id,a.s_score,a.c_id,@i:=@i+1 AS 排名 FROM score a,(SELECT @i:=0)s WHERE a.c_id='01'? ?

? ? ? ? ? ? )c

? ? ? ? ? ? LEFT JOIN student d ON c.s_id=d.s_id

? ? ? ? ? ? WHERE 排名 BETWEEN 2 AND 3

? ? ? ? ? ? UNION

? ? ? ? ? ? SELECT d.*,c.排名,c.s_score,c.c_id FROM (

? ? ? ? ? ? ? ? SELECT a.s_id,a.s_score,a.c_id,@j:=@j+1 AS 排名 FROM score a,(SELECT @j:=0)s WHERE a.c_id='02'? ?

? ? ? ? ? ? )c

? ? ? ? ? ? LEFT JOIN student d ON c.s_id=d.s_id

? ? ? ? ? ? WHERE 排名 BETWEEN 2 AND 3

? ? ? ? ? ? UNION

? ? ? ? ? ? SELECT d.*,c.排名,c.s_score,c.c_id FROM (

? ? ? ? ? ? ? ? SELECT a.s_id,a.s_score,a.c_id,@k:=@k+1 AS 排名 FROM score a,(SELECT @k:=0)s WHERE a.c_id='03'? ?

? ? ? ? ? ? )c

? ? ? ? ? ? LEFT JOIN student d ON c.s_id=d.s_id

? ? ? ? ? ? WHERE 排名 BETWEEN 2 AND 3;

9. 多條件時的執(zhí)行順序

查詢每門課程的平均成績哩罪,結(jié)果按平均成績降序排列,平均成績相同時巡验,按課程編號升序排列

? ? SELECT c_id,ROUND(AVG(s_score),2) AS avg_score FROM score GROUP BY c_id ORDER BY avg_score DESC,c_id ASC? ? ? ? ?



10.排序提取

查詢每門功成績最好的前兩名

? ? ? ? -- 牛逼的寫法

? ? SELECT a.s_id,a.c_id,a.s_score FROM score a

? ? ? ? WHERE (SELECT COUNT(1) FROM score b WHERE b.c_id=a.c_id AND b.s_score>=a.s_score)<=2 ORDER BY a.c_id?


11.日期

查詢各學生的年齡

? ? -- 按照出生日期來算际插,當前月日 < 出生年月的月日則,年齡減一

? ? SELECT s_birth,(DATE_FORMAT(NOW(),'%Y')-DATE_FORMAT(s_birth,'%Y') -

? ? ? ? ? ? ? ? (CASE WHEN DATE_FORMAT(NOW(),'%m%d')>DATE_FORMAT(s_birth,'%m%d') THEN 0 ELSE 1 END)) AS age

? ? ? ? FROM student;

-- 47显设、查詢本周過生日的學生

? ? SELECT * FROM student WHERE WEEK(DATE_FORMAT(NOW(),'%Y%m%d'))=WEEK(s_birth)

? ? SELECT * FROM student WHERE YEARWEEK(s_birth)=YEARWEEK(DATE_FORMAT(NOW(),'%Y%m%d'))

? ? SELECT WEEK(DATE_FORMAT(NOW(),'%Y%m%d'))

-- 48框弛、查詢下周過生日的學生

? ? SELECT * FROM student WHERE WEEK(DATE_FORMAT(NOW(),'%Y%m%d'))+1 =WEEK(s_birth)

-- 49、查詢本月過生日的學生

? ? SELECT * FROM student WHERE MONTH(DATE_FORMAT(NOW(),'%Y%m%d')) =MONTH(s_birth)

-- 50捕捂、查詢下月過生日的學生

? ? SELECT * FROM student WHERE MONTH(DATE_FORMAT(NOW(),'%Y%m%d'))+1 =MONTH(s_birth)?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瑟枫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子指攒,更是在濱河造成了極大的恐慌慷妙,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件允悦,死亡現(xiàn)場離奇詭異膝擂,居然都是意外死亡,警方通過查閱死者的電腦和手機隙弛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門架馋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人驶鹉,你說我怎么就攤上這事绩蜻。” “怎么了室埋?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵办绝,是天一觀的道長。 經(jīng)常有香客問我姚淆,道長孕蝉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任腌逢,我火速辦了婚禮降淮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己佳鳖,他們只是感情好霍殴,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著系吩,像睡著了一般来庭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上穿挨,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天月弛,我揣著相機與錄音,去河邊找鬼科盛。 笑死帽衙,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的贞绵。 我是一名探鬼主播厉萝,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼但壮!你這毒婦竟也來了冀泻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤蜡饵,失蹤者是張志新(化名)和其女友劉穎弹渔,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溯祸,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡肢专,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了焦辅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片博杖。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖筷登,靈堂內(nèi)的尸體忽然破棺而出剃根,到底是詐尸還是另有隱情,我是刑警寧澤前方,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布狈醉,位于F島的核電站,受9級特大地震影響惠险,放射性物質(zhì)發(fā)生泄漏苗傅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一班巩、第九天 我趴在偏房一處隱蔽的房頂上張望渣慕。 院中可真熱鬧,春花似錦、人聲如沸逊桦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽强经。三九已至帆啃,卻和暖如春金赦,著一層夾襖步出監(jiān)牢的瞬間奸汇,已是汗流浹背合陵。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工猴伶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吐根,地道東北人吆录。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓矮燎,卻偏偏與公主長得像鸡号,于是被迫代替她去往敵國和親转砖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Student(S#,Sname,Sage,Ssex) 學生表 Course(C#,Cname,T#) 課程表 S...
    忘了呼吸的那只貓閱讀 2,864評論 0 8
  • 50個常用的sql語句Student(S#,Sname,Sage,Ssex) 學生表Course(C#,Cname...
    哈哈海閱讀 1,231評論 0 7
  • 花了兩個半小時看完了印度電影摔《跤吧爸爸》鲸伴,真的只能用震撼來形容府蔗。里面的父親原本是一位職業(yè)摔跤手,一心想為國爭光汞窗,...
    極樂之子閱讀 401評論 0 1
  • 蠟燭搖曳的火光將我們一行人的影子映在古老的土墻上姓赤,就像一個個可怕的怪獸。剛走進隧道仲吏,身后塌下的大洞便“轟”...
    Susan羽閱讀 193評論 0 2
  • 01 已經(jīng)發(fā)誓說今年不再買書了裹唆,結(jié)果昨天給孩子買書誓斥,又忍不住挑了幾本自己要的。 今天早上一起來许帐,看到連岳辦的讀書號...
    迅圖閱讀 5,673評論 183 242