Mysql數(shù)據(jù)庫day1(2019.4.23)

一廷蓉、引入

瀏覽器訪問HTML靜態(tài)頁面:


image.png
  • 瀏覽器訪問動態(tài)網(wǎng)頁的流程:


    image.png

二、學(xué)習(xí)數(shù)據(jù)庫的重要性

web開發(fā)的本質(zhì)就是對數(shù)據(jù)庫的操作粘室。
PHP開需要操作大量的字符串榄檬。數(shù)組,這兩個數(shù)據(jù)來源一大部分是來源于數(shù)據(jù)庫衔统。
web優(yōu)化鹿榜,服務(wù)器架構(gòu)需要對數(shù)據(jù)庫進行調(diào)優(yōu)。

三锦爵、數(shù)據(jù)庫課程體系

在我們?nèi)珬W(xué)科的整個過程中舱殿,數(shù)據(jù)庫分為三個部分:
基礎(chǔ)階段:6天時間 MySQL基本操作。SQL語言(增刪改查(CURD))险掀。數(shù)據(jù)庫的高級操作(視圖沪袭,觸發(fā),函數(shù)樟氢,變量枝恋,過程)。
高級階段:服務(wù)器的時候嗡害,SQL優(yōu)化焚碌,數(shù)據(jù)庫的主從。
部署階段:項目上線的時候霸妹,生產(chǎn)環(huán)境服務(wù)器數(shù)據(jù)庫的搭建十电。負載均衡,數(shù)據(jù)庫的集群。

四鹃骂、數(shù)據(jù)庫基礎(chǔ)概念

1.什么是數(shù)據(jù)庫

數(shù)據(jù)庫:database DB台盯。數(shù)據(jù)的存儲倉庫。車庫畏线,糧庫静盅,倉庫,優(yōu)衣庫寝殴。
文件蒿叠。數(shù)據(jù)庫存儲數(shù)據(jù)也是文件的方式進行存儲的。
數(shù)據(jù)庫的專業(yè)定義:高效的數(shù)據(jù)存儲以及數(shù)據(jù)處理軟件蚣常。

2.?dāng)?shù)據(jù)庫的分類

數(shù)據(jù)庫大致分為三種:層次式數(shù)據(jù)庫市咽,網(wǎng)絡(luò)式數(shù)據(jù)庫,關(guān)系式數(shù)據(jù)庫抵蚊。不同種類的數(shù)據(jù)庫存儲數(shù)據(jù)的方式是不一樣的施绎。
數(shù)據(jù)庫有類型之分:關(guān)系型數(shù)據(jù)庫,非關(guān)系型數(shù)據(jù)庫贞绳。

image.png

參考網(wǎng)站:<u>http://www.mamicode.com/info-detail-314758.html</u>

1) 網(wǎng)狀數(shù)據(jù)庫

處理以記錄類型為節(jié)點的網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)庫

2)層級式數(shù)據(jù)庫

層級數(shù)據(jù)庫是將數(shù)據(jù)組織成有序的樹狀結(jié)構(gòu)數(shù)據(jù)谷醉。并使用一對多的結(jié)構(gòu)鏈接不同層級的數(shù)據(jù)。


image.png

image.png

2)關(guān)系式數(shù)據(jù)庫

當(dāng)前使用最廣泛的數(shù)據(jù)庫

3.不同類型的數(shù)據(jù)庫的主要產(chǎn)品

1)關(guān)系型數(shù)據(jù)庫:

大型:DB2 .Oracle
中型:SQL server, mysql, mariaDB,postgreSQL .
小型:access 冈闭,sqllite

2)非關(guān)系型數(shù)據(jù)庫:

memcached
redis
mongodb

4.兩種數(shù)據(jù)庫類型的區(qū)別:

關(guān)系型數(shù)據(jù)庫是存儲在磁盤中的俱尼。相對來說比較安全,進行復(fù)雜的查詢拒秘,支持事務(wù)号显。
非關(guān)系型數(shù)據(jù)庫存儲在內(nèi)存。相對來說不安全躺酒,耦合度比較低押蚤,水平擴展比較好。速度比較快羹应。性能比較好揽碘。

