Mysql 8.0 學習筆記(從安裝配置到知識學習)

前言

本篇文章基於騰訊雲CentOS 7.5環境。記錄了Mysql 8.0從安裝配置到知識點學習。
文末附資源鏈接。

一、Mysql數據庫 安裝及配置

1.Mysql簡介

MySQL是一種開放源代碼的關係型數據庫管理系統(RDBMS),使用最常用的數據庫管理語言–結構化查詢語言(SQL)進行數據庫管理。

MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載並根據個性化的需要對其進行修改。

MySQL因爲其速度、可靠性和適應性而備受關注。大多數人都認爲在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。

2.Mysql安裝

2.1 下載並添加存儲庫
yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

在這裏插入圖片描述

2.2 安裝MySQL 8.0包

與其他使用yum的軟件包一樣安裝MySQL:

yum install mysql-community-server

安裝過程中,會詢問是否導入MySQL GPG密鑰,輸入y即可。
在這裏插入圖片描述
安裝完成。

3.啓動MySQL

3.1 啓動MySQL服務並設置自啓動
systemctl enable mysqld    #設置開機啓動
systemctl start mysqld	   #啓動Mysql
3.1 檢查MySQL服務狀態
systemctl status mysqld

在這裏插入圖片描述
Active: active (running)。運行中。

4. Mysql 安全

當第一次啓動MySQL服務器時,爲MySQL根用戶生成一個臨時密碼。 您可以通過運行以下命令找到密碼:

grep 'temporary password' /var/log/mysqld.log

在這裏插入圖片描述
首先記下生成的臨時密碼,
運行mysql_secure_installation命令來提高MySQL安裝的安全性:

mysql_secure_installation

輸入臨時密碼後,系統會要求您爲root用戶設置新密碼。密碼必須至少包含8個字符並且至少包含一個大寫字母,一個小寫字母,一個數字和一個特殊字符。
在這裏插入圖片描述
該腳本還會要求您刪除匿名用戶,限制root用戶對本地計算機的訪問權限並刪除測試數據庫。 你應該對所有問題回答“y”

5.從命令行連接到MySQL

以root用戶類型登錄到MySQL服務器

mysql -u root -p

系統將提示您輸入在運行mysql_secure_installation腳本時以前設置的root密碼

一旦你輸入密碼,你將會看到如下所示的mysql shell
在這裏插入圖片描述

二、Mysql 數據庫操作

備註:Mysql命令不區分大小寫。

1.創建一個新的MySQL數據庫

創建一個數據庫mysqldata_name,實例中數據庫name爲database1

CREATE DATABASE mysqldata_name;

在這裏插入圖片描述
如果您嘗試創建一個已經存在的數據庫,您將看到以下錯誤消息:

ERROR 1007 (HY000): Can't create database 'database1'; database exists

2.使用SHOW語句找出在服務器上當前存在什麼數據庫:

SHOW DATABASES;

在這裏插入圖片描述

3.選擇你所創建的數據庫

USE MYSQLDATA;

在這裏插入圖片描述

按回車鍵出現Database changed 時說明操作成功!

4.創建一個數據庫表

CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

在這裏插入圖片描述

5.查看現在的數據庫中存在什麼表

SHOW TABLES;

在這裏插入圖片描述

6.顯示錶的結構

DESCRIBE MYTABLE;

在這裏插入圖片描述

7.往表中加入記錄

insert into MYTABLE values ("hyq","M");

在這裏插入圖片描述

8.查看所有數據

select * from my_student;

在這裏插入圖片描述

9.刪除表

drop TABLE MYTABLE;

在這裏插入圖片描述

10.清空表

delete from MYTABLE;

在這裏插入圖片描述

11.更新表中數據

update MYTABLE set sex="f" where name='hyq';

在這裏插入圖片描述

三、Mysql數據類型

1.整數類型

MySQL主要提供的整數類型有tinyint、smallint、mediumint、int、bigint,其屬性字段可以添加auto_increment自增約束條件。

下圖中列出了MySQL中的數值類型:
在這裏插入圖片描述
有的情況下定義整型的寫法是 int(N) ,這種寫法只需要記住兩點:

1)無論N等於多少,int永遠佔4個字節。

2)N表示的是顯示寬度,不足的用0補足,超過的無視長度而直接顯示整個數字,但這要整型設置了unsigned zerofill纔有效。

2.浮點類型

浮點類型有兩種,分別是單精度浮點數(float)和雙精度浮點數(double),數值類型如下:
在這裏插入圖片描述
定義浮點類型可以用(M,D)來表示,其中M稱爲精度,表示總共的位數,D稱爲標度,表示小數的位數。

3.定點類型

因爲浮點型的float、double存在精度丟失問題,即寫入數據庫的數據未必是插入數據庫的數據,而decimal無論寫入數據中的數據是多少,都不會存在精度丟失問題,這就是引入decimal類型的原因,decimal類型常見於銀行系統、互聯網金融系統等對小數點後的數字比較敏感的系統中。

