mySQL的安裝和基礎使用及語法指南
一、MySQL的安裝、配置及解除安裝
1、安裝
2、配置
3、mySQL5.1的完全解除安裝
4、MYSQL環境變數的配置
二、MySQL控制檯doc視窗的操作命令
1、對倉庫databases的操作
2、對錶格的操作
三、MySQL中資料型別和約束
1、資料型別
2、約束
四、MySQL客戶端的安裝
1、安裝
五、Navicat的基礎使用指南
1、連線到資料庫
2、對倉庫的操作:
3、對錶格的操作
4、從excel匯入資料到表格:
六、常用SQL語句:
(一)單表查詢
1、查詢語句基本格式:
2、基本用法:
3、模糊查詢(like, not like)
4、比較查詢(<,>,>=,<=,!=,<>)
5、邏輯查詢(and, or)
6、集合查詢(in,not in)
7、區間查詢(between…and…)
8、非空查詢(is null, is not null)
9、排序(order by)
10、去重(distinct)
11、分組(group by)
12、聚合函式(max(),min(),avg(),sum(),count(*))
(二)多表查詢
1、巢狀查詢
2、等值連線
3、內連線(inner join )
4、外連線
(三)資料的增、刪、改功能
1、增加表格的內容(insert into…values…)
2、刪除表格內容(delete)
3、修改表格內容(update)
4、SQL語法中的儲存過程及if語句的使用
一、MySQL的安裝、配置及解除安裝
1、安裝
我安裝的版本是mysql-essential-5.1.55-win32.msi;大部分選擇預設,繼續下一步即可,具體步驟可參見下圖:
選擇Typical典型安裝即可:
安裝路徑可預設也可自定義:
此處勾選上configure the MYSQL Server now可接著對MYSQL進行配置
2、配置
此處預設路經即可,也可自定義:
埠號如果選擇3306後報錯,可換下邊的其他埠號,但最好要記住自己的埠號,因為連線資料庫時需要。同時勾選上Add firewall exception for this port。
此處Character set選擇utf8:
此處為使用者密碼設定,如果後邊的Root選了就可以從其他電腦以root身份登入
點選上邊的Execute執行後至少要出現下圖的前三個勾,資料庫才能正常執行:
3、mySQL5.1的完全解除安裝
此主要給那些電腦上原本已經安裝過MYSQL後出現問題再重新安裝需對原來的安裝進行完全解除安裝的一個參考。
(1)、從控制皮膚裡的解除安裝程式中對MYSQL的主體程式進行解除安裝;
(2)、刪除MySQL資料夾下的my.ini檔案,如果備份好,可以直接將資料夾全部刪除
(3)、看看登錄檔裡這幾個地方刪除沒有
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL 目錄刪除
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL 目錄刪除
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Application/MySQL 目錄刪除
(4)、刪除此使用者資料目錄下的檔案
C:/Documents and Settings/All Users/Application Data/MySQL
如果這裡還有MySQL的檔案,必須要刪除
注意:Application Data這個資料夾是預設隱藏的,需要開啟個資料夾選擇選單欄工具→資料夾選項→檢視→隱藏檔案和資料夾 一項選上 顯示所有檔案和資料夾 確定
4、MYSQL環境變數的配置
只有配置了環境變數,才能在DOC控制檯對資料庫進行操作。
右鍵點選計算機—>屬性—>高階設定—>環境變數—>在系統變數中找到Path,選擇—>編輯—>在變數值最前邊加上 C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin;
注意分號不能少,如果MYSQL安裝時選擇的是預設路徑即可用上邊給的路徑,如果自定義了路徑則需用自己的安裝路徑,並在最後加上\bin;
新增上後點選確定。
接下來通過doc視窗進行驗證:
開始—>執行—>輸入cmd—>輸入mysql -uroot -p —>回車—>如果能出現Enter password: 提示,輸入密碼後出現如下提示即表示配置成功:
二、MySQL控制檯doc視窗的操作命令
此主要給感興趣的一個參考,也有方便學習的循序漸進,如果只想學習通過客戶端對資料庫進行操作,可跳過此部分。
1、對倉庫databases的操作
檢視所有的資料倉儲:show databases; (如下圖,新安裝的mysql一般都包含以下幾個倉庫,注意每個命令後的分號不可少)
新建倉庫: create database newname; (newname即為你自己建立的倉庫名)
刪除倉庫: drop database newname; (友情提示:系統自帶的三個倉庫最好不要刪,否則會有意想不到的事情發生)
進入倉庫:use newname; (即使用此倉庫)
2、對錶格的操作
對錶格進行操作時必須要先進入一個倉庫
檢視倉庫內的所有表格:show tables;
建立新表格:create table xxb(xingming varchar(20) primary key, nianling int not null,xingbie varchar(10) not null);
建立表格的同時必須要建立至少一個列標題(xingming和nianling都是列標題),多個列標題之間以逗號分隔;建立每個列標題時可同時新增兩個引數用於限定這一列內容的格式或要求,這兩個引數依次為:資料型別、約束(具體解釋可見後文),也可不加引數,引數之間以空格分隔。所有引數以一個圓括號包圍。
刪除一個表格:drop table xxb;
檢視一個表格的結構:desc xxb; (如果上一步執行刪除了請再建一個再檢視…)
修改表格中某一列標題屬性:alter table xxb modify xingming int;(xxb為表名,modify後跟要修改的列標題及屬性)
給xxb表增加一列:alter table xxb add jiguan varchar(30) not null;
刪除表格中的某一列:alter table xxb drop jiguan;
三、MySQL中資料型別和約束
1、資料型別
常用的資料型別:整數(int),浮點數(float),字串(char),可變字串(varchar),時間(timestamp)。
建立列標題時一般在資料型別後邊加括號對資料型別進行修飾。上邊的資料型別除了varchar之外都可以不加修飾,因為它有預設修飾。
int(2)表示兩位整數;
float(3)表示精確到小數點後三位;
char(4)表示四位的字串,如果不足四位則以空格充填;
varchar(10)表示最大10位的字串,在10以內的都可以;
2、約束
約束主要對一個列進行屬性方面的修飾,常用的約束有:
主鍵(primary key),外來鍵(foreign key),非空(not null),唯一(unique),範圍(enum),預設(defalt)
主鍵:唯一且不能為空,一般一個表格都需指定一個主鍵;
外來鍵:主要用於和主鍵關鍵,有一個外來鍵就必須在其他表存在一個相應的主鍵
非空:不能為空
唯一:可以為空,但有且最多隻能有一個為空;
範圍:指定了輸入內容的範圍,如列舉“男”、“女”;
預設:一般用於預設時間;
四、MySQL客戶端的安裝
1、安裝
此處示範的是navicat8客戶端工具的安裝。完全用預設的下一步即可,具體可參考下圖:
最後註冊時可試試此註冊碼:NAVJ-W56S-3YUU-MVHV。
五、Navicat的基礎使用指南
1、連線到資料庫
點選右上角的connection,如上圖,連線名字與資料庫無關,自定;
IP處如果mysql安裝本機則用預設的localhost即可,如果用其他伺服器上的資料庫則寫入相應的ip地址;
介面是安裝mysql時確定的,預設的為3306,如果安裝時作了修改則填自己修改的的介面號;
使用者名稱和密碼為當時自己設定的;
2、對倉庫的操作
建立新倉庫:
刪除倉庫:選中想要刪除的倉庫—>右鍵—>drop database即可
3、對錶格的操作
新建:
選中想要使用的倉庫—>雙擊—>選中Tables—>右鍵—>new table,然後根據出現的圖形介面進行相應選項的設定,下圖紅框內的選項為對錶格內容的操作,依次為:增加、插入、刪除;表格框架設定好之後點選save儲存即可
刪除:
選中想要刪除的表格—>右鍵—>delete table 即可。
4、從excel匯入資料到表格
選中想要匯入的表格—>右鍵—>import
選擇想要匯入表格的格式,最好是2007以前的xslx格式的
選擇圖中位置進行excel表格的選擇,當然也可以直接輸入檔案地址;後點選next:
在圖在紅框位置選擇要匯入的excel表格和表格內資料位置的sheet;
First row 表示從第幾格開始匯入,一般excel第一行都是名字,所以一般從2開始
到這一步將excel表格內的資料依次對應到要匯入資料庫的表格的專案列
點選上圖的start後進行匯入,如果出現下圖的Successfully提示則表示匯入成功。
5、SQL語句的寫入和執行
在Tables下邊找到Queries—>選擇—>New Query
即可在出現的視窗中寫入SQL語句,此處前邊在控制檯doc視窗的命令都可以執行。且可以只執行一部分命令,選中想要執行的語句—>右鍵—>Run Selected即可執行這部分語句(如果點選的是左上角工具欄的Run則會執行所有的語句)
如果語句沒有錯誤,則會跳轉到另一個視窗提示執行結果(可參考下圖):
六、常用SQL語句
我建立了三個表:
學生表(xsb):學號(xh)(主鍵)、姓名(xm)、性別(xb)、籍貫(jg)、班級(bj)、身份證號(sfzh)、註冊日期(zcrq)
課程表(kcb):課程號(kch)(主鍵)、課程名(kcm)
成績表(cjb):課程號(kch)(外來鍵)、學號(xh)(外來鍵)、成績(cj)
(一)單表查詢
1、查詢語句基本格式:
Select 查詢內容
from 查詢源
where 查詢條件
group by 分組
having 對groupr的補充限定,可對分組後的結果進行條件篩選
order by 對結果進行排序
2、基本用法:
(注意語句中的所有標點都必須是在英文輸入狀態下的標點)
例:查詢張三的身份證號
select sfzh
from xsb
where xm=’張三’
語句中除了select 和from是必須的之外,其他選項都是可選的;查詢多個專案用逗號分隔(如:select xm,nl),也可以將sfzh寫為sfzh as 身份證號 來改變結果顯示時的列標題。sfzh可用入“*”代替,表示查詢符合條件的所有內容(如下圖):
限定條件中’張三’如果是char或者varchar型別的資料則需要用單引號包圍,如果是int型別則不需要;
3、模糊查詢(like, not like)
將like替換等號,用”%”進行模糊欄位限定
如:查詢所有姓張的人的身份號和姓名;
select sfzh,xm
from xsb
where xm like ‘張%’
“%”也可以放在前邊(‘%張’)表示最後一個字為”張”的項,同樣也可以放在兩邊(’%張%’)表示含有‘張’字的項;
也可以用“_”來限定模糊查詢的字元數,如:’張_’,表示姓張且只有兩個字的名字;
同樣的not like表示不含有。
4、比較查詢(<,>,>=,<=,!=,<>)
主要用於對資料的判斷,!=和<>都表示不等於。
例:查詢所有年齡大於30的所有人的姓名和年齡:
select xm as 姓名,nl as 年齡
from xsb
where nl>30
5、邏輯查詢(and, or)
主要用於多個條件的同時使用,and表示必須同時成立,or表示至少有一個成立
例:查詢所有姓張和年齡小於30的人的姓名:
select xm
from xsb
where xm like ‘張%’ and nl<30
6、集合查詢(in,not in)
表示條件符合某個給定集合的結果,在一定程度上和or類似
例:查詢張三和李四的籍貫:
select jg,xm
from xsb
where xm in ('張三','李四')
7、區間查詢(between…and…)
一般用於限定兩個資料之間的條件,如between 30 and 60
8、非空查詢(is null, is not null)
條件為是否為空,如限定查詢年齡為空的項: nl is null
9、排序(order by)
排序放在語句的最後,by後跟以哪一項排序,可以再加上desc表示按降序排,同樣的asc表示升序,不過可以不定asc,因為排序預設的就是按升序排;
列:查詢所有人的姓名和年齡並按年齡的降序排列
select xm,nl
from xsb
order by nl desc
10、去重(distinct)
distinct 後接以什麼項為標準進行去重,如果有多個項,以逗號分隔,且要那多個項同時都重複才執行去重;
例:將學生表中的所有人以班級項進行去重
select distinct bj
from xsb
11、分組(group by)
group by與distinct 功能類似,都是將所有相同的項放在一起,不過distinct 只保留這相同的同的一項,而group而保留了所有有項,以便於進行分組計數和操作,還有就是group by 所入的位置和distinct不同,放在了where 之後,具體可參考標準格式。
12、聚合函式(max(),min(),avg(),sum(),count(*))
max()找最大值,必須給定引數
min()找最小值,必須給定引數
avg()求平均值,必須給定引數
sum()求和,必須給定引數
count(*)統計項數,可不給定引數,而用*統計所有內容
例:找出3班中年齡最大人的姓名和年齡
select max(nl),xm
from xsb
where bj=’3班’
(二)多表查詢
多表查詢就是將具有主外來鍵連線的多個表進行整合查詢
1、巢狀查詢
以另一個表的查詢結查為這個表的查詢限定條件,以主外來鍵為橋樑。
例:查詢成績大於80的所有人的姓名:
select xm
from xsb
where xh in (
select xh from cjb
where cj>80)
上例中查詢的是xm,所以從xsb查詢,不過條件來源於cjb
2、等值連線
將查詢所需要的表先用主外來鍵連線起來(相當於合成一個大表),再進行查詢
同樣查詢上邊的例子:
select xm
from xsb,cjb
where xsb.xh=cjb.xh and cj>80
結果同上邊相同,多個表格來源都需要在from中體現,表格名字之間以逗號連線,主外來鍵連線作為一個條件放在where中任意位置即可。
3、內連線(inner join )
主要用於區分外連線,就是隻連線兩個表只都存在的項,合成的表格是兩個表格同時含有的主外來鍵的交集;上邊的等值連線和巢狀連線的本質都是內連線;
同樣查詢上邊的例子:
select xm
from xsb inner join cjb
on xsb.xh=cjb.xh
where cj>80
如果還有第三個表的連線,則直接在xsb.xh=cjb.xh後邊加 inner join kcb on cjb.kch=kcb.kch
4、外連線
包括左連線(left join)和右連線(right join)
語法格式和內連線一樣,左連線就是以left join左邊表格的所有項為標準為進行連線,即使右邊的表格不存在左邊表格中的某一項,也會將值設定為null進行新增;同理,右連線就是以right join 右邊的表格為標準進行連線。
例:查詢所有沒有統計到成績的人的姓名和學號
select xm,xsb.xh
from xsb left join cjb
on xsb.xh=cjb.xh
where cj is null
如果查詢的結果項中含有兩個表都含有的相同名稱的主外來鍵,則需在前邊加上表名進行查詢來源的限定,如上邊的xsb.xh。
(三)資料的增、刪、改功能
以倉庫和表格設計的修改語句可參考前邊doc視窗的命令,都是可以執行的
1、增加表格的內容(insert into…values…)
例:insert into xsb (xh,xm,xb,jg)
values(015,’趙四’,’女’,’江西’)
插入一條資料時,一個表中的約束為主鍵和非空約束的必須給定一個值,其他的則可選輸入;如查xsb後邊給了要插入引數的名字,這些名字可以是任意順序,之間以逗號分隔,下邊的值的順序要和自己自定義的資料順序一致。
前邊的xsb後邊也可以不跟列標題名,但插入的資料順序必須是表格從左到右依次的內容。如:insert into jcb
values(1,005,98)
2、刪除表格內容(delete)
從倉庫內刪除一個表格:drop table 表名
清空一個表格內的所有內容:delete from 表名
刪除其中的某幾項:delete from 表名 where 限定條件
3、修改表格內容(update)
update 表名 set 列標題名=修改值 where 查詢限定條件;
4、SQL語法中的儲存過程及if語句的使用
此可興趣學習,可參考http://www.cnblogs.com/aland-1415/p/6628045.html