五、關(guān)系型數(shù)據(jù)庫

1.什么是關(guān)系型數(shù)據(jù)庫

關(guān)系型數(shù)據(jù)庫就是建立在關(guān)系模型(數(shù)學(xué)模型)上的數(shù)據(jù)庫园匹。
關(guān)系型數(shù)據(jù)庫其實就相當(dāng)于一張Excel表格雳刺。
銀行實例:
用戶賬號信息表:


image.png

流水信息表:


image.png

游戲解釋數(shù)據(jù)庫:
image.png

image.png

image.png

1)實體、實體集與屬性

image.png

QQ截圖20190424201453.jpg

實體:客觀存在的事物裸违,對應(yīng)的是數(shù)據(jù)庫當(dāng)中的一條記錄掖桦。
實體集:抽象出來的,具體實體的一個抽象概念供汛,所對應(yīng)的的是數(shù)據(jù)庫的一張表宿稀。
屬性:實體具有很多的屬性,對應(yīng)到數(shù)據(jù)庫中是表當(dāng)中的一個字段搬味。

2)數(shù)據(jù)庫的組織架構(gòu)

一個數(shù)據(jù)庫由多張數(shù)據(jù)表組成,每一張表中可以有多條記錄骑歹。每一個表中也具有多個字段锈麸。

六僧凰、MySQL數(shù)據(jù)庫介紹

MySQL是一個關(guān)系型數(shù)據(jù)庫纱兑,是瑞典的MySQLAB公司的產(chǎn)品倒信。MySQL目前屬于oracle瘾带。
MySQL是web最好用的一款數(shù)據(jù)庫允蚣,由于其開源的特點于颖,在開源社區(qū)具有非常高的活躍度。
MySQL分為兩個版本嚷兔,社區(qū)版和企業(yè)版森渐。社區(qū)版是開源的做入,免費的。但是企業(yè)版是收費同衣。
MySQL具有很好的支持竟块,特別是對PHP的支持,PHP有專門的的MySQL擴展耐齐。lamp以及l(fā)nmp都是非常流行的服務(wù)器架構(gòu)浪秘。

七、SQL語句

1.概念

SQL:(structured query language )結(jié)構(gòu)化查詢語言埠况。同時這個sql也是數(shù)據(jù)庫文件的腳本的后綴名耸携。
是數(shù)據(jù)庫客戶端與數(shù)據(jù)庫服務(wù)器通信的語言。SQL語言是一種SQL通信的規(guī)范辕翰。美國國家標(biāo)準(zhǔn)協(xié)會(1986)制定了標(biāo)準(zhǔn)夺衍,幾乎所有的關(guān)系型數(shù)據(jù)庫都支持SQL語言。

2.SQL語句分類

根據(jù)數(shù)據(jù)庫的操作對象進行劃分(數(shù)據(jù)庫喜命,表沟沙,數(shù)據(jù))。
?DCL:數(shù)據(jù)庫控制語言:主要是進行權(quán)限以及數(shù)據(jù)庫用戶的管理渊抄。
?DDL:數(shù)據(jù)庫定義語句尝胆。創(chuàng)建表丧裁,創(chuàng)建庫护桦。
?DML:數(shù)據(jù)操作語言(對數(shù)據(jù)的增刪改查)。
DQL:數(shù)據(jù)庫查詢語言煎娇。

八二庵、訪問數(shù)據(jù)庫服務(wù)器

1.訪問步驟

1)開啟服務(wù)器

2)連接服務(wù)器

3)進行操作

2.開啟MySQL服務(wù)器的方式

1)使用系統(tǒng)服務(wù)開啟

使用window系統(tǒng)服務(wù)界面操作》


image.png

2)使用命令行模式開啟

image.png

開啟命令:

net  start mysql

關(guān)閉命令:

 net  stop mysql

3.使用客戶端連接數(shù)據(jù)庫

1)客戶端方式

mysql提供了一個自己的客戶端軟件:MySQL command line client


image.png
image.png

2)命令行模式

mysql [-h主機名] [-p端口號] -u用戶名 -p(密碼)

