天涯明月刀ol|天涯明月刀迅雷下载
  1. 當前所在位置:
  2. 首頁
  3. 打魚捕魚

MySQL數據庫入門學習

2018-12-26 admin
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;
1
下面圖片上展示的就是你當前有哪些數據庫,這里因為作者之前創建過一些數據庫,所以讀者如果是第一次查詢,可能我圖片上的某些數據庫你沒有,這沒有關系。這里要注意,因為數據庫不止一個,即便是剛安裝好的MySQL,里面默認存在的數據庫也不止一個,所以是“databases”,千萬別漏了“s”。
 
 
 
2. 創建數據庫
 
create database XX(數據庫名);
1
這里我創建了一個名為“hello”的數據庫,顯示“OK”,表示成功
 
 
 
在這里給大家補充一點,創建數據庫的時候,默認的字符是”latin“,也就是拉丁文,現在讀者可能體會不到有什么區別,等到數據表的操作的時候再講。不過這里還是告訴大家,如何創建數據庫的時候,自己定義為什么字符
 
create database XX(數據庫名) charset = (字符編碼,例如utf8);
1
我們平時學的中文的字符編碼是“utf-8”,但是在MySQL里面,中文字符編碼是“utf8”,這點希望讀者注意。
 
創建數據庫還有一些細節性的操作,這里也給讀者提一下。
 
如果我們創建已存在的數據庫,會發生什么事呢?下面我就創建一個已經存在的“test”數據庫 
 
 
果然,報錯了,它告訴我,不能創建數據庫“test”,因為這個數據庫已經存在了,所以我們創建數據庫的時候判斷一下,如果不存在就創建
 
create database if not exists XX(數據庫名); 
1
這段代碼的好處是顯而易見的,在我們這里可能體現不出來,但如果是做項目的時候或者在企業中,數據庫非常非常多,你用肉眼看都要看花了,到底哪些數據庫已經存在了,名字被用過了?所以就可以用上面這句代碼,下面我們用這段代碼創建一下“test”數據庫,看會發生什么事情 
 
 
看到沒,顯示“OK”,沒有報錯了,但是有一個警告,這個警告就是告訴用戶,”test“這個數據庫存在。
 
還有個問題,有的人創建數據庫起的名字和關鍵字相同,會發生什么呢?(關鍵字就是MySQL中有特定作用的詞,比如說“show”、“create”) 
 
 
這里英文太長了,有興趣的讀者可以自己去翻譯一下,但是這里我們可以確實看到的是,名為“create”的這個數據庫沒有創建成功,報錯了,那如果有的人說我就想創建一個名為“create”的數據庫,怎么辦呢?下面給出解決辦法
 
create database `XX`(數據庫名);(注意,這里``是反引號,在鍵盤tab上面)
1
 
 
3. 顯示數據庫信息
 
show create database XX(數據庫名);
1
 
 
這里可以看到,我剛才創建的“test”數據庫,默認的字符是拉丁的,我之前創建的數據庫,我設定了它的字符是中文,所以顯示是“utf8”
 
4. 更改數據庫的字符編碼
 
show create database charset = (字符編碼,例如utf8);
1
5. 刪除數據庫
 
drop database XX(數據庫名);
1
下面我刪除剛創建的“hello”數據庫 
 
 
還是老問題,如果這個數據庫不存在,我刪除它,會發生什么呢? 
 
 
很明顯,報錯了,因為不存在“a”這個數據庫,我們可以判斷一下,這個數據庫存在才刪除,下面給出代碼。這里就不演示了,跟創建一樣的。
 
drop database if exists XX (數據庫名字); 
1
5. 選擇數據庫 
這是數據庫的最后一個基本操作,我們如果想要創建數據,必須要創建一個數據庫,然后在數據庫當中創建數據表,在數據表中進行操作,但是這么多數據庫,計算機怎么知道我們選擇的是哪個數據庫呢?下面給出代碼
 
use XX(數據庫名);
1
 
 
選擇數據庫在我的理解更像是“進入數據庫”,因為好比圖書館,我得進入一個某一個庫,才能進行書架和圖書的操作。
 
5.數據表的基本操作
數據表的基本操作全都是在選擇了數據庫的前提下,請讀者注意,下面的所有例子,都是在“test”的數據庫內的操作
 
1. 創建表
 
create table XX(表名)(
字段1名 數據類型,
字段2名 數據類型,
.......
字段n名 數據類型
);
1
2
3
4
5
6
在講解代碼之前,請讀者先想想,如果要你用Excel做一份班級成績表,你會怎么做?肯定先有個標題吧,比方說“16級軟件一班期末成績表”,這里的標題就相當于我們的表名。標題有了,我們得在第一行寫上“學號”、“姓名”、“總成績”吧,來告訴看這個表的人,每一列代表的什么東西,這里的“學號”、“姓名”、“總成績”就相當于我們的字段名。到這里,都這應該對這段代碼有所了解了,下面我們創建一個數據表。
 
 
 
這里需要給大家補充一點MySQL數據類型的知識
 
數據類型:int 整型
         tinyint 整型(0-256) 
         decimal 浮點型(總位數,小數位數) 例如 decimal(3,1)
         char(X) 定長字符型 例如 char(10)
         varchar(X) 可變長度字符型 例如varchar(10)
         text 大段文本
         binary 二進制(存儲照片等)
