文章目錄
- 前言
- 一、MySQL 的相關概念介紹
- 二、Windows 下 MySQL 的配置
- 2.1、MySQL 安裝配置步驟
- 2.2、MySQL 服務的啟動、停止與卸載
- 三、MySQL 腳本的基本組成
- 四、MySQL 中的數據類型
- 4.1、數字類型
- 4.2、日期和時間
- 4.3、字符串類型
- 五、使用 MySQL 數據庫
- 5.1、登錄到 MySQL
- 5.2、創建一個數據庫
- 5.3、選擇所要操作的數據庫
- 5.3.1、在登錄數據庫時指定使用數據庫
- 5.3.2、在登錄后使用 use 語句指定數據庫
- 5.4、創建數據庫表
- 5.5、查看已創建的表
- 5.6、查看已創建的表的詳細信息
- 5.7、查看已創建的數據庫
- 六、操作 MySQL 數據庫
- 6.1、向表中插入數據
- 6.2、查詢表中的數據
- 6.2.1、查詢所有數據
- 6.2.2、按特定條件查詢數據
- 6.3、更新表中的數據
- 6.4、刪除表中的數據
- 七、創建后對表的修改操作
- 7.1、在某表中添加某列
- 7.2、修改某張表的某列
- 7.3、刪除某張表的某列
- 7.4、重命名某張表
- 7.5、刪除整張表
- 7.6、刪除整個數據庫
- 八、附錄
- 8.1、修改 root 用戶密碼
- 8.2、可視化數據庫管理工具推薦
- 總結
前言
MySQL 是一種開放源代碼的關系型數據庫管理系統(RDBMS),使用最常用的數據庫管理語言——結構化查詢語言(SQL)進行數據庫管理。大多數人都認為在不需要事務化處理的情況下,MySQL 是管理內容最好的選擇。通過本文我將帶大家從建庫到操作具體數據一步一步來上手,初學者一學就會,零基礎 MySQL 安裝及增刪改查入門。一、MySQL 的相關概念介紹
MySQL 為關系型數據庫(Relational Database Management System),這種所謂的“關系型”可以理解為“表格”的概念,一個關系型數據庫由一個或數個表格組成。
- 表頭(header):每一列的名稱。
- 列(row):具有相同數據類型的數據的集合。
- 行(col):每一行用來描述某個人/物的具體信息。
- 值(value):行的具體信息,每個值必須與該列的數據類型相同。
- 鍵(key):表中用來識別某個特定的人/物的方法,鍵的值在當前列中具有唯一性。
二、Windows 下 MySQL 的配置
以 MySQL 5.1 免安裝版為例,下載 mysql-noinstall-5.1.69-win32.zip,請點擊: 官方下載頁:http://dev.mysql.com/downloads/mysql/5.1.html#downloads。
2.1、MySQL 安裝配置步驟
- 我們將下載的 mysql-noinstall-5.1.69-win32.zip 解壓至需要安裝的位置,如:C:\Program Files。
- 在安裝文件夾下找到 my-small.ini 配置文件,將其重命名為 my.ini,打開進行編輯,在 [client] 與 [mysqld] 下均添加如下代碼:
default-character-set = gbk;
- 打開 Windows 環境變量設置,新建系統變量名 MYSQL_HOME,變量值為 MySQL 安裝目錄路徑,這里為:
C:\Program Files\mysql-5.1.69-win32
- 在環境變量的 Path 變量中添加如下變量:
;%MYSQL_HOME%\bin;
- 安裝 MySQL 服務,打開 Windows 命令提示符,進入 DOS 命令窗口,進入 MySQL 的安裝目錄的 bin 目錄,執行如下命令:
mysqld --install MySQL --defaults-file="my.ini"
如果提示 "Service successfully installed."
表示成功。
說明:如果發生錯誤 Install/Remove of the Service Denied
,解決辦法:win7 下,開始里搜索 cmd,打開 cmd.exe 程序的時候選擇“用管理員身份打開”即可。
2.2、MySQL 服務的啟動、停止與卸載
MySQL 服務的啟動、停止與卸載,在 Windows 命令提示符下運行如下命令:
- 啟動命令如下:
net start MySQL
- 停止命令如下:
net stop MySQL
- 卸載命令如下:
sc delete MySQL
三、MySQL 腳本的基本組成
與常規的腳本語言類似,MySQL 也具有一套對字符、單詞以及特殊符號的使用規定,MySQL 通過執行 SQL 腳本來完成對數據庫的操作,該腳本由一條或多條 MySQL 語句(SQL 語句 + 擴展語句)組成,保存時腳本文件后綴名一般為 .sql。在控制臺下,MySQL 客戶端也可以對語句進行單句的執行而不用保存為 .sql 文件。
- 標識符:標識符用來命名一些對象,如數據庫、表、列、變量等,以便在腳本中的其他地方引用。MySQL 標識符命名規則稍微有點繁瑣,這里我們使用萬能命名規則:標識符由字母、數字或下劃線(_)組成,且第一個字符必須是字母或下劃線。對于標識符是否區分大小寫取決于當前的操作系統,Windows 下是不敏感的,但對于大多數 linux/unix 系統來說,這些標識符大小寫是敏感的。
- 關鍵字:MySQL 的關鍵字眾多,這里不一一列出,關鍵字有自己特定的含義,盡量避免作為標識符。
- 語句:MySQL 語句是組成 MySQL 腳本的基本單位,每條語句能完成特定的操作,他是由 SQL 標準語句 + MySQL 擴展語句組成。
- 函數:MySQL 函數用來實現數據庫操作的一些高級功能,這些函數大致分為以下幾類:字符串函數、數學函數、日期時間函數、搜索函數、加密函數、信息函數。
四、MySQL 中的數據類型
MySQL 有三大類數據類型,分別為數字、日期/時間、字符串,在這三大類中又更細致的劃分了許多子類型。
4.1、數字類型
- 整數:tinyint、smallint、mediumint、int、bigint。
- 浮點數:float、double、real、decimal。
4.2、日期和時間
date、time、datetime、timestamp、year。
4.3、字符串類型
- 字符串:char、varchar。
- 文本:tinytext、text、mediumtext、longtext。
- 二進制(可用來存儲圖片、音樂等):tinyblob、blob、mediumblob、longblob。
五、使用 MySQL 數據庫
5.1、登錄到 MySQL
當 MySQL 服務已經運行時,我們可以通過 MySQL 自帶的客戶端工具登錄到 MySQL 數據庫中,首先打開命令提示符,輸入以下格式的命名:
mysql -h 主機名 -u 用戶名 -p
語法說明:
-h
:該命令用于指定客戶端所要登錄的 MySQL 主機名,登錄當前機器該參數可以省略。-u
:所要登錄的用戶名。-p
:告訴服務器將會使用一個密碼來登錄,如果所要登錄的用戶名密碼為空,可以忽略此選項。
以登錄剛剛安裝在本機的 MySQL 數據庫為例,在命令行下輸入如下命令按回車確認:
mysql -u root -p
如果安裝正確且 MySQL 正在運行,會得到以下響應:
Enter password:
若密碼存在,輸入密碼登錄,不存在則直接按回車登錄,按照本文中的安裝方法,默認 root 賬號是無密碼的。登錄成功后你將會看到如下提示語:
Welecome to the MySQL monitor...
然后命令提示符會一直以 mysql>
加一個閃爍的光標等待命令的輸入,輸入 exit
或 quit
退出登錄。
5.2、創建一個數據庫
使用 create database 語句可完成對數據庫的創建,創建命令的基本形式如下:
create database 數據庫名 [其他選項];
例如:我們需要創建一個名為 samp_db 的數據庫,實現命令如下:
create database samp_db character set gbk;
注意:為了便于在命令提示符下顯示中文,在創建時通過 character set gbk 將數據庫字符編碼指定為 gbk。
創建成功時會得到如下響應:
Query OK, 1 row affected(0.02 sec)
注意:MySQL 語句以分號(;)作為語句的結束,若在語句結尾不添加分號時,命令提示符會以 -> 提示你繼續輸入(有個別特例,但加分號是一定不會錯的)。
5.3、選擇所要操作的數據庫
要對一個數據庫進行操作,必須先選擇該數據庫,否則會提示如下錯誤:
ERROR 1046(3D000): No database selected
5.3.1、在登錄數據庫時指定使用數據庫
在登錄數據庫時指定使用數據庫,基本形式如下:
mysql -D 所選擇的數據庫名 -h 主機名 -u 用戶名 -p
例如:登錄選擇剛剛創建的數據庫 samp_db,實現命令如下:
mysql -D samp_db -u root -p
5.3.2、在登錄后使用 use 語句指定數據庫
在登錄后使用 use 語句指定數據庫,基本形式如下:
use 數據庫名;
注意:use 語句可以不加分號。
例如:執行 use samp_db
來選擇剛剛創建的數據庫,選擇成功后會有如下提示:
Database changed
5.4、創建數據庫表
使用 create table 語句可完成對表的創建,基本形式如下:
create table 表名稱(列聲明);
例如:我們以創建 students 表為例,表中將存放學號(id)、姓名(name)、性別(sex)、年齡(age)、聯系電話(tel) 這些內容,實現命令如下:
create table students(id int unsigned not null auto_increment primary key,name char(8) not null,sex char(4) not null,age tinyint unsigned not null,tel char(13) null default "-");
注意:對于一些較長的語句在命令提示符下可能容易輸錯,因此我們可以通過任何文本編輯器將語句輸入好后保存在 .sql 的文件中,通過命令提示符下的文件重定向執行執行該腳本。
可能新同學看不懂上面 SQL 語句,我們進一步分析如下:
create table tablename(columns)
為創建數據庫表的命令,列的名稱以及該列的數據類型將在括號內完成;括號內聲明了 5 列內容,id、name、sex、age、tel 為每列的名稱,后面跟的是數據類型描述,列與列的描述之間用逗號(,)隔開。
對于如下命令:
id int unsigned not null auto_increment primary key
- “id” 為列的名稱。
- “int” 指定該列的類型為 int(取值范圍為 -8388608到8388607),在后面我們又用 "unsigned"加以修飾,表示該類型為無符號型,此時該列的取值范圍為 0 到 16777215。
- “not null” 說明該列的值不能為空,必須要填,如果不指定該屬性,默認可為空。
- “auto_increment” 需在整數列中使用,其作用是在插入數據時若該列為 NULL,MySQL 將自動產生一個比現存值更大的唯一標識符值。在每張表中僅能有一個這樣的值且所在列必須為索引列。
- “primary key” 表示該列是表的主鍵,本列的值必須唯一,MySQL 將自動索引該列。
- 下面的 char(8) 表示存儲的字符長度為 8,tinyint 的取值范圍為 -127 到 128,default 屬性指定當該列值為空時的默認值。
5.5、查看已創建的表
使用 show tables 命令可查看已創建了表的名稱。
例如:查看 samp_db 數據庫創建了哪些數據表,實現命令如下:
show tables;
5.6、查看已創建的表的詳細信息
使用 describe 表名 命令可查看已創建的表的詳細信息。
例如:查看 students 表的詳細信息,實現命令如下:
describe students;
5.7、查看已創建的數據庫
可以使用 show databases 命令查看已經創建了哪些數據庫,命令如下:
show database;
六、操作 MySQL 數據庫
6.1、向表中插入數據
insert 語句可以用來將一行或多行數據插到數據庫表中,基本形式如下:
insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);
注意:其中 [] 內的內容是可選的。
例如:要給 samp_db 數據庫中的 students 表插入一條記錄,實現命令如下:
insert into students values(NULL, "王剛", "男", 20, "13811371377");
按回車鍵確認后,若提示如下提示則表示數據插入成功:
Query Ok, 1 row affected (0.05 sec)
若插入失敗,請檢查是否已選擇需要操作的數據庫。
有時我們只需要插入部分數據,或者不按照列的順序進行插入,可以使用這樣的形式進行插入,實現命令如下:
insert into students (name, sex, age) values("孫麗華", "女", 21);
6.2、查詢表中的數據
6.2.1、查詢所有數據
select 語句常用來根據一定的查詢規則到數據庫中獲取數據,基本形式如下:
select 列名稱 from 表名稱 [查詢條件];
例如:查詢 students 表中所有學生的名字和年齡,實現命令如下:
select name, age from students;
執行結果如下:
mysql> select name, age from students;
+--------+-----+
| name | age |
+--------+-----+
| 王剛 | 20 |
| 孫麗華 | 21 |
| 王永恒 | 23 |
| 鄭俊杰 | 19 |
| 陳芳 | 22 |
| 張偉朋 | 21 |
+--------+-----+
6 rows in set (0.00 sec)
mysql>
我們也可以使用通配符 * 查詢表中所有的內容,實現命令如下:
select * from students;
6.2.2、按特定條件查詢數據
where 關鍵詞用于指定查詢條件,基本形式如下:
select 列名稱 from 表名稱 where 條件;
例如:查詢 students 表中所有性別為女的信息為例,實現命令如下:
select * from students where sex="女";
where 子句不僅僅支持 “where 列名 = 值” 這種名等于值的查詢形式,對一般的比較運算的運算符都是支持的,例如 =、>、<、>=、<、!= 以及一些擴展運算符 is [not] null、in、like 等等。還可以對查詢條件使用 or 和 and 進行組合查詢。
例如:查詢 students 表中年齡在 21 歲以上的所有人信息,實現命令如下:
select * from students where age > 21;
例如:查詢 students 表中名字中帶有 “王” 字的所有人信息,實現命令如下:
select * from students where name like "%王%";
例如:查詢 students 表中 id 小于 5 且年齡大于 20 的所有人信息,實現命令如下:
select * from students where id<5 and age>20;
6.3、更新表中的數據
update 語句可用來修改表中的數據,基本形式如下:
update 表名稱 set 列名稱=新值 where 更新條件;
例如:將 students 表中 id為 5 的手機號改為默認的"-",實現命令如下:
update students set tel=default where id=5;
例如:將 students 表中所有人的年齡增加 1,實現命令如下:
update students set age=age+1;
例如:將手機號為 13288097888 的姓名改為 “張偉鵬”,年齡改為 19,實現命令如下:
update students set name="張偉鵬", age=19 where tel="13288097888";
6.4、刪除表中的數據
delete 語句用于刪除表中的數據,基本形式如下:
delete from 表名稱 where 刪除條件;
例如:刪除 students 表中 id 為 2 的行,實現命令如下:
delete from students where id=2;
例如:刪除 students 表中所有年齡小于 21 歲的數據,實現命令如下:
delete from students where age<20;
例如:刪除 students 表中的所有數據,實現命令如下:
delete from students;
七、創建后對表的修改操作
alter table 語句用于創建后對表的修改。
7.1、在某表中添加某列
在某表中添加某列,基本形式如下:
alter table 表名 add 列名 列數據類型 [after 插入位置];
例如:在 students 表的最后追加列 address,實現命令如下:
alter table students add address char(60);
例如:在 students 表名為 age 的列后插入列 birthday,實現命令如下:
alter table students add birthday date after age;
7.2、修改某張表的某列
修改某張表的某列,基本形式如下:
alter table 表名 change 列名稱 列新名稱 新數據類型;
例如:將 students 表 tel 列改名為 telphone,實現命令如下:
alter table students change tel telphone char(13) default "-";
例如:將 students 表 name 列的數據類型改為 char(16),實現命令如下:
alter table students change name name char(16) not null;
7.3、刪除某張表的某列
刪除某張表的某列,基本形式如下:
alter table 表名 drop 列名稱;
例如:刪除 students 表的 birthday 列,實現命令如下:
alter table students drop birthday;
7.4、重命名某張表
重命名某張表,基本形式如下:
alter table 表名 rename 新表名;
例如:重命名 students 表為 workmates,實現命令如下:
alter table students rename workmates;
7.5、刪除整張表
刪除整張表,基本形式如下:
drop table 表名;
例如:刪除 workmates 表,實現命令如下:
drop table workmates;
7.6、刪除整個數據庫
刪除整個數據庫,基本形式如下:
drop database 數據庫名;
例如:刪除名為 samp_db 的數據庫,實現代碼如下:
drop database samp_db;
八、附錄
8.1、修改 root 用戶密碼
按照本文的安裝方式,root 用戶默認是沒有密碼的,重設 root 密碼的方式也較多。這里僅介紹一種較常用的方式,使用 mysqladmin 方式。
打開命令提示符界面,在 DOS 下進入目錄 mysql\bin,執行如下命令:
mysqladmin -u root -p password 新密碼
執行后提示輸入舊密碼完成密碼修改,當舊密碼為空時直接按回車鍵確認即可。
8.2、可視化數據庫管理工具推薦
在這里為大家推薦兩款我覺得不錯的可視化管理工具:MySQL Workbench、Navicat Premium。
感興趣的同學請點擊:
- 《數據庫管理工具:全網最全,MySQL 數據庫圖形化管理界面應用 Navicat Premium 使用教程》
- 《數據庫管理工具:如何使用 Navicat Premium 轉儲(導出)和運行(導入)*.sql 文件?》
總結
本文適合零基礎的同學初學 MySQL 數據庫,從安裝建庫、操作具體數據到卸載數據庫一應俱全,同時總結了一些常用的 MySQL 命令,希望本文能對你上手 MySQL 數據庫有所幫助,更多關于 MySQL 數據庫的文章也歡迎大家前往我的博客查看。我是白鹿,一個不懈奮斗的程序猿。望本文能對你有所裨益,歡迎大家的一鍵三連!若有其他問題、建議或者補充可以留言在文章下方,感謝大家的支持!