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