推薦一個講解MySQL的好書-- MySQL是怎樣運行的 ,作者是小孩子4919,這是目前為止筆者讀過的MySQL方面最好的書.
10年積累的網(wǎng)站設計制作、做網(wǎng)站經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站策劃后付款的網(wǎng)站建設流程,更有梅里斯免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
筆者之前翻看過(MySQL技術內幕:InnoDB存儲引擎)和(高性能MySQL),前者對InnoDB的技術要點講解的很深.后者則是流水賬式的介紹MySQL的各個模塊. 彼時筆者的背景知識極為有限:
所以兩者都不適合.筆者需要的是這樣的一本書
很幸運,筆者發(fā)現(xiàn)了 MySQL是怎么運行的 ,它達成了上述需求的90%.如果你跟筆者有類似的問題,那么讀下這本書吧!
推薦大家重點閱讀下面章節(jié)
從此跟亂碼say goodbye
了解記錄在內存中的結構,B+樹的演變由來,以及為什么要使用索引--沒有索引就要掃全表呀!
緩沖池提高了性能,也帶來了問題.
做完的事情說什么也不能丟失.
第一次聽說臟寫和Read View.看完之后才知道事務隔離級別的實現(xiàn)差異.
祝大家有一個愉快的閱讀體驗~
1、按下win+R鍵打開“運行”,在輸入框里面輸入“cmd”,點擊確定:
2、在命令行里面輸入“net stop mysql”就是關閉mysql服務,輸入“net start mysql”,接著按回車鍵,開啟mysql服務:
3、重復第一步在mysql安裝目錄的bin文件下,打開一個新的命令行,?輸入“mysql -uroot -p”,之后輸入數(shù)據(jù)庫密碼就可以登錄數(shù)據(jù)庫了:
你的問題太泛泛了,“MYSQL的程序”你指的是什么?是MYSQL的 存儲過程??您最好是具體問題具體問,你這樣提問的話大家都不知道你想要什么!
mysql soure example.sql里的soure寫錯了應該是source!!!!example.sql是你實現(xiàn)先編輯好的文本內容,內容可以是創(chuàng)建一個數(shù)據(jù)庫,然后再數(shù)據(jù)庫下建立一個或多個數(shù)據(jù)表,再往表里插入一些記錄??!然后再寫個存儲過程完成一些簡單的功能,比如把A表里的內容插入到B表等等(可以加內容存在就修改不存在就插入等判斷)!!建立一個.SQL文件就是為了方便??!隨便舉個例子:在D盤根目錄下用記事本建立個example.sql文件,內容如下:
CREATE database name ;
use name;
CREATE TABLE a (
user_id int(11) DEFAULT NULL,
name char(11) DEFAULT NULL,
UNIQUE KEY USER_ID (user_id)
);
insert into a (user_id,name) values (1,'aaa'),(2,'bbb');
CREATE TABLE b (
user_id int(11) DEFAULT NULL,
name char(11) DEFAULT NULL,
UNIQUE KEY USER_ID (user_id)
);
insert into b (user_id,name) values (1,'xxx'),(3,'ccc');
DELIMITER $$
DROP PROCEDURE IF EXISTS qq$$
CREATE PROCEDURE qq()
begin
declare p_user_id varchar(6);
declare p_name varchar(6);
declare cursor_flag int default 0;
declare user_nrb cursor for select user_id,name from a;
declare continue handler for sqlstate '02000' set cursor_flag = 1;
open user_nrb;
repeat
fetch user_nrb into p_user_id,p_name;
if not cursor_flag then
if not exists (select * from b where user_id=p_user_id) then
insert into b(user_id,name)values(p_user_id,p_name);
else
update b set name=p_name where user_id=p_user_id;
end if;
end if;
until cursor_flag end repeat;
close user_nrb;
end$$
DELIMITER ;
順序是建立名為name的數(shù)據(jù)庫,其下建立倆表A和B,為A表插入用戶1和2,為B表插入用戶1,3??!再建立名為QQ的存儲過程,功能是把a表的用戶導入到B表,如果A的用戶號再B里沒有直接插入,如果A里的用戶號已經(jīng)在B表里了那就改變B表里相應用戶的名字!!大概是這么個過程!!在MYSQL自帶的客戶端導入剛才建立的example.sql文件,順序是:開始——程序——MYSQL——MYSQL SERVER5.1——MYSQL COMMAND LINE CLIENT 窗口里輸入ROOT用戶密碼在光標處輸入source d:\example.sql!!最后再執(zhí)行存儲過程,敲call qq;回車?。?!
驗證方法是敲select * from b;回車??!可以發(fā)現(xiàn)B表由本來插入的2條記錄變成3條記錄,而且用戶1的名字也從xxx變成aaa了?。。?!
希望對你有幫助!另外最重要的是MYSQL有一些很好的圖形界面客戶端工具,不用這個DOS界面的東西,下載個sqlyog什么的軟件裝上,基本一啟動就會用了的東西!在SQLYOG的界面直接把example.sql里的內容復制過來粘貼后按F5鍵運行即可?。。?/p>
Mysql分客戶端和服務端。成功安裝后,在服務器端,保證mysqld服務成功啟動后,便可以通過客戶端工具訪問mysql了。
在命令行可通過以下命令登陸mysql: mysql -uroot -ppassword (-u指定用戶名,-p指定密碼)
另外也可以通過基于瀏覽器的工具訪問mysql,如phpmyadmin。