1. 程式人生 > >MySQL資料庫入門學習(多圖預警+新手向~)

MySQL資料庫入門學習(多圖預警+新手向~)

1. 前言

作者作為一名大二在校生,因為正在學習網頁設計,考慮到後臺問題,所以便自學了資料庫,可能給大家總結的不是很全,但是一些必要的點肯定會講到。現在市場上有很多圖形化的資料庫,沒有什麼可講的,讀者如果願意,自行下載研究即可,本文章講的全是在DOS環境下的一系列操作。

2. MySQL基礎知識

MySQL經常和“資料庫”連在一起讀,這很容易對新手造成誤解,認為MySQL就是一個數據庫,其實不是這樣,MySQL是資料庫的集合,MySQL裡面有很多資料庫,那麼資料是直接存在資料庫裡的嗎?並不,資料庫底下還有一個叫做資料表的儲存單元,資料表裡面才儲存資料。打個比方,好比一座大圖書館,就是MySQL,圖書館裡面分南庫,北庫,這就是資料庫,每個庫裡面的書都是放在書架上的,書架就是資料表,而放在書架上的很多本書,就是資料。這麼說,讀者應該理解了吧,所以按大小順序排個序就應該是,MySQL>資料庫>資料表>資料,所以我們接下來的內容也是按照這個順序來展開。

3. 進入MySQL

工欲善其事必先利其器,如果連MySQL如何開啟都不知道,那如何進行操作學習呢,所以接下來講解的就是,如何在DOS環境下進入MySQL。
這裡寫圖片描述

在這裡,我們首先找到MySQL的安裝路徑,找到“bin”資料夾下的“mysql.exe”,記住這個路徑,然後在DOS環境下輸入你的路徑“D:\BtSoft\WebSoft\mysql\MySQL5.7\bin\mysql -uroot -p”,這裡解釋一下後面加上“-uroot -p”的作用,因為進入MySQL是需要賬號密碼進行登陸的,賬號密碼預設都是“root”,所以當你輸完路徑之後,摁下回車,就會要求你輸入密碼。
這裡寫圖片描述

既然講到了賬號密碼,這裡就給大家補充一點,如何免密碼登陸

這裡寫圖片描述

開啟MySQL安裝的資料夾,在裡面找到一個名為“my.ini”的配置檔案,通過記事本或者其他文字編輯的方式開啟,在“[mysqld]”的下面加上一句話“skip-grant-tables”然後重啟MySQL服務即可

這裡寫圖片描述

再次進入MySQL的時候,出現“Enter password”要你輸入密碼,直接摁回車即可。然後會列出一系列MySQL的版本資訊,不用管他,現在可以看到,底下出現了一個“mysql>”接下來就可以對MySQL資料庫進行操作了

這裡寫圖片描述

4.資料庫的基本操作

1. 查詢資料庫

show databases;

下面圖片上展示的就是你當前有哪些資料庫,這裡因為作者之前建立過一些資料庫,所以讀者如果是第一次查詢,可能我圖片上的某些資料庫你沒有,這沒有關係。這裡要注意,因為資料庫不止一個,即便是剛安裝好的MySQL,裡面預設存在的資料庫也不止一個,所以是“databases”,千萬別漏了“s”。

這裡寫圖片描述

2. 建立資料庫

create database XX(資料庫名);

這裡我建立了一個名為“hello”的資料庫,顯示“OK”,表示成功

這裡寫圖片描述

在這裡給大家補充一點,建立資料庫的時候,預設的字元是”latin“,也就是拉丁文,現在讀者可能體會不到有什麼區別,等到資料表的操作的時候再講。不過這裡還是告訴大家,如何建立資料庫的時候,自己定義為什麼字元

create database XX(資料庫名) charset = (字元編碼,例如utf8);

我們平時學的中文的字元編碼是“utf-8”,但是在MySQL裡面,中文字元編碼是“utf8”,這點希望讀者注意。

建立資料庫還有一些細節性的操作,這裡也給讀者提一下。

如果我們建立已存在的資料庫,會發生什麼事呢?下面我就建立一個已經存在的“test”資料庫
這裡寫圖片描述

果然,報錯了,它告訴我,不能建立資料庫“test”,因為這個資料庫已經存在了,所以我們建立資料庫的時候判斷一下,如果不存在就建立

