MySQL基礎筆記

擬把疏狂發表於2020-02-14

如有錯誤,懇請告知。非常感謝!

環境(相關下載、配置):
phpstudy7.0.9
Apache2.4.39
MySQL5.7.26
phpMyAdmin4.8.5
此文在Windows10下實驗並且假設以上環境均準備好。

如何開啟安裝好的MySQL命令列?

如下圖所示。開啟phpstudy的安裝目錄,開啟Extensions目錄,開啟MySQL5.7.26檔案,開啟bin檔案,在上方的路徑輸入cmd。

Alt
然後如下圖所示,再輸入mysql -uroot -p,輸入密碼,OK。

Alt
補充:

  1. 安裝目錄裡面會有一個名為data的檔案,這個檔案是資料庫,一個資料庫一個目錄。
  2. 有幾個字尾名為.err的檔案,是錯誤日誌檔案。

MySQL 為關係型資料庫, “關係型”可以理解為"表格"的概念,一個關係型資料庫由一個或數個表格組成(類比Excel表格)。
MySQL資料庫的功能需要通過SQL語言來實現。

兩個重要概念:

主鍵(primary key):主鍵是唯一的(不重複),其值可唯一區分表中每一行,且不允許為NULL值。

庫、表、行、列等之間的關係
Alt

mysql資料庫的命名規範:

最好不超過30個英文字元(小寫);
英文單詞之間最好用下劃線;
或者有意義的簡寫;
必須新增預設的編碼字元和校對規則子句(後面會有提)。

基本命令
  • 查詢資料庫
show databases;               //查詢資料庫。
show databases like '資料庫名';//資料庫太多時,查詢一部分符合規則的資料庫。
show databases like 'a%';     //查詢a開頭的資料庫。也可以用到select語句中。
  • 建立資料庫
 create database 資料庫名;

  create database 資料庫名 default character set UTF8 default collate utf8_general_ci;			
//建立一個名為abc的資料庫,預設字符集為UTF8,預設排序規則utf8_general_ci(不區分大小寫)。也可以不用加後面,加後面的顯得規範。

create database if not exists abc1;//如果不存在就建立,存在就不建立

  • 查詢建立資料庫的語句
  • 即查該資料庫是怎麼建立的、預設字符集是什麼
show create database 資料庫名;
  • 刪除資料庫(此操作不可逆)
drop database 資料庫名;
drop database if exists 資料庫名; //如果存在側刪除。
  • 選擇/切換到某資料庫
use 資料庫名;
數值型別的概念

最常使用的資料型別:數值型別、日期/時間型別、字元/字串型別。

intinteger  //整數型,佔4個位元組,最長取值11位。
decimal        //小數點型。
timestamp      //日期型別,佔4個位元組,常用,因為節省空間。
varchar        //字元型別,變長字串,0-65535 位元組。
text           //字元型別,長文字資料,0-65 535位元組。
注意:能用 varchar 的地方不用text
  • 建立MySQL資料表要先選擇資料庫然後還需要以下資訊:表名、表欄位名、定義每個表欄位。後面例項會有詳細說明。

  • 查詢資料庫中所有資料表

show tables;
  • 展示資料表(查)
select*from 表名;
select*from 資料庫名.表名;       //不要漏了資料庫名後面的一個點。
select 欄位1,欄位2 from 資料表名; //查詢資料表中某欄位。
  • 顯示資料表欄位
describe 表名;
desc 表名;       //describe 的縮寫。
  • 新增/插入資料(增)
insert into 資料表名( 欄位1, 欄位2,... )   //指定欄位名。
      values
      (1,2,... );
                       
insert into 資料表名
     values (2,'lisi',62);
     //不指定欄位名,則新增的值的順序應和欄位在表中的順序完全一致。

insert into 資料表名
	   values
		(5,'li',9),
		(6,'han',7),
		(8,'poly',7);//同時新增多條資料。字元型需要加單引號或雙引號。
  • 刪除資料
delete from 資料表名;   //刪除表中所有資料,只剩下表欄位。
truncate table 資料表名;
delete from 資料表名 where id=1;//刪除資料表中ID為1的資料。

使用truncate語句刪除記錄後,新新增的記錄時,自動增長欄位(如 id 欄位)會預設從1開始。而使用delete刪除記錄後,新新增記錄時,自動增長欄位會從刪除時該欄位的的最大值加1開始計算(即如果原來的id最大為3,則會從4開始計算)。

  • 刪除欄位名
alter table 表名 drop 欄位名;
  • 修改資料(改)
update 資料表名 
	  set name='qwer',age=5
	  where id=1;//把id=1所在的欄位修改。
  • 修改欄位名
alter table 資料表名 change 舊欄位名 新欄位名 新資料型別;
其他命令補充:
alter database 資料庫名 character set utf8;//修改資料庫編碼格式。
select version();       //登陸後檢視版本號。
select user();          //登陸後檢視當前使用者。
select database();      //檢視當前選擇的庫的狀態。

select load_file();
用來載入檔案,需要知道絕對路徑。如果為NULL,解決辦法。

select ‘字串’ into outfile ‘絕對路徑’;
在所要求的的絕對路徑中建立新的檔案,並往裡面寫入字串(可以輸入多行)。這就要求以mysql使用者去執行時,mysql使用者必須要有對web目錄的讀寫許可權。

下面是一個例項:

Step 1:建立資料庫;
Alt注:每條命令都以英文分號 ; 結尾!

Step 2:建立一個資料表;
Alt

解釋說明:
  1. 資料表的建立的前提是必須選擇一個資料庫。回想開頭那個關係圖便可以理解——先有資料庫再有資料表,再往表裡填充行列(資料)。
  2. 資料表相當於一個表格;
  3. 表欄位名(field)相當於一般表格裡的首行裡面的名稱;
  4. 定義表欄位相當於是定義這一列的資料型別。例:定義了整數類,就只能填整數;
  5. 欄位的屬性應為 NOT NULL。因為如果輸入該欄位的資料為NULL ,就會報錯;
  6. PRIMARY KEY關鍵字用於定義列為主鍵。這樣方便查詢。
  7. AUTO_INCREMENT定義列為自增的屬性,一般用於主鍵,數值會自動加1。在上面插入資料中,沒有id 的資料,因為該欄位在建立表的時候已經設定它為 AUTO_INCREMENT(自動增加) 屬性。,所以,該欄位會自動遞增而不需要手動去設定;
  8. 箭頭標記 "-> "表示一個新行。如果一條SQL語句太長,可以回車來建立一個新行來編寫 SQL 語句。

Step 3:填充資料——增刪改查

Alt
與我們用Excel建立的表格對比:

Alt
在phpMyAdmin中:
Alt

題外話:資料庫版本很重要,當遇到某些問題且嘗試了網上方法後都無法解決時,可以嘗試去更換版本。

參考資料
[1] 菜鳥教程. https://www.runoob.com/mysql/mysql-tutorial.html
[2] admindu. https://www.cnblogs.com/dhm520/p/8671833.html
[3] 白居不易. https://www.cnblogs.com/heyangblog/p/7624645.html
[4] 魔都的天. https://blog.csdn.net/m0_37754003/article/details/82770252

相關文章