-h:h表示主機,默認(rèn)的是localhost缓呛。
-p:p表示port催享,是端口的意思。默認(rèn)的端口是3306.
-u:u表示user哟绊,是用戶的意思因妙。mysql 安裝好之后只有一個用戶root,是管理員賬號票髓。
-p:p表示password攀涵,是密碼的意思。管理員root賬號的密碼是在安裝的時候設(shè)置洽沟。


image.png

3)使用工具

image.png

image.png

image.png

image.png

4)退出

使用\q或者quit退出以故。


image.png

九、數(shù)據(jù)庫操作

1.查看數(shù)據(jù)庫

1)查看數(shù)據(jù)庫管理軟件中的所有數(shù)據(jù)庫裆操。

show databases;
image.png

系統(tǒng)的三個數(shù)據(jù)庫一定不要刪掉

2)查看數(shù)據(jù)庫的建庫語句

show create database database_name;
image.png

2.創(chuàng)建數(shù)據(jù)庫

1)創(chuàng)建語法

create database [if not exists] database_name [charset 字符集];
不能創(chuàng)建一個已經(jīng)存在的數(shù)據(jù)庫:


image.png

可以使用if not exists進行判斷怒详,在判斷沒有這樣的數(shù)據(jù)庫時再添加炉媒。


image.png

image.png

在創(chuàng)建數(shù)據(jù)庫的時候是可以指定字符編碼。
image.png

創(chuàng)建gbk編碼的數(shù)據(jù)庫:


image.png

2)判斷數(shù)據(jù)庫是否已經(jīng)存在

3)可以指定數(shù)據(jù)庫的字符集:

4)數(shù)據(jù)庫名稱的命名規(guī)則

