數(shù)據(jù)庫第五天

//局部變量

create procedure getNum()

begin

declare number int;

set number = 10;

select number;

end

(1)查詢?nèi)我鈏d的圖書信息

注意:參數(shù)的名稱不能和表中字段名相同

select * from books where id = ?;

create procedure getBooksByID(in bid int)

begin

select * from books where id = bid;

end

(2)查詢?nèi)我鈭D書類型的圖書信息

注意:varchar,char類型需要定義長度

select * from books where type_id = (select type_id from book_type where type_name = '黑客');

方法一

create procedure getBooksByName(in tname varchar(50))

begin

select * from books where type_id = (select type_id from book_type where type_name = tname);

end

方法二

create procedure getBooksByName2(in tname varchar(50))

begin

declare tid int;

set tid = (select type_id from book_type where type_name = tname);

select * from books where type_id = tid;

end

insert into comment (aid,com_content,com_time)

values(13,'回復內(nèi)容13',null);

//獲取最近一次存入數(shù)據(jù)表的ID

注意:必須保證id是自動增長;不能指定下一個遞增的ID值

last_insert_id();

(3)在評論表insert一條評論之后,實現(xiàn)article表中的評論數(shù)量+1

create procedure getComs(a int,b text,c datetime)

begin

declare pid int;//評論表id

declare wid int;//文章表id

//向評論表存入一條數(shù)據(jù)

insert into comment(aid,com_content,com_time)

values(a,b,c);

//獲取剛存入的評論id

set pid =(select last_insert_id());

//根據(jù)評論id獲取到文章id

set wid = (select aid from comment where cid = pid);

//根據(jù)上一步獲取到的文章id,更新文章表的評論數(shù)量

update article set coms = coms + 1 where aid = wid;

end

call getComs(10,'太棒了','2017-1-1');

//在學生表存入一條數(shù)據(jù)之后壁拉,在成績表中存入一條此學生的語文成績

//用存儲過程向一個表中存入100條數(shù)據(jù)

create procedure pro_add100()

begin

declare i int;

declare max int;

set i = 0;

set max = 100;

while i <= 100 do

insert into course(co_name) values('course');

set i = i+1;

end while;

end

//刪除存儲過程

drop procedure 存儲過程的名字;

//總結(jié)

(1)存儲過程包含單條或者多條sql沐兵,都需要寫在begin end之間

(2)在存儲過程中的每條sql語句結(jié)束時都要加';';

(3)存儲過程中的參數(shù)沒有默認值,在調(diào)用時榜跌,不能省略這個參數(shù)竖幔,可以用null代替

//事務(wù)

定義:MySQL 事務(wù)主要用于處理操作量大漓藕,復雜度高的數(shù)據(jù)纤控。

一句話概括:可以回滾婉徘,可以提交藏研,程序沒有問題敬矩,則提交,有問題就回滾

一般來說蠢挡,事務(wù)是必須滿足4個條件(ACID): Atomicity(原子性)弧岳、Consistency(穩(wěn)定性)、Isolation(隔離性)业踏、Durability(可靠性)

1禽炬、事務(wù)的原子性:一組事務(wù),要么成功勤家;要么撤回腹尖。

2、穩(wěn)定性 : 有非法數(shù)據(jù)(外鍵約束之類)伐脖,事務(wù)撤回热幔。

3、隔離性:事務(wù)獨立運行讼庇。一個事務(wù)處理后的結(jié)果绎巨,影響了其他事務(wù),那么其他事務(wù)會撤回蠕啄。事務(wù)的100%隔離场勤,需要犧牲速度。

4歼跟、可靠性:軟和媳、硬件崩潰后,InnoDB數(shù)據(jù)表驅(qū)動會利用日志文件重構(gòu)修改哈街×敉可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit選項 決定什么時候吧事務(wù)保存到日志里骚秦。

事務(wù)(transaction)的語法:

(1)開啟事務(wù):begin; //start transaction;

(2)進行相關(guān)的操作

(3)提交事務(wù):commit;

(4)撤銷事務(wù)(回滾):rollback;

使用事務(wù)的注意事項:

(1)表必須是innodb存儲引擎

(2)常用于金額撼港、庫房等行業(yè)坪它,一般行業(yè)不使用

mysql中的存儲引擎:

mysql數(shù)據(jù)類型很多,表很多帝牡,在處理數(shù)據(jù)上存在差異

針對不同的處理要求往毡,mysql提供多種不同的存儲引擎

(1)innodb

a)事務(wù)型存儲引擎,支持事務(wù),有崩潰恢復能力

b)表只有一個.frm文件,索引和數(shù)據(jù)是緊密相連的靶溜,降低mysql運行效率

c)mysql版本是5.5及之后的开瞭,默認存儲引擎是innodb

(2)myisam

a)表分成三個文件存儲(.frm,.myd,.myi),索引和數(shù)據(jù)是分開的,提高mysql運行效率

b)不支持事務(wù)

c)mysql版本是5.5之前罩息,默認存儲引擎是myisam

mysql根據(jù)功能不同嗤详,劃分了一些類型:

DCL:mysql用戶的管理、權(quán)限分配瓷炮、數(shù)據(jù)庫的備份葱色、還原