decimal(M,D)的規則和float、double相同,但區別在float、double在不指定M、D時默認按照實際精度來處理,而decimal在不指定M、D時默認爲decimal(10,0)。

4.日期和時間類型

MySQL支持五種形式的日期類型:date、time、year、datetime、timestamp,用一張表格總結一下這五種日期類型:
在這裏插入圖片描述
MySQL的時間類型中datetime與timestamp兩種類型的區別:

1)datetime佔8個字節,timestamp佔4個字節。

2)由於大小的區別,datetime與timestamp能存儲的時間範圍也不同。

3)datetime默認值爲空,當插入的值爲null時,該列的值就是null;timestamp默認值不爲空,當插入的值爲null的時候,mysql會取當前時間。

4)datetime存儲的時間與時區無關,timestamp存儲的時間及顯示的時間都依賴於當前時區。

在實際工作中,一張表往往會有兩個默認字段,一個記錄創建時間而另一個記錄最新一次的更新時間,這種時候可以使用timestamp類型來實現。

5。字符串類型

字符串類型用來存儲字符串數據,還可以存儲圖片和聲音的二進制數據。字符串可以區分或者不區分大小寫的串比較,還可以進行正則表達式的匹配查找。

MySQL中的字符串類型有char、varchar、tinytext、text、mediumtext、longtext、enum、set等。

下表中列出了MySQL中的字符串數據類型,括號中的M表示可以爲其指定長度:
在這裏插入圖片描述

6.char類型

char(M)是固定長度字符串,存儲時在右側填充空格以達到指定的長度,查詢時會刪除尾部的空格。

7.varchar類型

varchar(M)是可變長度的字符串,存儲的是字符串的實際內容。

8.text類型

text也是可變長度的字符串,保存非二進制字符串,如文章內容、評論等。text類型有4種:tinytext、text、mediumtext和longtext。

9.enum類型

enum是一個字符串對象,值爲表創建時設定的枚舉值,最多可以有65535個元素。語法格式如下:

字段名 enum('值1', '值1', …, '值n')

字段名是將要定義的字段,值n指枚舉列表中第n個值。

enum類型的字段在取值時,能在指定的枚舉列表中獲取,而且一次只能取一個,如果創建的成員中有空格,尾部的空格將自動被刪除。

enum值依照列索引順序排列,並且空字符串排在非空字符串前,null值排在其他所有枚舉值前。

enum列總有一個默認值。如果將enum列聲明爲null,null值則爲該列的一個有效值,並且默認值爲null。如果enum列被聲明爲not null,其默認值爲允許的值列表的第1個元素。

10.set類型

set是一個字符串的對象,值爲表創建時規定的一列值,最多可以有64個成員。語法格式如下:

字段名 set('值1', '值2', …, '值n')

與enum類型相同,set值在內部用整數表示,列表中每個值都有一個索引編號。當創建表時,尾部空格將自動刪除。

與enum類型不同的是,enum類型的字段只能從定義的列值中選擇一個值插入,而set類型的列可從定義的列值中選擇多個字符的聯合。

如果插入set字段中的列值有重複,則mysql自動刪除重複的值。並且插入set字段的值的順序並不重要,mysql會在存入數據庫時,按照定義的順序顯示。如果插入了不正確的值,默認情況下,mysql將忽視這些值,給出警告。

11.二進制字符串類型

MySQL中的二進制字符串有BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。

下表中列出了MySQL中的二進制數據類型,括號中的M表示可以爲其指定長度:
在這裏插入圖片描述

12.bit類型

位字段類型。M表示每個值的位數,範圍爲1~64。如果M被省略,默認值爲1。如果爲bit(M)列分配的值的長度小於M位,在值的左邊用0填充。

bit數據類型用來保存位字段值,例如以二進制的形式保存數據13,13的二進制形式爲1101,在這裏需要位數至少爲4位的bit類型,即可以定義列類型爲bit(4)。大於二進制 1111 的數據是不能插入 bit(4) 類型的字段中的。

默認情況下,MySQL不可以插入超出該列允許範圍的值,因而插入數據時要確保插入的值在指定的範圍內。

13.其他類型

binary類型
binary類型的長度是固定的,指定長度後,不足最大長度的,將在它們右邊填充“\0”補齊,以達到指定長度。

varbinary類型
varbinary類型的長度是可變的,指定好長度之後,長度可以在0到最大值之間,實際佔用的空間爲字符串的實際長度加1。

blob類型
blob是一個二進制的對象,用來存儲可變數量的數據。blob類型分爲4種:tinyblob、blob、mediumblob和longblob,它們可容納值的最大長度不同。

四、Mysql學習

(一)Mysql語法大全(一)

(二)Mysql語法大全(二)

(三)MySQL 8.0參考手冊

發佈了5 篇原創文章 · 獲贊 75 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章