MySQL基礎筆記
如有錯誤,懇請告知。非常感謝!
環境(相關下載、配置):
phpstudy7.0.9
Apache2.4.39
MySQL5.7.26
phpMyAdmin4.8.5
此文在Windows10下實驗並且假設以上環境均準備好。
如何開啟安裝好的MySQL命令列?
如下圖所示。開啟phpstudy的安裝目錄,開啟Extensions目錄,開啟MySQL5.7.26檔案,開啟bin檔案,在上方的路徑輸入cmd。
然後如下圖所示,再輸入mysql -uroot -p
,輸入密碼,OK。
補充:
- 安裝目錄裡面會有一個名為data的檔案,這個檔案是資料庫,一個資料庫一個目錄。
- 有幾個字尾名為.err的檔案,是錯誤日誌檔案。
MySQL 為關係型資料庫, “關係型”可以理解為"表格"的概念,一個關係型資料庫由一個或數個表格組成(類比Excel表格)。
MySQL資料庫的功能需要通過SQL語言來實現。
兩個重要概念:
主鍵(primary key):主鍵是唯一的(不重複),其值可唯一區分表中每一行,且不允許為NULL值。
庫、表、行、列等之間的關係:
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 資料庫名;
數值型別的概念
最常使用的資料型別:數值型別、日期/時間型別、字元/字串型別。
int 或integer //整數型,佔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:建立資料庫;
注:每條命令都以英文分號 ; 結尾!
Step 2:建立一個資料表;
解釋說明:
- 資料表的建立的前提是必須選擇一個資料庫。回想開頭那個關係圖便可以理解——先有資料庫再有資料表,再往表裡填充行列(資料)。
- 資料表相當於一個表格;
- 表欄位名(field)相當於一般表格裡的首行裡面的名稱;
- 定義表欄位相當於是定義這一列的資料型別。例:定義了整數類,就只能填整數;
- 欄位的屬性應為 NOT NULL。因為如果輸入該欄位的資料為NULL ,就會報錯;
- PRIMARY KEY關鍵字用於定義列為主鍵。這樣方便查詢。
- AUTO_INCREMENT定義列為自增的屬性,一般用於主鍵,數值會自動加1。在上面插入資料中,沒有id 的資料,因為該欄位在建立表的時候已經設定它為 AUTO_INCREMENT(自動增加) 屬性。,所以,該欄位會自動遞增而不需要手動去設定;
- 箭頭標記 "-> "表示一個新行。如果一條SQL語句太長,可以回車來建立一個新行來編寫 SQL 語句。
Step 3:填充資料——增刪改查
與我們用Excel建立的表格對比:
在phpMyAdmin中:
題外話:資料庫版本很重要,當遇到某些問題且嘗試了網上方法後都無法解決時,可以嘗試去更換版本。
參考資料
[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
相關文章
- MySQL學習筆記【基礎篇】MySql筆記
- MySQL資料庫基礎筆記MySql資料庫筆記
- Nginx基礎筆記Nginx筆記
- JavaScript基礎筆記JavaScript筆記
- django基礎筆記Django筆記
- swift 基礎筆記Swift筆記
- HTML基礎筆記HTML筆記
- 學習筆記【MySQL基礎操作-第一節:MySQL基本操作】筆記MySql
- 資料庫學習筆記 - MySQL基礎知識資料庫筆記MySql
- mysql優化筆記--基礎知識整理回顧MySql優化筆記
- Spring基礎筆記Spring筆記
- PowerShell 筆記 - 基礎篇筆記
- javascript基礎使用筆記JavaScript筆記
- Jquery基礎筆記一jQuery筆記
- TensorRT基礎筆記筆記
- Activiti 基礎概念 筆記筆記
- Java基礎筆記17Java筆記
- Java基礎筆記20Java筆記
- Java基礎筆記15Java筆記
- EJB基礎筆記(一)筆記
- EJB基礎筆記(二)筆記
- nginx 基礎命令筆記Nginx筆記
- java基礎 -反射筆記Java反射筆記
- Golang 基礎入門筆記Golang筆記
- React筆記:React基礎(2)React筆記
- CSS 基礎學習筆記CSS筆記
- node基礎學習筆記筆記
- Linux awk基礎筆記Linux筆記
- JavaFx基礎操作【個人筆記】Java筆記
- Ty-JUC基礎筆記筆記
- python基礎筆記1Python筆記
- Web基礎學習筆記Web筆記
- 《SQL基礎教程》筆記(3)SQL筆記
- Redis基礎學習筆記Redis筆記
- Angular基礎筆記(架構)Angular筆記架構
- Shell 學習筆記 基礎筆記
- java基礎筆記之staticJava筆記
- 1.js 基礎筆記JS筆記