(1)mysql用戶管理

a)root是mysql默認的用戶(超級管理員),才有權(quán)限去創(chuàng)建其他mysql用戶

b)mysql用戶信息是存儲在mysql庫中的user表中

//如何創(chuàng)建mysql用戶

create user 用戶名@服務(wù)器名稱 identified by '密碼';

create user xiaoming@localhost identified by '123';

//修改密碼(root或者當前登錄用戶都可以修改密碼)

set password for 用戶名@服務(wù)器名稱 = password('新密碼');

set password for xiaoming@localhost = password('12345');

//刪除用戶(在root賬戶下)

drop user 用戶名@服務(wù)器名稱

drop user xiaoming@localhost;

//用戶權(quán)限(在root賬戶下)

//賦予權(quán)限

grant 權(quán)限列表 on 對象列表 to 用戶列表;

權(quán)限列表:

(1)All:所有權(quán)限(增刪改查)

(2)Create 創(chuàng)建權(quán)限

(3)drop 刪除權(quán)限

(4)alter 修改權(quán)限

(5)select 查詢權(quán)限

(6)insert 數(shù)據(jù)的添加權(quán)限

(7)update

(8)delete

對象列表(數(shù)據(jù)庫或數(shù)據(jù)表)

*.*? //第一個*是數(shù)據(jù)庫,第二個*是數(shù)據(jù)表

數(shù)據(jù)庫名稱.*? //數(shù)據(jù)庫中的所有表

數(shù)據(jù)庫名稱.表名 //一個數(shù)據(jù)中的某個表

grant All on *.* to xiaoming@localhost;

grant All on demo.* to xiaoming@localhost;

收回權(quán)限(在root賬戶下)

revoke 權(quán)限列表 on 對象列表 from 用戶列表;

revoke All on *.* from xiaoming@localhost;

revoke All on demo.* from xiaoming@localhost;

(2)mysql數(shù)據(jù)的備份與還原(導出導入),不需要登錄數(shù)據(jù)庫

返回上一級:cd ..或cd ../

進入下一級: cd 文件夾名字

在mysql/bin目錄下:

備份:

mysqldump -uroot -p 數(shù)據(jù)庫名稱>路徑(存放sql文件)

mysqldump -uroot -p demo>c:/demo.sql

還原(不用dump):

mysql -uroot -p demo4

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末娘香,一起剝皮案震驚了整個濱河市苍狰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烘绽,老刑警劉巖淋昭,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異安接,居然都是意外死亡翔忽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門盏檐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來歇式,“玉大人,你說我怎么就攤上這事胡野”岽裕” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵给涕,是天一觀的道長。 經(jīng)常有香客問我额获,道長够庙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任抄邀,我火速辦了婚禮耘眨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘境肾。我一直安慰自己剔难,他們只是感情好胆屿,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著偶宫,像睡著了一般非迹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纯趋,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天憎兽,我揣著相機與錄音,去河邊找鬼吵冒。 笑死纯命,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的痹栖。 我是一名探鬼主播亿汞,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼揪阿!你這毒婦竟也來了疗我?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤图甜,失蹤者是張志新(化名)和其女友劉穎碍粥,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體黑毅,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡嚼摩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了矿瘦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枕面。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖缚去,靈堂內(nèi)的尸體忽然破棺而出潮秘,到底是詐尸還是另有隱情,我是刑警寧澤易结,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布枕荞,位于F島的核電站,受9級特大地震影響搞动,放射性物質(zhì)發(fā)生泄漏躏精。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一鹦肿、第九天 我趴在偏房一處隱蔽的房頂上張望矗烛。 院中可真熱鬧,春花似錦箩溃、人聲如沸瞭吃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽歪架。三九已至股冗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間牡拇,已是汗流浹背魁瞪。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惠呼,地道東北人导俘。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像剔蹋,于是被迫代替她去往敵國和親旅薄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

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

  • 一泣崩、JDBC中事務(wù)處理的步驟: 1少梁、要取消掉JDBC的自動提交:void setAutoCommit(boolea...
    淺水姑娘檸檬淚_d411閱讀 189評論 0 0
  • 什么是SQL數(shù)據(jù)庫: SQL是Structured Query Language(結(jié)構(gòu)化查詢語言)的縮寫。SQL是...
    西貝巴巴閱讀 1,817評論 0 10
  • 什么是數(shù)據(jù)庫矫付? 數(shù)據(jù)庫是存儲數(shù)據(jù)的集合的單獨的應(yīng)用程序凯沪。每個數(shù)據(jù)庫具有一個或多個不同的API,用于創(chuàng)建买优,訪問妨马,管理...
    chen_000閱讀 4,036評論 0 19
  • MySQL 數(shù)據(jù)庫常用命令 1、MySQL常用命令 create database name; 創(chuàng)建數(shù)據(jù)庫 use...
    55lover閱讀 4,791評論 1 57
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法杀赢,類相關(guān)的語法烘跺,內(nèi)部類的語法,繼承相關(guān)的語法脂崔,異常的語法滤淳,線程的語...
    子非魚_t_閱讀 31,645評論 18 399