MySQL軟件安裝及數(shù)據(jù)庫基礎(chǔ),供大家參考,具體內(nèi)容如下
一、任務(wù)
任務(wù)一
MySQL 軟件安裝及數(shù)據(jù)庫基礎(chǔ)
任務(wù)時間
請于2月26日22:00前完成,在本文章評論打卡。逾期尚未打卡的會被清退。
學(xué)習(xí)內(nèi)容
1.軟件安裝及服務(wù)器設(shè)置
教程 MySQL 安裝 | 菜鳥教程
2.(選做,但是強烈建議) 使用圖形界面軟件 Navicat for SQL
星球提供Navicat for SQL
簡易步驟:
解壓縮文件,復(fù)制key
打開文件夾中的navicat.exe
用戶名隨意,輸入key,然后連接數(shù)據(jù)庫
輸入密碼,連接名改成自己喜歡的
剩下的自己探索,怎么在navicat中創(chuàng)建數(shù)據(jù)庫、表等等
3.數(shù)據(jù)庫基礎(chǔ)知識
數(shù)據(jù)庫定義
關(guān)系型數(shù)據(jù)庫
二維表
行
列
主鍵
外鍵
4.MySQL數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫
數(shù)據(jù)表
視圖
存儲過程
二、軟件安裝及服務(wù)器設(shè)置
系統(tǒng)環(huán)境:win10 家庭版
2.1 MySQL安裝
2.1.1 在MySQL官網(wǎng) 下載 Windows 版本的 MySQL 安裝包
地址為:MySQL下載
點擊下載Download后會彈出以下界面,點擊 No thanks, just start my download
2.1.2 下載完后解壓,將 zip 包解壓到你想安裝的目錄,我的路徑如下所示:
2.1.3 配置環(huán)境變量:
進(jìn)入 計算機—屬性—高級系統(tǒng)設(shè)置—環(huán)境變量,添加MySQL解壓的路徑。
2.1.4 接下來配置 MySQL 的配置文件
打開剛剛解壓的文件夾 D:\軟件\Mysql\mysql-8.0.15-winx64\mysql-8.0.15-winx64 ,創(chuàng)建一個配置文件為 my.ini,編輯 my.ini 配置以下基本信息:
[mysql]
default-character-set=utf8
[mysqld]
port = 3306
basedir=D:\軟件\Mysql\mysql-8.0.15-winx64\mysql-8.0.15-winx64
datadir=D:\軟件\Mysql\mysql-8.0.15-winx64\mysql-8.0.15-winx64\data
character-set-server=utf8
default-storage-engine=INNODB
1.接下來我們來啟動下 MySQL 數(shù)據(jù)庫:
以管理員身份打開 cmd 命令行工具,切換目錄:
D:
cd D:\軟件\Mysql\mysql-8.0.15-winx64\mysql-8.0.15-winx64\bin
輸入初始化命令:
mysqld --initialize-insecure --user=mysql
在D:\軟件\Mysql\mysql-8.0.15-winx64\mysql-8.0.15-winx64\bin目錄下生成data目錄
啟動輸入以下命令即可:
這證明已經(jīng)連接成功。
2.2 MySQL 重置密碼
2.2.1 登錄MySQL
輸入:
因為之前沒設(shè)置密碼,所以密碼為空,直接回車即可:
2.2.2 查詢用戶密碼
查詢用戶密碼命令:
mysql> select host,user,authentication_string from mysql.user;
host: 允許用戶登錄的ip;
user:當(dāng)前數(shù)據(jù)庫的用戶名;
authentication_string: 用戶密碼;
如果沒密碼, root 這一行應(yīng)該是空的。
2.2.3 設(shè)置(或修改)root用戶密碼:
注意:在MySQL 5.7.9以后廢棄了password字段和password()函數(shù)
一定不要采取如下形式設(shè)置密碼:
use mysql;
update user set authentication_string="newpassword" where user="root";
這樣會給user表中root用戶的authentication_string字段下設(shè)置了newpassword值;
正確修改root密碼的步驟為:
1.如果當(dāng)前root用戶authentication_string字段下有內(nèi)容,先將其設(shè)置為空,沒有就跳到步驟 2。
use mysql;
update user set authentication_string='' where user='root'
2.使用ALTER修改root用戶密碼,方法為:
use mysql;
ALTER user 'root'@'localhost' IDENTIFIED BY '新密碼';
FLUSH PRIVILEGES;
到此為止自己創(chuàng)建的本地MySQL創(chuàng)建完畢?。。?br />
重新連接即可?。?!
三、使用圖形界面軟件 Navicat for SQL
Navicat for SQL安裝包已存百度網(wǎng)盤:navicat+for+mysql10.0.11簡體中文
1.解壓縮文件,復(fù)制key
2.打開文件夾中的navicat.exe
3.用戶名隨意,輸入key,然后連接數(shù)據(jù)庫
4.輸入密碼(之前如果MySQL重新設(shè)置過密碼,那這里就填新設(shè)置的密碼就好),連接名改成自己喜歡的
出現(xiàn)的問題: 這里連接出現(xiàn)失敗,如圖
解決方案:
這里的問題其實MySQL在之前設(shè)置密碼時所用的加密方式ALTER user 'root'@'localhost' IDENTIFIED BY '新密碼';為強加密,就會出現(xiàn)連接失敗的情況;如果使用第二種加密方式ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '新密碼';,就可以直接連上了。
成功連接?。?!
到此,所需軟件的安裝及環(huán)境配置工作全部完成,可以開心的遨游MySQL的世界啦~~
四、數(shù)據(jù)庫基礎(chǔ)知識
4.1 數(shù)據(jù)庫(database)定義
以《SQL必知必會(第4版) 》這本書來說,從 SQL的角度來看,數(shù)據(jù)庫是一個以某種有組織的方式存儲的數(shù)據(jù)集合,是保存有組織的數(shù)據(jù)的容器(通常是一個文件或一組文件)。
注意: 人們通常用數(shù)據(jù)庫這個術(shù)語來代表他們使用的數(shù)據(jù)庫軟件, 這是不正確的,也因此產(chǎn)生了許多混淆。確切地說,數(shù)據(jù)庫軟件應(yīng)稱為數(shù)據(jù)庫管理系統(tǒng)(DBMS)。數(shù)據(jù)庫是通過 DBMS創(chuàng)建和操縱的容器,而具體它究竟是什么,形式如何,各種數(shù)據(jù)庫都不一樣。
4.2 關(guān)系型數(shù)據(jù)庫
關(guān)系型數(shù)據(jù)庫最典型的數(shù)據(jù)結(jié)構(gòu)是表,由二維表及其之間的聯(lián)系所組成的一個數(shù)據(jù)組織。
優(yōu)點:
1.易于維護(hù):都是使用表結(jié)構(gòu),格式一致;
2.使用方便:SQL語言通用,可用于復(fù)雜查詢;
3.復(fù)雜操作:支持SQL,可用于一個表以及多個表之間非常復(fù)雜的查詢。
缺點:
4.讀寫性能比較差,尤其是海量數(shù)據(jù)的高效率讀寫;
5.固定的表結(jié)構(gòu),靈活度稍欠;
6.高并發(fā)讀寫需求,傳統(tǒng)關(guān)系型數(shù)據(jù)庫來說,硬盤I/O是一個很大的瓶頸。
4.3 二維表
表是一種結(jié)構(gòu)化的文件,可用來存儲某種特定類型的數(shù)據(jù)。表可以保存顧客清單、 產(chǎn)品目錄,或者其他信息清單。表是某種特定類型數(shù)據(jù)的結(jié)構(gòu)化清單。
存儲在表中的數(shù)據(jù)是同一種類型的數(shù)據(jù)或清單。決不應(yīng)該將顧客的清單與訂單的清單存儲在同一個數(shù)據(jù)庫表中,否則以后的檢索和訪問會很困難。 應(yīng)該創(chuàng)建兩個表,每個清單一個表。
數(shù)據(jù)庫中的每個表都有一個名字來標(biāo)識自己。 這個名字是唯一的,即數(shù)據(jù)庫中沒有其他表具有相同的名字。 雖然在相同數(shù)據(jù)庫中不能兩次使用相同的表名,但在不同的數(shù)據(jù)庫中完全可以使用相同的表名。
模式可以用來描述數(shù)據(jù)庫中特定的表,也可以用來描述整個數(shù)據(jù)庫(和其中表的關(guān)系)。模式是關(guān)于數(shù)據(jù)庫和表的布局及特性的信息。
4.4 行
表中的數(shù)據(jù)是按行存儲的,所保存的每個記錄存儲在自己的行內(nèi)。
你可能聽到用戶在提到行時稱其為數(shù)據(jù)庫記錄(record)。 這兩個術(shù)語多半是可以交替使用的,但從技術(shù)上說,行才是正確的術(shù)語。
4.5 列
表由列組成。列存儲表中某部分的信息。列是表中的一個字段。所有表都是由一個或多個列組成的。
數(shù)據(jù)庫中每個列都有相應(yīng)的數(shù)據(jù)類型。數(shù)據(jù)類型(datatype)定義了列可以存儲哪些數(shù)據(jù)種類。數(shù)據(jù)類型限定了可存儲在列中的數(shù)據(jù)種類(例如,防止在數(shù)值字段中錄入字符值)。
數(shù)據(jù)類型及其名稱是SQL不兼容的一個主要原因。
4.6 主鍵
表中每一行都應(yīng)該有一列(或幾列)可以唯一標(biāo)識自己。 顧客表可以使用顧客編號,而訂單表可以使用訂單 ID。雇員表可以使用雇員 ID或雇員社會安全號。
主鍵(primary key) 是一列(或一組列),其值能夠唯一標(biāo)識表中每一行。沒有主鍵,更新或刪除表中特定行就極為困難,因為你不能保證操作只涉及相關(guān)的行。
提示: 應(yīng)該總是定義主鍵
雖然并不總是需要主鍵,但多數(shù)數(shù)據(jù)庫設(shè)計者都會保證他們創(chuàng)建的每個表具有一個主鍵,以便于以后的數(shù)據(jù)操作和管理。
表中的任何列都可以作為主鍵,只要它滿足以下條件:
- 任意兩行都不具有相同的主鍵值;
- 每一行都必須具有一個主鍵值(主鍵列不允許 NULL值);
- 主鍵列中的值不允許修改或更新;
- 主鍵值不能重用(如果某行從表中刪除,它的主鍵不能賦給以后的新行)。
主鍵通常定義在表的一列上,但并不是必需這么做,也可以一起使用多個列作為主鍵。在使用多列作為主鍵時,上述條件必須應(yīng)用到所有列,所有列值的組合必須是唯一的(但單個列的值可以不唯一)。
4.7 外鍵
外鍵是表中的一列,其值必須列在另一表的主鍵中。外鍵是保證引用完整性的極其重要部分。
外鍵有助防止意外刪除。在定義外鍵后, DBMS不允許刪除在另一個表中具有關(guān)聯(lián)行的行。例如,不能刪除關(guān)聯(lián)訂單的顧客。 刪除該顧客的唯一方法是首先刪除相關(guān)的訂單(這表示還要刪除相關(guān)的訂單項)。由于需要一系列的刪除,因而利用外鍵可以防止意外刪除數(shù)據(jù)。
五、MySQL數(shù)據(jù)庫管理系統(tǒng)
5.1 數(shù)據(jù)庫(Database,簡稱DB)
數(shù)據(jù)庫就是一個存放數(shù)據(jù)的倉庫,這個倉庫是按照一定的數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)的組織形式或數(shù)據(jù)之間的聯(lián)系)來組織、存儲的,我們可以通過數(shù)據(jù)庫提供的多種方法來管理數(shù)據(jù)庫里的數(shù)據(jù)。更簡單的形象理解,數(shù)據(jù)庫和我們生活中存放雜物的倉庫性質(zhì)一樣,區(qū)別只是存放的東西不同。
5.2 數(shù)據(jù)表(table)
數(shù)據(jù)表是關(guān)系數(shù)據(jù)庫中一個非常重要的對象,是其它對象的基礎(chǔ),也是一系列二維數(shù)組的集合,用來存儲、操作數(shù)據(jù)的邏輯結(jié)構(gòu)。
根據(jù)信息的分類情況,一個數(shù)據(jù)庫中可能包含若干個數(shù)據(jù)表,每張表是由行和列組成,記錄一條數(shù)據(jù),數(shù)據(jù)表就增加一行,每一列是由字段名和字段數(shù)據(jù)集合組成,列被稱之為字段,每一列還有自己的多個屬性,例如是否允許為空、默認(rèn)值、長度、類型、存儲編碼、注釋等。
5.3 數(shù)據(jù)庫系統(tǒng)有3個主要的組成部分
1.數(shù)據(jù)庫(Database System):用于存儲數(shù)據(jù)的地方。
2.數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS):用戶管理數(shù)據(jù)庫的軟件。
3.數(shù)據(jù)庫應(yīng)用程序(Database Application):為了提高數(shù)據(jù)庫系統(tǒng)的處理能力所使用的管理數(shù)據(jù)庫的軟件補充。
5.4 視圖
視圖是一種虛擬的表,具有和物理表相同的功能??梢詫σ晥D進(jìn)行增,改,查,操作,視圖通常是有一個表或者多個表的行或列的子集。對視圖的修改不影響基本表。它使得我們獲取數(shù)據(jù)更容易,相比多表查詢。
如下兩種場景一般會使用到視圖:
不希望訪問者獲取整個表的信息,只暴露部分字段給訪問者,所以就建一個虛表,就是視圖。
查詢的數(shù)據(jù)來源于不同的表,而查詢者希望以統(tǒng)一的方式查詢,這樣也可以建立一個視圖,把多個表查詢結(jié)果聯(lián)合起來,查詢者只需要直接從視圖中獲取數(shù)據(jù),不必考慮數(shù)據(jù)來源于不同表所帶來的差異。
注意: 這個視圖是在數(shù)據(jù)庫中創(chuàng)建的,而不是用代碼創(chuàng)建的。
5.5 存儲過程(Stored Procedure)
MySQL 5.0 版本開始支持存儲過程。
存儲過程就是為以后使用而保存的一條或多條 SQL語句。可將其視為批文件,雖然它們的作用不僅限于批處理。存儲過程是一種在數(shù)據(jù)庫中存儲復(fù)雜程序,以便外部程序調(diào)用的一種數(shù)據(jù)庫對象。存儲過程思想上很簡單,就是數(shù)據(jù)庫 SQL 語言層面的代碼封裝與重用。
優(yōu)點:
- 存儲過程可封裝,并隱藏復(fù)雜的商業(yè)邏輯。
- 存儲過程可以回傳值,并可以接受參數(shù)。
- 存儲過程無法使用 SELECT 指令來運行,因為它是子程序,與查看表,數(shù)據(jù)表或用戶定義函數(shù)不同。
- 存儲過程可以用在數(shù)據(jù)檢驗,強制實行商業(yè)邏輯等。
缺點:
- 存儲過程,往往定制化于特定的數(shù)據(jù)庫上,因為支持的編程語言不同。當(dāng)切換到其他廠商的數(shù)據(jù)庫系統(tǒng)時,需要重寫原有的存儲過程。
- 存儲過程的性能調(diào)校與撰寫,受限于各種數(shù)據(jù)庫系統(tǒng)。
精彩專題分享:
mysql不同版本安裝教程
mysql5.7各版本安裝教程
mysql5.6各版本安裝教程
mysql8.0各版本安裝教程
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- php基礎(chǔ)之連接mysql數(shù)據(jù)庫和查詢數(shù)據(jù)
- PHP連接和操作MySQL數(shù)據(jù)庫基礎(chǔ)教程
- Mysql入門基礎(chǔ) 數(shù)據(jù)庫創(chuàng)建篇
- PHP5 操作MySQL數(shù)據(jù)庫基礎(chǔ)代碼
- MySQL數(shù)據(jù)庫基礎(chǔ)命令大全(收藏)
- 很全面的Mysql數(shù)據(jù)庫、數(shù)據(jù)庫表、數(shù)據(jù)基礎(chǔ)操作筆記(含代碼)
- mysql 數(shù)據(jù)庫基礎(chǔ)筆記
- python 專題九 Mysql數(shù)據(jù)庫編程基礎(chǔ)知識
- mysql數(shù)據(jù)庫基礎(chǔ)知識點與操作小結(jié)
- MySQL數(shù)據(jù)庫基礎(chǔ)入門之常用命令小結(jié)
- MySQL數(shù)據(jù)庫基礎(chǔ)篇之入門基礎(chǔ)命令小結(jié)
- MySql數(shù)據(jù)庫基礎(chǔ)知識點總結(jié)