數(shù)據(jù)庫的名字有字母昆烁,數(shù)字吊骤,下劃線組成。
不能以數(shù)字開頭静尼,也不能為純數(shù)字水援。
當(dāng)使用系統(tǒng)的關(guān)鍵字命名的時候要是用反撇號(`)包起來。盡量不要使用系統(tǒng)的關(guān)鍵字茅郎,否則會產(chǎn)生莫名其妙的問題蜗元。
名稱的長度一般不超過64個字符。
起名字一定要有意義系冗。

3.刪除數(shù)據(jù)庫

drop database [if exists]  database_name;
image.png

再刪除數(shù)據(jù)庫之前要判斷數(shù)據(jù)庫是否存在奕扣。


image.png

看圖說話:


image.png

不能直接刪除不存在的數(shù)據(jù)庫。

刪除的數(shù)據(jù)如果是使用系統(tǒng)關(guān)鍵字命名的掌敬。那么再刪除的語法當(dāng)中也應(yīng)該將名稱使用反撇號括起來惯豆。


image.png

4.修改數(shù)據(jù)庫

主要是修改數(shù)據(jù)庫的字符集。

alter database database_name charset 新字符集奔害;
image.png

5.選擇數(shù)據(jù)庫

use databases_name;
image.png

\s可以查看到當(dāng)前的用戶楷兽,當(dāng)前的數(shù)據(jù)庫主機,當(dāng)前操作的數(shù)據(jù)庫


image.png

十华临、數(shù)據(jù)表的操作

1.查看數(shù)據(jù)表

1)查看所有數(shù)據(jù)表

show tables;
image.png

當(dāng)數(shù)據(jù)庫沒有數(shù)據(jù)表的時候芯杀,顯示的是空或者empty set。雅潭,


image.png

2)查看表結(jié)構(gòu)

desc table_name;
image.png

3)數(shù)據(jù)類型簡單介紹

整形 int
浮點型 float
字符串 char varchar
日期類型 time 揭厚,datetime

2.建數(shù)據(jù)表

1)基本語法

create  table table_name(
字段1 數(shù)據(jù)類型 字段屬性,
字段2 數(shù)據(jù)類型  字段屬性
)charset 字符集扶供;

注意:如果是最后一個字段筛圆,字段的最后的逗號要省略钞瀑。

create table hreo(
id int comment ‘英雄ID號’,
name varchar(30) comment ‘名稱’努释,
skill varchar(20) comment ‘技能’
)charset utf8;
image.png

2)查看數(shù)據(jù)表的創(chuàng)建語句

 show create tabel table_name ;  
image.png

3.刪除數(shù)據(jù)表

drop table  table_name;
image.png

4.修改數(shù)據(jù)表

1)修改表的名字

alter table table_name rename [to] new_name;
image.png

十一魔眨、數(shù)據(jù)操作

數(shù)據(jù)的操作也叫(CURD)暇务,也就是數(shù)據(jù)的增刪改查躏救。

1.插入數(shù)據(jù)

insert into table_name(字段1姑食,字段2宰僧,烛亦。左腔。唧垦。) values (值1,值2液样,振亮。巧还。。);

--數(shù)據(jù)的插入
insert into hero(id,name,skill) values(2,'豬頭人','腦殘');
insert into hero(id,name,skill) values(3,'牛頭人','殺豬');
insert into hero(id,name,skill) values(5,'羊頭人','殺牛');

insert into hero(id,name,skill) values(8,'喜洋洋','白胖胖'),
(9,'灰太狼','吃平底鍋');
image.png

注意:輸入的時候坊秸,值得順序一定要和字段的順序保持一致麸祷。如果說知道表字段的順序,并且知道表字段的數(shù)據(jù)類型和限制條件褒搔。那么也可以使用下面這種語法:

insert into table_name  values(值1阶牍,值2.。星瘾。);
image.png

2.查詢數(shù)據(jù)

數(shù)據(jù)查詢使用select 關(guān)鍵字進行數(shù)據(jù)表的掃描走孽。

1)查詢指定字段的內(nèi)容

select 字段1,字段2.琳状。 from table_name;
select name from hero;
image.png

2)查詢所有的列數(shù)據(jù)

select * from table_name;
  • 表示所有的字段磕瓷,菊花表示查詢數(shù)據(jù)庫所有字段。


    image.png

3)按照條件查詢

select (字段/*) from  table_name where 條件念逞;

--查詢ID為3的英雄的技能
select skill from hero where id=3;
image.png

3.修改數(shù)據(jù)

修改數(shù)據(jù)也是網(wǎng)頁操作中比較常見操作困食。

update table_name set 字段=值,字段2=值2.翎承。硕盹。  where 條件;

注意:
update更新操作一般都是由where條件的叨咖,如果要運行的是一個沒有where條件的SQL更新語句瘩例,那么一定要小心小心再小心。update操作在沒有where條件的時候會修改整個表當(dāng)中的所有數(shù)據(jù)芒澜。


image.png

image.png

4.刪除數(shù)據(jù)

delete from table_name where 條件仰剿;
同樣的,刪除操作一般也是具有where條件的痴晦,如果沒有where條件,一定要再三確認(rèn)琳彩。


image.png

image.png

十二誊酌、字符集以及校對規(guī)則

1.亂碼問題

1)產(chǎn)生原因

image.png

image.png

數(shù)據(jù)庫表的字符編碼與客戶端通信使用的字符編碼不一致。數(shù)據(jù)庫采用的是utf8保存的露乏”套牵客戶端使用的是gbk獲取的,所以產(chǎn)生亂碼瘟仿。

2)解決辦法

客戶端的編碼是無法改變的箱锐。只能設(shè)置數(shù)據(jù)的字符集編碼。
查看當(dāng)前數(shù)據(jù)庫關(guān)于字符集的一些變量:

show  varables like ‘%character%’劳较;
image.png

第一種解決辦法:
設(shè)置使用gbk通信:

set names gbk;
image.png

image.png

[圖片上傳中...(image.png-5787af-1556110158288-0)]
第二種解決辦法:
單獨去設(shè)置影響顯示的系統(tǒng)變量:

set 變量名 = 值驹止;
set character_set_client = utf8;
image.png

2.字符集

1)概念

字符集:字符的編碼浩聋。

2)常用的字符集編碼

ASCII:美國的通用信息編碼。
gbk/gb2312:漢字編碼臊恋。
utf8:萬國碼衣洁,本質(zhì)上是使用8位可變長度的字節(jié)的字符編碼,幾乎支持所有的文字抖仅。

3)數(shù)據(jù)庫中的編碼:

數(shù)據(jù)庫編碼默認(rèn)的是使用utf編碼坊夫。數(shù)據(jù)表的編碼默認(rèn)使用數(shù)據(jù)庫的編碼。
設(shè)置了新的數(shù)據(jù)庫編碼之后撤卢,已有的表還保持之前的字符編碼环凿,新建的表采用新的編碼方式。

4)字符集統(tǒng)一規(guī)則

只有以下幾個方面的字符編碼方式一致放吩,最終文字的顯示才會準(zhǔn)確拷邢。

  • 數(shù)據(jù)庫的編碼
  • 數(shù)據(jù)表的編碼
  • PHP文件存數(shù)據(jù)的編碼
  • PHP文件取數(shù)據(jù)的編碼
  • HTML顯示的編碼

5)查看數(shù)據(jù)庫支持的編碼

show charset;
image.png

3.校對規(guī)則(排序規(guī)則)

1)概念

校對集:同一個字符編碼當(dāng)中,字符串的比較規(guī)則就叫校對集屎慢。


image.png

2)查看服務(wù)器支持的校對規(guī)則

show collaction;
image.png

3)校對規(guī)則命名特點

image.png

ci:表示不區(qū)分大小寫:A===a
cs:表示區(qū)分大小寫 A瞭稼!=a
bin: 表示按照二進制編碼順序排序。

utf8一般使用 utf8_general_ci 這種校對集規(guī)則腻惠。

校對規(guī)則是針對一種字符編碼的环肘,一種字符編碼可以有多種校對集。
默認(rèn)的校對規(guī)則在查看建表語句的時候是不顯示的集灌。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悔雹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子欣喧,更是在濱河造成了極大的恐慌腌零,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唆阿,死亡現(xiàn)場離奇詭異益涧,居然都是意外死亡,警方通過查閱死者的電腦和手機驯鳖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門闲询,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浅辙,你說我怎么就攤上這事扭弧。” “怎么了记舆?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵鸽捻,是天一觀的道長。 經(jīng)常有香客問我,道長御蒲,這世上最難降的妖魔是什么衣赶? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮删咱,結(jié)果婚禮上屑埋,老公的妹妹穿的比我還像新娘。我一直安慰自己痰滋,他們只是感情好摘能,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著敲街,像睡著了一般团搞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上多艇,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天逻恐,我揣著相機與錄音,去河邊找鬼峻黍。 笑死复隆,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的姆涩。 我是一名探鬼主播挽拂,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼骨饿!你這毒婦竟也來了亏栈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤宏赘,失蹤者是張志新(化名)和其女友劉穎绒北,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體察署,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡闷游,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了箕母。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片储藐。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嘶是,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蛛碌,我是刑警寧澤聂喇,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響希太,放射性物質(zhì)發(fā)生泄漏克饶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一誊辉、第九天 我趴在偏房一處隱蔽的房頂上張望矾湃。 院中可真熱鬧,春花似錦堕澄、人聲如沸邀跃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拍屑。三九已至,卻和暖如春坑傅,著一層夾襖步出監(jiān)牢的瞬間僵驰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工唁毒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蒜茴,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓浆西,卻偏偏與公主長得像粉私,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子室谚,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

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

  • 轉(zhuǎn) # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    呂品?閱讀 9,698評論 0 44
  • 今天看到一位朋友寫的mysql筆記總結(jié)毡鉴,覺得寫的很詳細很用心,這里轉(zhuǎn)載一下秒赤,供大家參考下猪瞬,也希望大家能關(guān)注他原文地...
    信仰與初衷閱讀 4,725評論 0 30
  • MYSQL 基礎(chǔ)知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 MySQL基本操...
    Kingtester閱讀 7,780評論 5 116
  • MySQL數(shù)據(jù)庫 課程目標(biāo):1.如何使用MySQL數(shù)據(jù)庫,主要是講解基本的語法2.如何設(shè)計數(shù)據(jù)庫入篮? 第一章 數(shù)據(jù)庫...
    我愛開發(fā)閱讀 1,317評論 1 4
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時陈瘦,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,187評論 0 9