有哪些公司的網(wǎng)站做的比較好公眾號如何推廣運營
目錄
1、初識數(shù)據(jù)庫
1.1 什么是數(shù)據(jù)庫
1.2?什么是MySQL
2、數(shù)據(jù)庫
2.1?數(shù)據(jù)庫服務(wù)&數(shù)據(jù)庫
2.2 C/S架構(gòu)
3、 初識SQL
3.1 什么是SQL
3.2?SQL分類
?4、使用SQL
4.1 查看所有數(shù)據(jù)庫
4.1.2 語句解析
?4.2 創(chuàng)建數(shù)據(jù)庫
4.2.1?if not exists校驗?
4.2.2 手動明確字符集和排序規(guī)則
4.2.3 SQL語句創(chuàng)建數(shù)據(jù)庫
4.3 查看當(dāng)前數(shù)據(jù)庫服務(wù)的全局默認字符集
1、初識數(shù)據(jù)庫
1.1 什么是數(shù)據(jù)庫
首先,我們之前所學(xué)的如Java、C++等編程語言是用來處理用戶數(shù)據(jù)的;而數(shù)據(jù)庫是用來保存用戶數(shù)據(jù)的,其底層應(yīng)用了一些合適的數(shù)據(jù)結(jié)構(gòu)對數(shù)據(jù)進行管理。
數(shù)據(jù)庫可以將數(shù)據(jù)保存在磁盤(外存)中,實現(xiàn)了對數(shù)據(jù)的持久化,解決了程序重啟或開關(guān)機后數(shù)據(jù)丟失的問題。
1.2?什么是MySQL
MySQL就是一個開源、免費、應(yīng)用廣泛的數(shù)據(jù)庫軟件。
MySQL是一個關(guān)系型數(shù)據(jù)庫。
2、數(shù)據(jù)庫
2.1?數(shù)據(jù)庫服務(wù)&數(shù)據(jù)庫
機器提供的數(shù)據(jù)庫服務(wù)中可以存在多個數(shù)據(jù)庫,而每個數(shù)據(jù)庫中又存在著多張數(shù)據(jù)表,每張數(shù)據(jù)表都有相關(guān)的信息:
在表中,每一列稱為字段、列,可以理解為Java中的屬性;每一行,即所有列組成的一條記錄(一行數(shù)據(jù))稱為一個數(shù)據(jù)行。
故,總結(jié)如下:
- 數(shù)據(jù)庫服務(wù)中可以創(chuàng)建多個數(shù)據(jù)庫
- 每個數(shù)據(jù)庫中有多個數(shù)據(jù)表
- 每個數(shù)據(jù)表中有多個數(shù)據(jù)行
- 每個數(shù)據(jù)行由多個列組成
- (即依次包含關(guān)系)
2.2 C/S架構(gòu)
C- Client(客戶端),S-Serve(服務(wù)端)
理解C/S架構(gòu),我們需要先了解以下定義:
- 請求:當(dāng)客戶端向服務(wù)器發(fā)送請求時,明確指定自己要操作的目標(訪問哪個庫中的哪個表,哪個表中的哪些行,哪些行中的哪些列)的過程叫做請求。
- 相應(yīng):服務(wù)器接收到客戶端的相應(yīng)后,把處理的結(jié)果返回給客服端的過程叫做相應(yīng)。
請求與響應(yīng)是成對出現(xiàn)的。?
對于客戶端與服務(wù)器之間的交互模型,我們稱之為C/S架構(gòu)。
注意:客戶端與服務(wù)器之間是通過網(wǎng)絡(luò)進行交互的。127.0.0.1 這個IP始終代表本機IP(無論是否有網(wǎng)絡(luò))。
3、 初識SQL
3.1 什么是SQL
數(shù)據(jù)庫用來保存數(shù)據(jù),如果要操作數(shù)據(jù)庫需要使用SQL。
SQL是一門語言,專門針對操作數(shù)據(jù)庫的語言,我們只需掌握增刪查改操作即可。
3.2?SQL分類
- DDL數(shù)據(jù)定義語言,用來維護存儲數(shù)據(jù)的結(jié)構(gòu)(data definition language)
- DML數(shù)據(jù)操縱語言,用來對數(shù)據(jù)(數(shù)據(jù)行)進行操作(data manipulation language)
- DCL數(shù)據(jù)控制語言,主要負責(zé)權(quán)限管理和事務(wù)(data control language)
我們只需學(xué)習(xí)DDL與DML,DCL主要使用于運維相關(guān)。
?4、使用SQL
4.1 查看所有數(shù)據(jù)庫
查看當(dāng)前所有數(shù)據(jù)庫:show databases;?
如下圖所示:
?
其中,紅色標記出來的都是MySQL自帶的數(shù)據(jù)庫記錄是一些關(guān)于MYSQL自身的一些配置,性能,系統(tǒng)變量信息:
4.1.2 語句解析
輸入技巧:
1.Ctrl+C 重新開始新一行的輸入。
2.若語句太長,只要沒有遇見;回車即可在下一行繼續(xù)上一行的輸入。
?4.2 創(chuàng)建數(shù)據(jù)庫
SQL語句是大小寫不敏感的,所以以下兩種語句是相同的:
create database if not exists Java113;
CREAT DATABASE IF NOT EXISTS JAVA113;?
4.2.1?if not exists校驗?
其中,if not exists的作用是檢查要創(chuàng)建的數(shù)據(jù)庫是否存在,若不存在則創(chuàng)建,若存在則提示警告信息。
查看警告信息:show warnings;?
注意:
在實際的工作中,執(zhí)行SQL語句時,不是手動一條一條執(zhí)行的,而是批量一起執(zhí)行,為了不讓某一條語句的錯誤影響整個執(zhí)行流程,都會加上一些類似于if not exists 的校驗,防止因為某條SQL出錯導(dǎo)致整個SQL中斷執(zhí)行。
4.2.2 手動明確字符集和排序規(guī)則
在創(chuàng)建數(shù)據(jù)庫時,強烈建議大家手動明確字符集和排序規(guī)則!!!
4.2.3 SQL語句創(chuàng)建數(shù)據(jù)庫
故完整創(chuàng)建數(shù)據(jù)庫的SQL語句如下(if not exists校驗 && character set ... collate...):
注:MySQL中允許開發(fā)者使用關(guān)鍵字命名,但是在使用的時候要用反引號把關(guān)鍵字引起來
如:create database if not exists `database` character set utf8mb4 collate utf8mb4_0900_ai_ci;
反引號在鍵盤上的位置為:ESC下邊,TAB上邊,1的左邊,要用英文字符 (`)
關(guān)鍵字:database、create、user、from、to、password......?
4.3 刪除數(shù)據(jù)庫
刪除數(shù)據(jù)庫:drop database if exists 數(shù)據(jù)庫名;
注:drop刪除語句的使用一定要謹慎,刪除數(shù)據(jù)庫是一個非常非常危險的操作,在自己的項目或是公司中千萬不要這么做,使用之前一定要慎之又慎!!!
4.4?查看當(dāng)前數(shù)據(jù)庫服務(wù)的全局默認字符集
查看當(dāng)前數(shù)據(jù)庫服務(wù)的全局默認字符集:show variables like ‘%character%’;
使用MySQL的幫助信息的SQL語句為:\??或者 ?
END