create database if not exists XX(資料庫名); 

這段程式碼的好處是顯而易見的,在我們這裡可能體現不出來,但如果是做專案的時候或者在企業中,資料庫非常非常多,你用肉眼看都要看花了,到底哪些資料庫已經存在了,名字被用過了?所以就可以用上面這句程式碼,下面我們用這段程式碼建立一下“test”資料庫,看會發生什麼事情
這裡寫圖片描述

看到沒,顯示“OK”,沒有報錯了,但是有一個警告,這個警告就是告訴使用者,”test“這個資料庫存在。

還有個問題,有的人建立資料庫起的名字和關鍵字相同,會發生什麼呢?(關鍵字就是MySQL中有特定作用的詞,比如說“show”、“create”)
這裡寫圖片描述

這裡英文太長了,有興趣的讀者可以自己去翻譯一下,但是這裡我們可以確實看到的是,名為“create”的這個資料庫沒有建立成功,報錯了,那如果有的人說我就想建立一個名為“create”的資料庫,怎麼辦呢?下面給出解決辦法

create database `XX`(資料庫名);(注意,這裡``是反引號,在鍵盤tab上面)

這裡寫圖片描述

3. 顯示資料庫資訊

show create database XX(資料庫名);

這裡寫圖片描述

這裡可以看到,我剛才建立的“test”資料庫,預設的字元是拉丁的,我之前建立的資料庫,我設定了它的字元是中文,所以顯示是“utf8”

4. 更改資料庫的字元編碼

show create database charset = (字元編碼,例如utf8);

5. 刪除資料庫

drop database XX(資料庫名);

下面我刪除剛建立的“hello”資料庫
這裡寫圖片描述

還是老問題,如果這個資料庫不存在,我刪除它,會發生什麼呢?
這裡寫圖片描述

很明顯,報錯了,因為不存在“a”這個資料庫,我們可以判斷一下,這個資料庫存在才刪除,下面給出程式碼。這裡就不演示了,跟建立一樣的。

drop database if exists XX (資料庫名字); 

5. 選擇資料庫
這是資料庫的最後一個基本操作,我們如果想要建立資料,必須要建立一個數據庫,然後在資料庫當中建立資料表,在資料表中進行操作,但是這麼多資料庫,計算機怎麼知道我們選擇的是哪個資料庫呢?下面給出程式碼

use XX(資料庫名);

這裡寫圖片描述

選擇資料庫在我的理解更像是“進入資料庫”,因為好比圖書館,我得進入一個某一個庫,才能進行書架和圖書的操作。

5.資料表的基本操作

資料表的基本操作全都是在選擇了資料庫的前提下,請讀者注意,下面的所有例子,都是在“test”的資料庫內的操作

1. 建立表

create table XX(表名)(
欄位1名 資料型別,
欄位2名 資料型別,
.......
欄位n名 資料型別
);

在講解程式碼之前,請讀者先想想,如果要你用Excel做一份班級成績表,你會怎麼做?肯定先有個標題吧,比方說“16級軟體一班期末成績表”,這裡的標題就相當於我們的表名。標題有了,我們得在第一行寫上“學號”、“姓名”、“總成績”吧,來告訴看這個表的人,每一列代表的什麼東西,這裡的“學號”、“姓名”、“總成績”就相當於我們的欄位名。到這裡,都這應該對這段程式碼有所瞭解了,下面我們建立一個數據表。

這裡寫圖片描述

這裡需要給大家補充一點MySQL資料型別的知識

