一、mysql概述
1.概述
mysql是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)
2.特點(diǎn)
MySQL 是開源的,目前隸屬于 Oracle 旗下產(chǎn)品。
MySQL 支持大型的數(shù)據(jù)庫??梢蕴幚頁碛猩锨f條記錄的大型數(shù)據(jù)庫。
MySQL 使用標(biāo)準(zhǔn)的 SQL 數(shù)據(jù)語言形式。
MySQL 可以運(yùn)行于多個系統(tǒng)上,并且支持多種語言。這些編程語言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
MySQL 對PHP有很好的支持,PHP 是目前最流行的 Web 開發(fā)語言。
MySQL 支持大型數(shù)據(jù)庫,支持 5000 萬條記錄的數(shù)據(jù)倉庫,32 位系統(tǒng)表文件最大可支持 4GB,64 位系統(tǒng)支持最大的表文件為8TB。
MySQL 是可以定制的,采用了 GPL 協(xié)議,你可以修改源碼來開發(fā)自己的 MySQL 系統(tǒng)。
二、安裝
傻瓜式安裝
三、配置
安裝完成出現(xiàn)如下界面進(jìn)入mysql配置向?qū)?/p>

選擇配置方式,“Detailed Configuration(手動精確配置)”、“Standard Configuration(標(biāo)準(zhǔn)配置)”,我們選擇“Detailed Configuration”,方便熟悉配置過程。

選擇服務(wù)器類型,“Developer Machine(開發(fā)測試類,mysql占用很少資源)”、“Server Machine(服務(wù)器類型,mysql占用較多資源)”、“Dedicated MySQL Server Machine(專門的數(shù)據(jù)庫服務(wù)器,mysql占用所有可用資源)”

選擇mysql數(shù)據(jù)庫的大致用途,“Multifunctional Database(通用多功能型,好)”、“Transactional Database Only(服務(wù)器類型,專注于事務(wù)處理,一般)”、“Non-Transactional Database Only(非事務(wù)處理型,較簡單,主要做一些監(jiān)控、記數(shù)用,對MyISAM數(shù)據(jù)類型的支持僅限于non-transactional),按“Next”繼續(xù)。

數(shù)據(jù)庫存儲位置,下一步:

選擇網(wǎng)站并發(fā)連接數(shù),同時(shí)連接的數(shù)目,“Decision Support(DSS)/OLAP(20個左右)”、“Online Transaction Processing(OLTP)(500個左右)”、“Manual Setting(手動設(shè)置,自己輸一個數(shù))”。

是否啟用TCP/IP連接,設(shè)定端口,如果不啟用,就只能在自己的機(jī)器上訪問mysql數(shù)據(jù)庫了,在這個頁面上,您還可以選擇“啟用標(biāo)準(zhǔn)模式”(Enable Strict Mode),這樣MySQL就不會允許細(xì)小的語法錯誤。如果是新手,建議您取消標(biāo)準(zhǔn)模式以減少麻煩。但熟悉MySQL以后,盡量使用標(biāo)準(zhǔn)模式,因?yàn)樗梢越档陀泻?shù)據(jù)進(jìn)入數(shù)據(jù)庫的可能性。按“Next”繼續(xù)

選擇字符集,就是對mysql默認(rèn)數(shù)據(jù)庫語言編碼進(jìn)行設(shè)置(重要),一般選UTF-8,按 “Next”繼續(xù):

將mysql的bin目錄加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目錄名,比如連接,“mysql.exe -uusername -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便),我這里全部打上了勾,Service Name不變。按“Next”繼續(xù)。

詢問是否要修改默認(rèn)root用戶(超級管理)的密碼?!癊nable root access from remote machines(是否允許root用戶在其它的機(jī)器上登陸,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一個匿名用戶,匿名用戶可以連接數(shù)據(jù)庫,不能操作數(shù)據(jù),包括查詢)”,一般就不用勾了,設(shè)置完畢,按“Next”繼續(xù)。

執(zhí)行