1
2
3
4
5
6
7
具體的沒必要多說,只要了解常用的數據類型即可。現在我可以講講“Latin”和“utf8”的區別了,如果是在“Latin”字符下創建的數據表,那么一個中文等于兩個字符,也就相當于,如果名字是四個字,就要char(8)。但如果是在“utf8”字符下創建的數據表,一個中文等于一個字符,如果名字是四個字,只需要char(4)就夠了。
 
提醒讀者一句,如果用關鍵字做字段名或者表名,要用反引號
 
創建數據表還有一些字段屬性的設置,比方說
 
null:空
not null:不為空
default 'XXXX':默認值
auto_increment:自動增長
primary key:主鍵(主鍵的特點,不為空,不重復,一個表只能有一個主鍵,但是一個主鍵可以由多個列組成)
1
2
3
4
5
這些初學者用不到,講起來很復雜,所以這里就不講了,有興趣的讀者可以去百度自行了解。
 
2. 查看所有表
 
show tables;
1
我在前面就提過,一個MySQL里面有多個數據庫,所以,一個數據庫里面也可以有多個表,當然,一個表里面也可以有多個數據
 
 
 
這里因為我只在“test”數據庫里創建了一個數據表“stu”,所以顯示了一個
 
3. 顯示創建表
 
show create table XX(表名);
show create table XX(表名) \G;
1
2
上面兩段代碼都是顯示創建表,只不過顯示的樣式不同,讀者隨意選擇一種即可
 
 
 
 
 
4. 顯示表結構
 
describe(或desc) XX(表名);
1
顯示表結構就會展示表中有哪些字段,分別是什么類型,有沒有默認值,為不為空,哪個是主鍵
 
 
 
5. 刪除表(刪除多個表)
 
drop table XX(表名);
drop table XX,XX,XX......; 
1
2
上面的一句代碼是刪除一個表,下面的代碼是一次性刪除多個表
 
5.數據的基本操作
數據的操作算是整個MySQL中最復雜的部分,雖然概括起來無非就是“增刪查改”,但每一項底下包含的內容非常之多,作者在這里只能盡量為大家解釋比較重要的操作
 
1. 插入數據(增加)
 
insert into XX(表名) (字段1,字段2,字段3......) values (值1,值2,值3.......);
1
 
 
這里,我插入兩組數據,分別是學號為“2016101”,姓名為“李白”,成績是“83”和學號為“2016102”,姓名為“杜甫”,成績是“91”的兩位同學的信息
 
這里還需要給大家做一點補充,如果大家還記得之前我們創建數據表的時候,“id”和“name”都是varchar型,也就是字符串型,字符串型的數據,插入的時候就要加上”” 
字段可以和數據庫中的字段順序不一致,但是值和插入字段的順序必須一致 
插入字段是可以省略的,這時插入的值和數據表的字段順序和個數必須一致
 
2. 查詢數據(查)
 
這里本來應該按照順序給大家講刪除數據的,但是因為想給的大家看一下插入數據之后,表內變成什么樣了,讓大家加深印象,所以這里講查詢數據,首先給大家介紹一個知識點——運算符
 
比較運算符 >、>=、<、<=、=(比較和賦值都是”=”)、<>(不等于) 
邏輯運算符 and(與)、or(或)、非(not)
 
查詢該表內的所有數據
select * from XX(表名);
1
舉個例子,我們查詢stu表下的所有數據,因為我等會講的例子涉及到“性別”,所以我提前新增了一個字段名叫“sex”
 
 
 
查詢該表內某字段的所有數據
select 字段1,字段2,字段3......(或用"*"代替所有字段) from XX(表名);
1
舉個例子,我們查詢“id”字段底下所有的數據,那么”id“下有哪些數據,就會展現出來
 
 
 
查詢某條件的所有數據
select * from XX(表名)where 字段1 = 值1 and 字段2 = 值2 and ......;
1
這段代碼的意思是,從某個表中找出滿足條件一且滿足條件二的數據,例如,我們想要尋找成績等于91分,且性別為女的學生信息
 
 
 
這里也可以改成,我們想尋找成績大于90分或者成績小于60分的學生信息,那么代碼就應該是
 
select * from stu where score > 90 or score < 60;
1
由低到高排序
select * from XX(表名) order by 字段x asc;(默認就是升序)
1
由高到低排序
select * from XX(表名) order by 字段x desc;
1
按某條件排序
select * from XX(表名) where 字段x = 值x oreder by 字段x asc(desc);
1
取前n條數據
select * from XX(表名) limit n;
1
從第n條開始(起始位置是0)取m條
select * from XX(表名) limit n,m;
1
查詢某排序下的前n條數據
select * from XX(表名) order by 字段x asc(desc) limit n;
1
這幾條語句之所以不附上例子,是因為考慮到讀者如果有耐心看到了這里,那么你應該基本掌握了MySQL的語法,不再需要例子去模仿,只需要告訴你使用什么語句,所以下面的代碼也是一樣,不再附上例子
 
3. 刪除數據(刪)
 
delete from XX(表名) where 字段x = 值x;
1
4. 修改數據(改)
 
update XX(表名) set 字段1 = 值1,字段2 = 值2 where 條件;
update XX(表名) set 字段1 = 值1;
1
2
下面一條的作用是修改某一字段的所有值,所以不需要加條件
 
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,但是作為新手來說,一開始先掌握好這些基礎的,再去使用圖形化工具,能夠很好的理解每一步操作,所以這也是一個打基礎的過程。
--------------------- 
作者:數學家是我理想 
來源:CSDN 
原文:https://blog.csdn.net/qq_37236745/article/details/78694768 
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
捕魚駕到 天涯明月刀ol