資料型別:int 整型
         tinyint 整型(0-256decimal 浮點型(總位數,小數位數) 例如 decimal(3,1)
         char(X) 定長字元型 例如 char(10)
         varchar(X) 可變長度字元型 例如varchar(10text 大段文字
         binary 二進位制(儲存照片等)

具體的沒必要多說,只要瞭解常用的資料型別即可。現在我可以講講“Latin”和“utf8”的區別了,如果是在“Latin”字元下建立的資料表,那麼一箇中文等於兩個字元,也就相當於,如果名字是四個字,就要char(8)。但如果是在“utf8”字元下建立的資料表,一箇中文等於一個字元,如果名字是四個字,只需要char(4)就夠了。

提醒讀者一句,如果用關鍵字做欄位名或者表名,要用反引號

建立資料表還有一些欄位屬性的設定,比方說

null:空
not null:不為空
default 'XXXX':預設值
auto_increment:自動增長
primary key:主鍵(主鍵的特點,不為空,不重複,一個表只能有一個主鍵,但是一個主鍵可以由多個列組成)

這些初學者用不到,講起來很複雜,所以這裡就不講了,有興趣的讀者可以去百度自行了解。

2. 檢視所有表

show tables;

我在前面就提過,一個MySQL裡面有多個數據庫,所以,一個數據庫裡面也可以有多個表,當然,一個表裡面也可以有多個數據

這裡寫圖片描述

這裡因為我只在“test”資料庫裡建立了一個數據表“stu”,所以顯示了一個

3. 顯示建立表

show create table XX(表名);
show create table XX(表名) \G;

上面兩段程式碼都是顯示建立表,只不過顯示的樣式不同,讀者隨意選擇一種即可

show create table stu

show create table stu \G;

4. 顯示錶結構

describe(或desc) XX(表名);

顯示錶結構就會展示表中有哪些欄位,分別是什麼型別,有沒有預設值,為不為空,哪個是主鍵

這裡寫圖片描述

5. 刪除表(刪除多個表)

drop table XX(表名);
drop table XX,XX,XX......; 

上面的一句程式碼是刪除一個表,下面的程式碼是一次性刪除多個表

5.資料的基本操作

資料的操作算是整個MySQL中最複雜的部分,雖然概括起來無非就是“增刪查改”,但每一項底下包含的內容非常之多,作者在這裡只能儘量為大家解釋比較重要的操作

1. 插入資料(增加)

insert into XX(表名) (欄位1,欄位2,欄位3......) values (值1,值2,值3.......);

這裡寫圖片描述

這裡,我插入兩組資料,分別是學號為“2016101”,姓名為“李白”,成績是“83”和學號為“2016102”,姓名為“杜甫”,成績是“91”的兩位同學的資訊

這裡還需要給大家做一點補充,如果大家還記得之前我們建立資料表的時候,“id”和“name”都是varchar型,也就是字串型,字串型的資料,插入的時候就要加上””
欄位可以和資料庫中的欄位順序不一致,但是值和插入欄位的順序必須一致
插入欄位是可以省略的,這時插入的值和資料表的欄位順序和個數必須一致

2. 查詢資料(查)

這裡本來應該按照順序給大家講刪除資料的,但是因為想給的大家看一下插入資料之後,表內變成什麼樣了,讓大家加深印象,所以這裡講查詢資料,首先給大家介紹一個知識點——運算子

比較運算子 >、>=、<、<=、=(比較和賦值都是”=”)、<>(不等於)
邏輯運算子 and(與)、or(或)、非(not)

  • 查詢該表內的所有資料
select * from XX(表名);

舉個例子,我們查詢stu表下的所有資料,因為我等會講的例子涉及到“性別”,所以我提前新增了一個欄位名叫“sex”

這裡寫圖片描述

  • 查詢該表內某欄位的所有資料
select 欄位1,欄位2,欄位3......(或用"*"代替所有欄位) from XX(表名);

舉個例子,我們查詢“id”欄位底下所有的資料,那麼”id“下有哪些資料,就會展現出來

這裡寫圖片描述

  • 查詢某條件的所有資料
select * from XX(表名)where 欄位1 = 值1 and 欄位2 = 值2 and ......;

這段程式碼的意思是,從某個表中找出滿足條件一且滿足條件二的資料,例如,我們想要尋找成績等於91分,且性別為女的學生資訊

這裡寫圖片描述

這裡也可以改成,我們想尋找成績大於90分或者成績小於60分的學生資訊,那麼程式碼就應該是

select * from stu where score > 90 or score < 60;
  • 由低到高排序
select * from XX(表名) order by 欄位x asc;(預設就是升序)
  • 由高到低排序
select * from XX(表名) order by 欄位x desc;
  • 按某條件排序
select * from XX(表名) where 欄位x = 值x oreder by 欄位x asc(desc);
  • 取前n條資料
select * from XX(表名) limit n;
  • 從第n條開始(起始位置是0)取m條
select * from XX(表名) limit n,m;
  • 查詢某排序下的前n條資料
select * from XX(表名) order by 欄位x asc(desc) limit n;

這幾條語句之所以不附上例子,是因為考慮到讀者如果有耐心看到了這裡,那麼你應該基本掌握了MySQL的語法,不再需要例子去模仿,只需要告訴你使用什麼語句,所以下面的程式碼也是一樣,不再附上例子

3. 刪除資料(刪)

delete from XX(表名) where 欄位x = 值x;

4. 修改資料(改)

update XX(表名) set 欄位1 = 值1,欄位2 = 值2 where 條件;
update XX(表名) set 欄位1 = 值1;

下面一條的作用是修改某一欄位的所有值,所以不需要加條件

5.聚合函式

  • sum(); 求和 select sum(欄位x) from XX(表名);
  • avg(); 求平均值 select avg(欄位x) from XX(表名);
  • max(); 求最大值 select max(欄位x) from XX(表名);
  • min(); 求最小值 select min(欄位x) from XX(表名);
  • count(); 記錄數 select count(欄位x) from XX(表名);/select max(*) from XX(表名);
  • 在某欄位條件下使用函式 select 函式名() from XX(表名) where 欄位x = 值x;

6.結語

現在在DOS環境下使用如此繁多的程式碼操作MySQL資料庫已經不多見了,包括我們老師每次都跟我說讓我使用圖形化工具去操作MySQL,但是作為新手來說,一開始先掌握好這些基礎的,再去使用圖形化工具,能夠很好的理解每一步操作,所以這也是一個打基礎的過程。當然,作者水平有限,可能還有很多操作我沒有講到,這些都要靠讀者自己去學習,作者只是為初學者領路,入門MySQL,如有任何問題,可以加作者QQ:739616037,進行詢問。最後,感謝觀看!

相關推薦

MySQL資料庫入門學習預警+新手~

1. 前言 作者作為一名大二在校生,因為正在學習網頁設計,考慮到後臺問題,所以便自學了資料庫,可能給大家總結的不是很全,但是一些必要的點肯定會講到。現在市場上有很多圖形化的資料庫,沒有什麼可講的,讀者如果願意,自行下載研究即可,本文章講的全是在DOS環境下的一

【大資料告訴你】韓劇《今生是第一次》為什麼如此高分好評!預警

今生是第一次 樓主被韓劇《今生是第一次》圈粉,沒有自帶IP,沒有耳熟能詳的大明星,沒有知名導演和編劇,結果榮獲豆瓣9.0評分,(曾一度高達9.4),IMDB也給出了8.5分! 所以,想用資料和文字分析一下,大家對於這部劇的熱愛,到底來自於哪裡。 分析步驟.p

基於水平序的Andrew凸包演算法 最詳細的圖解預警

給出凸包的定義: 簡要說一下思路: 首先將所有點按照x從小到大(x同則y從小到大)排序 把p1,p2放入凸包,從p3開始,當新點在凸包‘前進’方向的左邊時繼續,否則依次刪除最近加入凸包的點,直到新點在左邊 輸入不能有重複點,不希望凸包邊上有點可疑將<=改為<

難道我學的是Hander?預警

等等,我想起來了。今天是學習了Hander那什麼是Hander你不會百度啊...算了    Handler:是一個訊息分發物件,進行傳送和處理訊息,並且其 Runnable 物件與一個執行緒的 MessageQueue 關聯。 作用:排程訊息,將一個任務切換到某個指定的執行緒

圖解堆演算法、連結串列、棧與佇列預警

堆演算法 什麼是堆 堆(heap),是一類特殊的資料結構的統稱。它通常被看作一棵樹的陣列物件。在佇列中,排程程式反覆提取佇列中的第一個作業並執行,因為實際情況中某些時間較短的任務卻可能需要等待很長時間才能開始執行,或者某些不短小、但很重要的作業,同樣應當擁有優先權。而堆就是為了解決此類問題而設計的資料結構。

vue.js入門學習搭建環境和測試demo

     什麼是vue.js?這是官網的解釋。     Vue.js(讀音 /vjuː/,類似於 view) 是一套構建使用者介面的漸進式框架。與其他重量級框架不同的是,Vue 採用自底向上增量開發的設計。Vue 的核心庫只關注檢視層,它不僅易於上手,還便於與第三方庫或

pydbg安裝指南,超詳細

    前段時間一直在研究OpenRCE的sulley框架,在艱難安裝過程也順便安裝了OpenRCE的Pydbg,突然發現網上對Pydbg的解釋說明不是很全,所以在此整理和詳細說明一下Pydbg的安裝過程,希望能幫助大家!測試環境是win10 64系統。 Pyd

mysql資料庫配置優化佔cpu過高問題

輸出結果顯示了有哪些執行緒在執行,可以幫助識別出有問題的查詢語句 SHOW PROCESSLIST; wait_timeout, 即睡眠連線超時秒數,如果某個連線超時,會被mysql自然終止。 SHOW GLOBAL VARIABLES LIKE 'wait_timeout

pcapy安裝教程,超詳細

    前段時間一直在研究OpenRCE的sulley框架,在艱難安裝過程也順便安裝了pcapy,突然發現網上對pcapy的解釋說明不是很全,所以在此整理和詳細說明一下pcapy的安裝過程,希望能幫助大家!測試環境是win 10 64位系統 安裝pcapy所需的

MySQL基礎入門學習【10】表刪除

clas id號 mys 更新 IT from 查詢 基礎入門 where DELETE tbl_name [.*] [, tbl_name[.*]]... FROM table_references [WHERE where_condition] 現在想把重復的

進入MySQL資料庫的大門學習筆記,有你就夠了

一、初識資料庫 1、什麼是資料庫 資料庫叫database ,簡稱DB,是長期存放在計算機內,有組織、可共享的大量資料的集合;資料庫就是存放資料的倉庫,專業的資料庫系統具有較小的資料冗餘度,較高的資料安全性,易擴充套件性。 資料庫設計原則: mysql主要優勢:一個應用對

idea中github人協同工作截篇幅較長,預警

1.目標: - 組長 完成idea上GitHub賬號的登陸 在idea上新建遠端倉庫 在GitHub上建立組織 在遠端倉庫關聯組織,新增team 給team分發許可權 - 組員 讓team中其他成員可以clone倉庫程式

mysql資料庫基礎學習總結3查詢

012.多表查詢      013.多表連線 1.多表查詢     語法:         select * from table1,table2;   

mysql資料庫基礎學習總結2DML

007.DML之insert 1.DML     資料操作語言;     DML操作的主體是表中的資料(記錄),操作分為四種(CURD) insert,update,delete,select;2.insert 語句  &

mysql資料庫基礎學習總結1基礎

001.資料庫基礎 1.什麼是資料     對客觀事物的符號表示,也是資訊的載體; 2.資料庫     用來管理資料的一個軟體;3.常見的關係型資料庫     oracle:oracle公司的資料庫;

Pytorch入門學習---- GPU的使用

DataParrallel import torch.nn as nn class DataParallelModel(nn.Module): def __init__(self):

【數據庫】9.0 MySQL入門學習——獲得數據庫和表的信息、日期計算、查詢

編輯 輸入 3.0 dog tro ron 學習 後來 spec 1.0 SELECT語句用來從數據表中檢索信息。 SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to_s

Spring AOP實現Mysql資料庫主從切換一主

設定資料庫主從切換的原因:資料庫中經常發生的是“讀多寫少”,這樣讀操作對資料庫壓力比較大,通過採用資料庫叢集方案,  一個數據庫是主庫,負責寫;其他為從庫,負責讀,從而實現讀寫分離增大資料庫的容錯率。  那麼,對資料庫的要求是:  1. 讀庫和寫庫的資料一致;  2. 寫資料

記錄學習antd design pro dva的過程,主要記錯, 預警,如有理解偏差,忘指出,多謝!

alt spa sig ant com http 答案 pro sign 問題1: 答案1: 問題2: 這個要修改state,正確寫法 存在的疑惑:為什麽不能直接修改值,非得要去dispatch一下嗎? 經過指點:為了解耦,大型項目的優點, 記錄學習antd d

MySQL資料庫入門--讀書筆記

第一章 SQL語言: 資料定義語言: create語句     :建立資料庫、資料表等 alter語句        :修改表的定義 drop語句        :刪除資料庫、刪除表等 資料操作語言: insert語句      :插入資料 update語句    :修改資