登錄、退出數(shù)據(jù)庫
1.登錄
mysql -h localhost -p 3306 -u root?
2.退出
exit或者ctrl+c
常見命令
1.數(shù)據(jù)庫顯示
show databases;
2.數(shù)據(jù)庫切換
use 數(shù)據(jù)庫
3.查看當(dāng)前庫的所有表
show tables;
4.查看其他庫所有表
show tables from 庫名;
5.查看表結(jié)構(gòu)
desc 表名;
6.創(chuàng)建表
create table 表名(
);
為什么要學(xué)習(xí)數(shù)據(jù)庫
1.測試工程師的目的是找出軟件的不足,并告訴開發(fā)工程師
2.測試工程師在測試軟件過程中,不僅僅需要在界面進(jìn)行操作,還需要檢查數(shù)據(jù)庫中的數(shù)據(jù)是否正確,從而在軟件出現(xiàn)問題時(shí)候,能夠定位到問題原因;
什么是數(shù)據(jù)庫
數(shù)據(jù)庫是按照數(shù)據(jù)的結(jié)構(gòu)來組織、存儲、和管理數(shù)據(jù)的倉庫,簡而言之,就是存放數(shù)據(jù)的倉庫
常見數(shù)據(jù)庫
Oracle、MySQL、SQLServer、MongoDB、Redis、SQLite
數(shù)據(jù)庫和SQL是什么關(guān)系
數(shù)據(jù)庫里面放著數(shù)據(jù),而SQL是用來操作數(shù)據(jù)庫里數(shù)據(jù)的語言
數(shù)據(jù)庫語句操作
創(chuàng)建庫
create databases +庫名
刪除庫
drop databases +庫名
選擇數(shù)據(jù)庫
user +庫名
查看數(shù)據(jù)庫創(chuàng)建細(xì)節(jié)
show create database +庫名
創(chuàng)建一個使用gbk字符集的數(shù)據(jù)庫
create database 庫名 character set gbk
表的約束
為空? not null
自增? ?auto_increment
唯一? unique key
排序
升序 asc
降序? desc
select * from 表名 order by 表中字段? asc(mysql中默認(rèn)是升序排列)
分頁查詢
limit 是msql 的分頁查詢語法
select * from table limit m,n
其中m是指記錄從m+1開始,n代表取n條記錄
示例:select * from 表名 limit 2,4
分組查詢
group by
聚合函數(shù)
count 個數(shù)
sum 總數(shù)
avg 平均數(shù)
max 最大值
min 最小值
數(shù)據(jù)控制語言
數(shù)據(jù)控制語言:簡稱DCL,用來定義數(shù)據(jù)庫y的訪問權(quán)限和安全級別,及創(chuàng)建用戶
多表設(shè)計(jì)
一對一
一張表的一條記錄一定只能與另外一張表的一條記錄進(jìn)行對應(yīng),反之亦然。有時(shí)候,為了業(yè)務(wù),或者避免一張表中數(shù)據(jù)量過大,過復(fù)雜,在開發(fā)中進(jìn)行一對一方式來設(shè)計(jì)表

一對多
一個實(shí)體的某個數(shù)據(jù)與另外一個實(shí)體的多個數(shù)據(jù)有關(guān)聯(lián)關(guān)系, 一對多的關(guān)系在設(shè)計(jì)的時(shí)候,需要設(shè)計(jì)表的外鍵。
創(chuàng)建數(shù)據(jù)庫表
constraint 約束
foreign key就是表與表之間的某種約定的關(guān)系,由于這種關(guān)系的存在,能夠讓表與表之間的數(shù)據(jù),更加的完整,關(guān)連性更強(qiáng)。
foreign key語句的式例:FOREIGN KEY(Sno) REFERENCES Student(Sno)
注意:表的外鍵必須是另一張表的主鍵
子查詢:嵌套在其他查詢中的查詢。
多對多
一個實(shí)體的數(shù)據(jù)對應(yīng)另外一個實(shí)體的多個數(shù)據(jù),另外實(shí)體的數(shù)據(jù)也同樣對應(yīng)當(dāng)前實(shí)體的多個數(shù)據(jù)。
一個學(xué)生可以有多個老師,一個老師可以教多個學(xué)生
解決方案:創(chuàng)建一個中間表,專門用來維護(hù)多表之間的對應(yīng)關(guān)系,通常是能夠唯一標(biāo)識出數(shù)據(jù)的字段(主鍵)
鏈表查詢
分類:內(nèi)連接、外連接、交叉連接
交叉查詢
交叉查詢,又叫笛卡爾積查詢,會將左表和右表的信息,做一個乘積將所有信息查詢出來,會產(chǎn)生臨時(shí)表,比較占用內(nèi)存,生成的記錄數(shù)=表1 X表2
內(nèi)連接查詢
內(nèi)連接,inner join on 查詢兩張表,設(shè)定條件,將兩張表中對應(yīng)的數(shù)據(jù)查詢出來不會產(chǎn)生笛卡爾積,不會產(chǎn)生臨時(shí)表,性能高
左外連接
左外連接 left join on 設(shè)定條件,將兩張表對應(yīng)的數(shù)據(jù)查詢出來,同時(shí)將左表自己沒有關(guān)聯(lián)的數(shù)據(jù)也查詢出來
注意:join前面是左,后面是右
右外連接:
右外連接 right join on 設(shè)定條件,將兩張表對應(yīng)的數(shù)據(jù)查詢出來,同時(shí)將右表自己沒有關(guān)聯(lián)的所有數(shù)據(jù)查詢出來