MySQL基礎(chǔ)快速入門(mén)知識(shí)總結(jié)(附思維導(dǎo)圖)
前言
本文是我這段時(shí)間自學(xué)MySQL之后,自己總結(jié)的一些MySQL的入門(mén)基礎(chǔ)知識(shí).我自己用的是MySQL 5.7.

一.數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)
1.什么是數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)是按照一定數(shù)據(jù)結(jié)構(gòu),進(jìn)行組織,存儲(chǔ),管理數(shù)據(jù)的倉(cāng)庫(kù)數(shù)據(jù)的倉(cāng)庫(kù),是一種對(duì)大量信息進(jìn)行管理的高效解決方案.
數(shù)據(jù)庫(kù)系統(tǒng)DBS=數(shù)據(jù)庫(kù)DB+數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS.
2.數(shù)據(jù)庫(kù)的分類(lèi)
數(shù)據(jù)庫(kù)的分為關(guān)系型數(shù)據(jù)庫(kù)和分關(guān)系型數(shù)據(jù)庫(kù).
關(guān)系型:是建立在關(guān)系模型上的數(shù)據(jù)庫(kù),關(guān)系模型顧名思義就是二維表模型,用來(lái)記錄實(shí)體和實(shí)體與實(shí)體信息之間的關(guān)系信息.常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)有Oracle ,MySQL ,SQL Server.
非關(guān)系型數(shù)據(jù)庫(kù):不建立在關(guān)系模型上的數(shù)據(jù)庫(kù).主要有MongoDB Redis
3.數(shù)據(jù)庫(kù)的常用語(yǔ)言
數(shù)據(jù)庫(kù)系統(tǒng)DBS
結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL
數(shù)據(jù)庫(kù)DB
數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS
表table
行row => 記錄record
列column => 字段field
4.數(shù)據(jù)庫(kù)的常用操作方式
DOS命令:
連接遠(yuǎn)程主機(jī):mysql -h 主機(jī)名/IP地址 -P端口號(hào) -u 用戶(hù)名 -p 密碼
連接本機(jī)主機(jī):mysql -u用戶(hù)名 -p密碼
客戶(hù)端(可視化軟件):Navicat
代碼:
Web網(wǎng)頁(yè):PHPMyAdmin
5.MySQL的架構(gòu)
C/S架構(gòu):
服務(wù)端管理和存儲(chǔ)數(shù)據(jù)
客戶(hù)端發(fā)送操作請(qǐng)求
二.數(shù)據(jù)庫(kù)的增刪改查
1.創(chuàng)建數(shù)據(jù)庫(kù)
#創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)法 create database `庫(kù)名` charset=utf8/gbk;
創(chuàng)建數(shù)據(jù)庫(kù)前,需要先連接進(jìn)數(shù)據(jù)庫(kù),可以用自己的本地?cái)?shù)據(jù)庫(kù)練習(xí).
2.查詢(xún)數(shù)據(jù)庫(kù)
#查詢(xún)所有數(shù)據(jù)庫(kù) show databases; #按條件查詢(xún)like ,其中%表示任意多個(gè)字符,-表示任意一個(gè)字符. create databases like '%-'; #查詢(xún)建庫(kù)語(yǔ)句 show create database;
3.修改數(shù)據(jù)庫(kù)
#修改數(shù)據(jù)庫(kù)(僅能修改選項(xiàng),也就是字符集這些) alter database `庫(kù)名` [新選項(xiàng)];
4.刪除數(shù)據(jù)庫(kù)
#刪除數(shù)據(jù)庫(kù)(語(yǔ)法很簡(jiǎn)單,但后果很?chē)?yán)重.一般你也沒(méi)有權(quán)限,哈哈.) drop database `庫(kù)名`;
三.表的增刪改查
1.創(chuàng)建表
#創(chuàng)建表前,先指定數(shù)據(jù)庫(kù) use `指定庫(kù)名`; #創(chuàng)建表的 create table `表名`( `字段1` 字段1類(lèi)型 字段1屬性, ... `字段N` 字段N類(lèi)型 字段N屬性);[選項(xiàng)]
其中的選項(xiàng)主要包括三大類(lèi):
- 字符集 charset=utf8 / GBK …
- 數(shù)據(jù)引擎 engine=innodb / mysiam
- 備注 comment='‘備注內(nèi)容''
其它的字段類(lèi)型和字段屬性,后面有詳細(xì)寫(xiě)到.
2.查詢(xún)表
#查詢(xún)所有表 show tables; #條件查詢(xún) show tables like '%-'; #查詢(xún)表結(jié)構(gòu) desc `表名`; #查詢(xún)建表語(yǔ)句 show create table `表名`;
3.修改表
#修改表選項(xiàng) alter table `表名` [新選項(xiàng)]; #修改表名 rename table `舊表命` to `新表名`; #修改表內(nèi)的字段 alter table `表名` change `舊字段名` `新字段名` 新字段類(lèi)型; #添加新字段到字段末尾 alter table `表名` add `新字段名` 類(lèi)型 屬性; #添加字段到對(duì)應(yīng)字段后 alter table `表名` add `新字段名` 類(lèi)型 屬性 after `對(duì)應(yīng)字段` #添加字段到最前面 alter table `表名` add `新字段名` 類(lèi)型 屬性 first;
4.刪除表
#如果表存在,則刪除表,否則報(bào)錯(cuò) drop table [if exists] `表名`;
四.記錄的增刪改查
1.插入記錄
#插入記錄
insert into `表名`(`字段1`,...`字段`) values('值1',...,'值N');
#當(dāng)一次傳入所有值時(shí),可以省不寫(xiě)字段
insert into `表名` values('值1',...,'值N');
#當(dāng)需一次傳入多條記錄時(shí)
insert into `表名`(`字段1`,...`字段`) values
('值1',...,'值N'),
('值1',...,'值N'),
...,
('值1',...,'值N');
#當(dāng)需一次傳入多條記錄,且字段全傳入時(shí)
insert into `student` values(值列表1),(值列表2),(值列表n);
2.查詢(xún)記錄(最常用)
#查詢(xún)語(yǔ)法 select [選型] 字段列表 as 別名 from `表名` where 條件表達(dá)式;
1、條件表達(dá)式:
邏輯運(yùn)算符:and or not
比較運(yùn)算符:+ - * / < > = !=
2、選項(xiàng):
all:查詢(xún)所有,不寫(xiě)默認(rèn)就是所有
distinct:去重.重復(fù)指查詢(xún)后的數(shù)據(jù)里,記錄的所有字段全部相同,才認(rèn)定為重復(fù).
as:別名.給查詢(xún)后的字段設(shè)置一個(gè)別名,方便查閱.
常見(jiàn)的聚合函數(shù):count(),Max(),Min(),Sum(),avg()
3、連表查詢(xún) join
1.內(nèi)連接 inner join #將參與連接的兩個(gè)表中符合連接條件的記錄查詢(xún)出來(lái),不符合的過(guò)濾掉. select * form `表1` inner join `表2` on 連接條件; 2.左外連接 left Join #將參與連接的左表中即使不能匹配連接條件的記錄也會(huì)查詢(xún)出來(lái),右表不符合的過(guò)濾掉 select * from `表1` left join `表2` on 連接條件; 3.右外連接 right join #將參與連接的右表中即使不能匹配連接條件的記錄也會(huì)查詢(xún)出來(lái),左表不符合的過(guò)濾掉 select * from `表1` right join `表2` on 連接條件;
3.修改記錄
#語(yǔ)法 update `表名` set `字段`='新值' where 條件表達(dá)式;
4.刪除記錄
#語(yǔ)法 delete from `表名` where 條件表達(dá)式;
五.字段類(lèi)型
1.數(shù)字型
1.1整數(shù)型
tinyint:占用一個(gè)字節(jié),一共能表示256個(gè)數(shù)
有符號(hào):-128~127
無(wú)符號(hào):0~255
int:占用4個(gè)字節(jié)
有符號(hào):-21億~21億
無(wú)字符:0~42億
1.2小數(shù)型
浮點(diǎn)數(shù):
float(M,D):單精度浮點(diǎn)數(shù)
double(M,D):雙精度浮點(diǎn)數(shù)
定點(diǎn)數(shù):
decimal(M,D):數(shù)據(jù)不會(huì)丟失的小數(shù)類(lèi)型,常用于記錄貨幣
2.文本型
- char(M):定長(zhǎng)字符,M表示最大的字符數(shù).優(yōu)勢(shì)為運(yùn)算速度快.常用在255個(gè)字符內(nèi)的固定長(zhǎng)度的字符.如:身份證,電話(huà)號(hào)碼等.
- varchar(M):變長(zhǎng)字符,M表示最大的字符數(shù).優(yōu)勢(shì)為節(jié)省空間.常用在255個(gè)字符以?xún)?nèi),長(zhǎng)度不確定的字符.
- text:常用在256個(gè)字符以上的文本中
3.日期時(shí)間
- datetime:固定的日期時(shí)間
- timestamp:時(shí)間戳:當(dāng)新增記錄或更新記錄時(shí)自動(dòng)更新為當(dāng)前系統(tǒng)時(shí)間,用于記錄最后一次修改的時(shí)間或新插入記錄的時(shí)間
六.字段屬性
- not null:設(shè)置該字段的值不能為空,不寫(xiě)就是默認(rèn)可以為空
- default 默認(rèn)值:設(shè)置一個(gè)默認(rèn)值,沒(méi)有數(shù)據(jù)傳入就是使用默認(rèn)值.有數(shù)據(jù)傳入則使用傳入的值
- comment:備注用漢字備注字段,方便后期維護(hù)
- unique key:唯一值該字段的值不能重復(fù),但可以為空
- primary key 主鍵:
用于唯一標(biāo)識(shí)一條記錄
一個(gè)表最能只能有一個(gè)主鍵
不能為空
不能重復(fù) - auto_increment 自動(dòng)增長(zhǎng):在新插入記錄時(shí),自動(dòng)在本字段最大值的基礎(chǔ)上加1,條件本字段的類(lèi)型必須為整數(shù)型.常與主鍵一起使用,但不是必須與主鍵一起使用.
總結(jié)
到此這篇關(guān)于MySQL基礎(chǔ)快速入門(mén)知識(shí)總結(jié)的文章就介紹到這了,更多相關(guān)MySQL基礎(chǔ)入門(mén)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mysql按條件計(jì)數(shù)多種實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Mysql按條件計(jì)數(shù)多種實(shí)現(xiàn)方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
Mysql兩表聯(lián)合查詢(xún)的四種情況總結(jié)
今天小編就為大家分享一篇關(guān)于Mysql兩表聯(lián)合查詢(xún)的四種情況總結(jié),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01
Mysql limit 優(yōu)化,百萬(wàn)至千萬(wàn)級(jí)快速分頁(yè) 復(fù)合索引的引用并應(yīng)用于輕量級(jí)框架
MySql 性能到底能有多高?用了php半年多,真正如此深入的去思考這個(gè)問(wèn)題還是從前天開(kāi)始。有過(guò)痛苦有過(guò)絕望,到現(xiàn)在充滿(mǎn)信心!2011-06-06
Mysql字符串截取及獲取指定字符串中的數(shù)據(jù)
小編童鞋最近接了一個(gè)新需求,需要在MySql的字段中截取一段字符串中的特定字符,下面小編把我的核心代碼分享給大家,對(duì)mysql 字符串截取相關(guān)知識(shí)感興趣的朋友一起看看吧2019-11-11
Mysql 5.7.14 使用常見(jiàn)問(wèn)題匯總(推薦)
本文給大家分享Mysql 5.7.14 使用常見(jiàn)問(wèn)題匯總的相關(guān)知識(shí)及結(jié)合自己的實(shí)踐總結(jié)了相關(guān)原因,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-09-09

