MySQL--進階

MySQL.png

數(shù)據(jù)庫設(shè)計

需求分析

  • 需求設(shè)計
  • 概要設(shè)計
  • 抽取實體:業(yè)務模型->實體模型(類)
  • 數(shù)據(jù)庫設(shè)計:業(yè)務模型/實體模型->數(shù)據(jù)模型()硬盤

詳細設(shè)計

類詳細,屬性,方法

三大范式
  • 設(shè)計原則:設(shè)計的表盡量遵守三大范式
  • 第一范式:表中每個字段必須是不可分割的獨立單元
  • 第二范式:在第一范式的基礎(chǔ)上,非主屬性完全函數(shù)依賴于任何一個候選碼
  • 第三范式:在第二范式的基礎(chǔ)上,非主屬性既不傳遞依賴于碼,也不函數(shù)依賴于碼

MySQL存儲過程

  • 執(zhí)行效率快,在服務端執(zhí)行

  • 移植性差

  • 創(chuàng)建存儲過程

DELIMITER $    聲明結(jié)束符
CREATE PROCEDURE proname()
BEGIN
SELECT * FROM table_name;
...
END $

執(zhí)行存儲過程

CALL proname();

參數(shù)
IN 輸入?yún)?shù),可以攜帶數(shù)據(jù)到存儲過程中
OUT 輸出參數(shù),可以從存儲過程中返回結(jié)果
INOUT 輸入輸出參數(shù),既有輸入功能,也有輸出功能
帶有存儲輸入?yún)?shù)的存儲過程

DELIMITER $
CREATE PROCEDURE proin(IN col  type)
BEGIN
SELECT * FROM table_name WHERE column=col;
END $

CALL proin(col);

帶有輸出參數(shù)的存儲過程

DELIMITER $
CREATE PROCEDURE proout(OUT col type)
BEGIN
SET col = 'Hello MySQL!';
END $

刪除存儲過程

DROP PROCEDURE proout;

MySQL變量

  • 全局變量(內(nèi)置變量)
SHOW varibales; 查看所有全局變量
select @@變量名;查看某個全局變量
set 變量名=新值; 修改全局變量
character_set_client:mysql服務器的接收數(shù)據(jù)的編碼
character_set_results:mysql服務器輸出數(shù)據(jù)的編碼
  • 會話變量:只存在于當前客戶端與數(shù)據(jù)庫服務端的依次連接中,如果連接斷開,那么會話變量全部丟失
    SET @var='value';

  • 局部變量:在存儲過程中使用的變量

1)定義一個會話變量name

2)使用name會話變量接受存儲過程的返回值

CALL proout(@name);
SELECT @name;

帶有輸入輸出參數(shù)的存儲過程

DELIMITER $
CREATE PROCEDURE proinout(INOUT var type)
BEGIN
SELECT var;
SET var = value;
END $
SET @var=value;
CALL proinout(@var)

帶有條件判斷的存儲過程

輸入整數(shù),返回對應星期天

DELIMITER $
CREATE PROCEDURE proif(IN num INT, OUT str VARCHAR(20))
BEGIN
IF num=1 THEN
SET str='星期一';
IF num=2 THEN
SET str='星期二';
IF num=3 THEN
SET str='星期三';
ELSE
SET str='輸入錯誤';
END IF;
END $
CALL proif(1,@str);
SELECT @str;

帶有循環(huán)功能的存儲過程

輸入數(shù)值,求從一到該數(shù)值的累加和

DELIMITER $
CREATE PROCEDURE prowhile(IN num INT, OUT result INT)
BEGIN
定義一個局部變量
DECLARE i INT DEFAULT 1;
DECLARE vsum INT DEFAULT 0;
WHILE i<=num DO
SET vsum=vsum+i;
SET i=i+1;
END WHILE;
SET result=vsum;
END $
CALL prowhile(122, @result)
SELECT @result;

MySQL觸發(fā)器

當操作某張表時,同時觸發(fā)一些動作

插入數(shù)據(jù)后,同時向日志表中插入

  • 創(chuàng)建觸發(fā)器(插入)
CREATE TRIGGER triname AFTER INSERT ON table_name FOR EACH ROW
INSERT INTO log_table_name(clomn,...) VALUES('INSERT');
  • 創(chuàng)建觸發(fā)器(修改)
CREATE TRIGGER triname AFTER UPDATE ON table_name FOR EACH ROW
INSERT INTO log_table_name(clomn,...) VALUES('update');
  • 創(chuàng)建觸發(fā)器(刪除)
CREATE TRIGGER triname AFTER DELETEON table_name FOR EACH ROW
INSERT INTO log_table_name(clomn,...) VALUES('delete');

MySQL權(quán)限

  • 修改密碼
UPDATE USER SET PASSWORD=PASSWORD('new_passwd') WHERE USERN='USErname';
  • 分配權(quán)限
GRANT SELECT ON DATABASE.table TO 'USEr'@'accounttype' IDENTIFIED BY 'password';
GRANT DELETE ON DATABASE.table TO 'USEr'@'accounttype' IDENTIFIED BY 'password';

MySQL備份和還原

  • 不需要登錄
MYSQLDUMP -u USErname -p DATABASE > path
MYSQL -u USErname -p DATABASE < path
  • 復制表
CREATE TABLE table_name LIKE tablename;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市艺普,隨后出現(xiàn)的幾起案子性锭,更是在濱河造成了極大的恐慌疆瑰,老刑警劉巖葛峻,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膨报,死亡現(xiàn)場離奇詭異此蜈,居然都是意外死亡勿她,警方通過查閱死者的電腦和手機袄秩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逢并,“玉大人之剧,你說我怎么就攤上這事】沉模” “怎么了背稼?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長玻蝌。 經(jīng)常有香客問我蟹肘,道長,這世上最難降的妖魔是什么俯树? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任帘腹,我火速辦了婚禮,結(jié)果婚禮上许饿,老公的妹妹穿的比我還像新娘阳欲。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布胸完。 她就那樣靜靜地躺著,像睡著了一般翘贮。 火紅的嫁衣襯著肌膚如雪赊窥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天狸页,我揣著相機與錄音锨能,去河邊找鬼。 笑死芍耘,一個胖子當著我的面吹牛址遇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播斋竞,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼倔约,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坝初?” 一聲冷哼從身側(cè)響起浸剩,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鳄袍,沒想到半個月后绢要,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡拗小,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年重罪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哀九。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡剿配,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出勾栗,到底是詐尸還是另有隱情惨篱,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布围俘,位于F島的核電站砸讳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏界牡。R本人自食惡果不足惜簿寂,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宿亡。 院中可真熱鬧常遂,春花似錦、人聲如沸挽荠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至漠另,卻和暖如春捏雌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背笆搓。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工性湿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人满败。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓肤频,卻偏偏與公主長得像,于是被迫代替她去往敵國和親算墨。 傳聞我的和親對象是個殘疾皇子宵荒,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355