MYSQL 快速入門

轉(zhuǎn)載地址http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html#c1

目錄

一、MySQL的相關(guān)概念介紹

二、Windows下MySQL的配置

配置步驟

MySQL服務(wù)的啟動(dòng)、停止與卸載

三、MySQL腳本的基本組成

四、MySQL中的數(shù)據(jù)類型

五、使用MySQL數(shù)據(jù)庫(kù)

登錄到MySQL

創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)

選擇所要操作的數(shù)據(jù)庫(kù)

創(chuàng)建數(shù)據(jù)庫(kù)表

六、操作MySQL數(shù)據(jù)庫(kù)

向表中插入數(shù)據(jù)

查詢表中的數(shù)據(jù)

更新表中的數(shù)據(jù)

刪除表中的數(shù)據(jù)

七、創(chuàng)建后的修改

添加列

修改列

刪除列

重命名表

刪除整張表

刪除整個(gè)數(shù)據(jù)庫(kù)

八、附錄

修改 root 用戶密碼

可視化管理工具 MySQL Workbench

MySQL的相關(guān)概念介紹

MySQL 為關(guān)系型數(shù)據(jù)庫(kù)(Relational Database Management System), 這種所謂的"關(guān)系型"可以理解為"表格"的概念, 一個(gè)關(guān)系型數(shù)據(jù)庫(kù)由一個(gè)或數(shù)個(gè)表格組成, 如圖所示的一個(gè)表格:

表頭(header): 每一列的名稱;

列(row): 具有相同數(shù)據(jù)類型的數(shù)據(jù)的集合;

行(col): 每一行用來描述某個(gè)人/物的具體信息;

值(value): 行的具體信息, 每個(gè)值必須與該列的數(shù)據(jù)類型相同;

鍵(key): 表中用來識(shí)別某個(gè)特定的人\物的方法, 鍵的值在當(dāng)前列中具有唯一性。

Windows下MySQL的配置

以 MySQL 5.1 免安裝版為例, 下載 mysql-noinstall-5.1.69-win32.zip ( 官方下載頁:http://dev.mysql.com/downloads/mysql/5.1.html#downloads)

配置步驟:

1. 將下載的 mysql-noinstall-5.1.69-win32.zip 解壓至需要安裝的位置, 如: C:\Program Files;

2. 在安裝文件夾下找到 my-small.ini 配置文件, 將其重命名為 my.ini , 打開進(jìn)行編輯, 在 [client] 與 [mysqld] 下均添加一行:default-character-set = gbk

3. 打開 Windows 環(huán)境變量設(shè)置, 新建變量名 MYSQL_HOME , 變量值為 MySQL 安裝目錄路徑, 這里為 C:\Program Files\mysql-5.1.69-win32

4. 在 環(huán)境變量 的 Path 變量中添加;%MYSQL_HOME%\bin;

5. 安裝 MySQL 服務(wù), 打開Windows命令提示符, 執(zhí)行命令:mysqld --install MySQL --defaults-file="my.ini"提示"Service successfully installed."表示成功;

MySQL服務(wù)的啟動(dòng)、停止與卸載

在 Windows 命令提示符下運(yùn)行:

啟動(dòng):net start MySQL

停止:net stop MySQL

卸載:sc delete MySQL

MySQL腳本的基本組成

與常規(guī)的腳本語言類似, MySQL 也具有一套對(duì)字符、單詞以及特殊符號(hào)的使用規(guī)定, MySQL 通過執(zhí)行 SQL 腳本來完成對(duì)數(shù)據(jù)庫(kù)的操作, 該腳本由一條或多條MySQL語句(SQL語句 + 擴(kuò)展語句)組成, 保存時(shí)腳本文件后綴名一般為 .sql。在控制臺(tái)下, MySQL 客戶端也可以對(duì)語句進(jìn)行單句的執(zhí)行而不用保存為.sql文件。

標(biāo)識(shí)符

標(biāo)識(shí)符用來命名一些對(duì)象, 如數(shù)據(jù)庫(kù)、表、列、變量等, 以便在腳本中的其他地方引用。MySQL標(biāo)識(shí)符命名規(guī)則稍微有點(diǎn)繁瑣, 這里我們使用萬能命名規(guī)則: 標(biāo)識(shí)符由字母、數(shù)字或下劃線(_)組成, 且第一個(gè)字符必須是字母或下劃線。

對(duì)于標(biāo)識(shí)符是否區(qū)分大小寫取決于當(dāng)前的操作系統(tǒng), Windows下是不敏感的, 但對(duì)于大多數(shù) linux\unix 系統(tǒng)來說, 這些標(biāo)識(shí)符大小寫是敏感的。

關(guān)鍵字:

MySQL的關(guān)鍵字眾多, 這里不一一列出, 在學(xué)習(xí)中學(xué)習(xí)。 這些關(guān)鍵字有自己特定的含義, 盡量避免作為標(biāo)識(shí)符。

語句:

MySQL語句是組成MySQL腳本的基本單位, 每條語句能完成特定的操作, 他是由 SQL 標(biāo)準(zhǔn)語句 + MySQL 擴(kuò)展語句組成。

函數(shù):

MySQL函數(shù)用來實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作的一些高級(jí)功能, 這些函數(shù)大致分為以下幾類: 字符串函數(shù)、數(shù)學(xué)函數(shù)、日期時(shí)間函數(shù)、搜索函數(shù)、加密函數(shù)、信息函數(shù)。

MySQL中的數(shù)據(jù)類型

MySQL有三大類數(shù)據(jù)類型, 分別為數(shù)字、日期\時(shí)間、字符串, 這三大類中又更細(xì)致的劃分了許多子類型:

數(shù)字類型

整數(shù): tinyint、smallint、mediumint、int、bigint

浮點(diǎn)數(shù): float、double、real、decimal

日期和時(shí)間: date、time、datetime、timestamp、year

字符串類型

字符串: char、varchar

文本: tinytext、text、mediumtext、longtext

二進(jìn)制(可用來存儲(chǔ)圖片、音樂等): tinyblob、blob、mediumblob、longblob

這里不能詳細(xì)對(duì)這些類型進(jìn)行介紹了, 篇幅可能會(huì)很長(zhǎng), 詳細(xì)介紹參見:《MySQL數(shù)據(jù)類型》:http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.html

使用MySQL數(shù)據(jù)庫(kù)

登錄到MySQL

當(dāng) MySQL 服務(wù)已經(jīng)運(yùn)行時(shí), 我們可以通過MySQL自帶的客戶端工具登錄到MySQL數(shù)據(jù)庫(kù)中, 首先打開命令提示符, 輸入以下格式的命名:

mysql -h 主機(jī)名 -u 用戶名 -p

-h :該命令用于指定客戶端所要登錄的MySQL主機(jī)名, 登錄當(dāng)前機(jī)器該參數(shù)可以省略;

-u :所要登錄的用戶名;

-p :告訴服務(wù)器將會(huì)使用一個(gè)密碼來登錄, 如果所要登錄的用戶名密碼為空, 可以忽略此選項(xiàng)。

以登錄剛剛安裝在本機(jī)的MySQL數(shù)據(jù)庫(kù)為例, 在命令行下輸入 mysql -u root -p 按回車確認(rèn), 如果安裝正確且MySQL正在運(yùn)行, 會(huì)得到以下響應(yīng):

Enter password:

若密碼存在, 輸入密碼登錄, 不存在則直接按回車登錄, 按照本文中的安裝方法, 默認(rèn) root 賬號(hào)是無密碼的。登錄成功后你將會(huì)看到 Welecome to the MySQL monitor... 的提示語。

然后命令提示符會(huì)一直以 mysql> 加一個(gè)閃爍的光標(biāo)等待命令的輸入, 輸入 exit 或 quit 退出登錄。

創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)

使用 create database 語句可完成對(duì)數(shù)據(jù)庫(kù)的創(chuàng)建, 創(chuàng)建命令的格式如下:

create database 數(shù)據(jù)庫(kù)名 [其他選項(xiàng)];

例如我們需要?jiǎng)?chuàng)建一個(gè)名為 samp_db 的數(shù)據(jù)庫(kù), 在命令行下執(zhí)行以下命令:

create database samp_db character set gbk;

為了便于在命令提示符下顯示中文, 在創(chuàng)建時(shí)通過 character set gbk 將數(shù)據(jù)庫(kù)字符編碼指定為 gbk。創(chuàng)建成功時(shí)會(huì)得到 Query OK, 1 row affected(0.02 sec) 的響應(yīng)。

注意:MySQL語句以分號(hào)(;)作為語句的結(jié)束, 若在語句結(jié)尾不添加分號(hào)時(shí), 命令提示符會(huì)以 -> 提示你繼續(xù)輸入(有個(gè)別特例, 但加分號(hào)是一定不會(huì)錯(cuò)的);

提示:可以使用 show databases; 命令查看已經(jīng)創(chuàng)建了哪些數(shù)據(jù)庫(kù)。

選擇所要操作的數(shù)據(jù)庫(kù)

要對(duì)一個(gè)數(shù)據(jù)庫(kù)進(jìn)行操作, 必須先選擇該數(shù)據(jù)庫(kù), 否則會(huì)提示錯(cuò)誤:

ERROR 1046(3D000): No database selected

兩種方式對(duì)數(shù)據(jù)庫(kù)進(jìn)行使用的選擇:

一:在登錄數(shù)據(jù)庫(kù)時(shí)指定, 命令:mysql -D 所選擇的數(shù)據(jù)庫(kù)名 -h 主機(jī)名 -u 用戶名 -p

例如登錄時(shí)選擇剛剛創(chuàng)建的數(shù)據(jù)庫(kù): mysql -D samp_db -u root -p

二:在登錄后使用 use 語句指定, 命令:use 數(shù)據(jù)庫(kù)名;

use 語句可以不加分號(hào), 執(zhí)行 use samp_db 來選擇剛剛創(chuàng)建的數(shù)據(jù)庫(kù), 選擇成功后會(huì)提示: Database changed

創(chuàng)建數(shù)據(jù)庫(kù)表

使用 create table 語句可完成對(duì)表的創(chuàng)建, create table 的常見形式:

create table 表名稱(列聲明);

以創(chuàng)建 students 表為例, 表中將存放 學(xué)號(hào)(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 "-"

);

對(duì)于一些較長(zhǎng)的語句在命令提示符下可能容易輸錯(cuò), 因此我們可以通過任何文本編輯器將語句輸入好后保存為 createtable.sql 的文件中, 通過命令提示符下的文件重定向執(zhí)行執(zhí)行該腳本。

打開命令提示符, 輸入:mysql -D samp_db -u root -p < createtable.sql

(提示: 1.如果連接遠(yuǎn)程主機(jī)請(qǐng)加上 -h 指令; 2. createtable.sql 文件若不在當(dāng)前工作目錄下需指定文件的完整路徑。)

語句解說:

create table tablename(columns) 為創(chuàng)建數(shù)據(jù)庫(kù)表的命令, 列的名稱以及該列的數(shù)據(jù)類型將在括號(hào)內(nèi)完成;

括號(hào)內(nèi)聲明了5列內(nèi)容, id、name、sex、age、tel為每列的名稱, 后面跟的是數(shù)據(jù)類型描述, 列與列的描述之間用逗號(hào)(,)隔開;

以 "id int unsigned not null auto_increment primary key" 行進(jìn)行介紹:

"id" 為列的名稱;

"int" 指定該列的類型為 int(取值范圍為 -8388608到8388607), 在后面我們又用 "unsigned" 加以修飾, 表示該類型為無符號(hào)型, 此時(shí)該列的取值范圍為 0到16777215;

"not null" 說明該列的值不能為空, 必須要填, 如果不指定該屬性, 默認(rèn)可為空;

"auto_increment" 需在整數(shù)列中使用, 其作用是在插入數(shù)據(jù)時(shí)若該列為 NULL, MySQL將自動(dòng)產(chǎn)生一個(gè)比現(xiàn)存值更大的唯一標(biāo)識(shí)符值。在每張表中僅能有一個(gè)這樣的值且所在列必須為索引列。

"primary key" 表示該列是表的主鍵, 本列的值必須唯一, MySQL將自動(dòng)索引該列。

下面的 char(8) 表示存儲(chǔ)的字符長(zhǎng)度為8, tinyint的取值范圍為 -127到128, default 屬性指定當(dāng)該列值為空時(shí)的默認(rèn)值。

更多的數(shù)據(jù)類型請(qǐng)參閱《MySQL數(shù)據(jù)類型》:http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.html

提示:1. 使用 show tables; 命令可查看已創(chuàng)建了表的名稱; 2. 使用 describe 表名; 命令可查看已創(chuàng)建的表的詳細(xì)信息。

操作MySQL數(shù)據(jù)庫(kù)

向表中插入數(shù)據(jù)

insert 語句可以用來將一行或多行數(shù)據(jù)插到數(shù)據(jù)庫(kù)表中, 使用的一般形式如下:

insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);

其中 [] 內(nèi)的內(nèi)容是可選的, 例如, 要給 samp_db 數(shù)據(jù)庫(kù)中的 students 表插入一條記錄, 執(zhí)行語句:

insert into students values(NULL, "王剛", "男", 20, "13811371377");

按回車鍵確認(rèn)后若提示 Query Ok, 1 row affected (0.05 sec) 表示數(shù)據(jù)插入成功。 若插入失敗請(qǐng)檢查是否已選擇需要操作的數(shù)據(jù)庫(kù)。

有時(shí)我們只需要插入部分?jǐn)?shù)據(jù), 或者不按照列的順序進(jìn)行插入, 可以使用這樣的形式進(jìn)行插入:

insert into students (name, sex, age) values("孫麗華", "女", 21);

查詢表中的數(shù)據(jù)

select 語句常用來根據(jù)一定的查詢規(guī)則到數(shù)據(jù)庫(kù)中獲取數(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;

按特定條件查詢:

where 關(guān)鍵詞用于指定查詢條件, 用法形式為:select 列名稱 from 表名稱 where 條件;

以查詢所有性別為女的信息為例, 輸入查詢語句: select * from students where sex="女";

where 子句不僅僅支持 "where 列名 = 值" 這種名等于值的查詢形式, 對(duì)一般的比較運(yùn)算的運(yùn)算符都是支持的, 例如 =、>、<、>=、<、!= 以及一些擴(kuò)展運(yùn)算符 is [not] null、in、like 等等。 還可以對(duì)查詢條件使用 or 和 and 進(jìn)行組合查詢, 以后還會(huì)學(xué)到更加高級(jí)的條件查詢方式, 這里不再多做介紹。

示例:

查詢年齡在21歲以上的所有人信息: select * from students where age > 21;

查詢名字中帶有 "王" 字的所有人信息: select * from students where name like "%王%";

查詢id小于5且年齡大于20的所有人信息: select * from students where id<5 and age>20;

更新表中的數(shù)據(jù)

update 語句可用來修改表中的數(shù)據(jù), 基本的使用形式為:

update 表名稱 set 列名稱=新值 where 更新條件;

使用示例:

將id為5的手機(jī)號(hào)改為默認(rèn)的"-": update students set tel=default where id=5;

將所有人的年齡增加1: update students set age=age+1;

將手機(jī)號(hào)為 13288097888 的姓名改為 "張偉鵬", 年齡改為 19: update students set name="張偉鵬", age=19 where tel="13288097888";

刪除表中的數(shù)據(jù)

delete 語句用于刪除表中的數(shù)據(jù), 基本用法為:

delete from 表名稱 where 刪除條件;

使用示例:

刪除id為2的行: delete from students where id=2;

刪除所有年齡小于21歲的數(shù)據(jù): delete from students where age<20;

刪除表中的所有數(shù)據(jù): delete from students;

創(chuàng)建后表的修改

alter table 語句用于創(chuàng)建后對(duì)表的修改, 基礎(chǔ)用法如下:

添加列

基本形式:alter table 表名 add 列名 列數(shù)據(jù)類型 [after 插入位置];

示例:

在表的最后追加列 address: alter table students add address char(60);

在名為 age 的列后插入列 birthday: alter table students add birthday date after age;

修改列

基本形式:alter table 表名 change 列名稱 列新名稱 新數(shù)據(jù)類型;

示例:

將表 tel 列改名為 telphone: alter table students change tel telphone char(13) default "-";

將 name 列的數(shù)據(jù)類型改為 char(16): alter table students change name name char(16) not null;

刪除列

基本形式:alter table 表名 drop 列名稱;

示例:

刪除 birthday 列: alter table students drop birthday;

重命名表

基本形式:alter table 表名 rename 新表名;

示例:

重命名 students 表為 workmates: alter table students rename workmates;

刪除整張表

基本形式:drop table 表名;

示例:刪除 workmates 表: drop table workmates;

刪除整個(gè)數(shù)據(jù)庫(kù)

基本形式:drop database 數(shù)據(jù)庫(kù)名;

示例:刪除 samp_db 數(shù)據(jù)庫(kù): drop database samp_db;

附錄

修改 root 用戶密碼

按照本文的安裝方式, root 用戶默認(rèn)是沒有密碼的, 重設(shè) root 密碼的方式也較多, 這里僅介紹一種較常用的方式。

使用 mysqladmin 方式:

打開命令提示符界面, 執(zhí)行命令:mysqladmin -u root -p password 新密碼

執(zhí)行后提示輸入舊密碼完成密碼修改, 當(dāng)舊密碼為空時(shí)直接按回車鍵確認(rèn)即可。

可視化管理工具 MySQL Workbench

盡管我們可以在命令提示符下通過一行行的輸入或者通過重定向文件來執(zhí)行mysql語句, 但該方式效率較低, 由于沒有執(zhí)行前的語法自動(dòng)檢查, 輸入失誤造成的一些錯(cuò)誤的可能性會(huì)大大增加, 這時(shí)不妨試試一些可視化的MySQL數(shù)據(jù)庫(kù)管理工具, MySQL Workbench 就是 MySQL 官方 為 MySQL 提供的一款可視化管理工具, 你可以在里面通過可視化的方式直接管理數(shù)據(jù)庫(kù)中的內(nèi)容, 并且 MySQL Workbench 的 SQL 腳本編輯器支持語法高亮以及輸入時(shí)的語法檢查, 當(dāng)然, 它的功能強(qiáng)大, 絕不僅限于這兩點(diǎn)。

MySQL Workbench官方介紹:http://www.mysql.com/products/workbench/

MySQL Workbench 下載頁:http://dev.mysql.com/downloads/tools/workbench/

--------------------

wid, 2013.05.09

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 不到萬不得已就將就著看本文吧,別看原文了.錯(cuò)別字多就算了,到后面還有還多語句的示例代碼都張冠李戴了.當(dāng)然,本文可能...
    Airmole閱讀 1,762評(píng)論 0 4
  • 21分鐘 MySQL 入門教程 目錄 一、MySQL的相關(guān)概念介紹 二、Windows下MySQL的配置 配置步驟...
    jony456123閱讀 906評(píng)論 0 4
  • 更新 修改數(shù)據(jù)庫(kù)密碼 1.蘋果->系統(tǒng)偏好設(shè)置->最下邊點(diǎn)mysql 在彈出頁面中 關(guān)閉mysql服務(wù)(點(diǎn)擊sto...
    190CM閱讀 534評(píng)論 0 5
  • MySQL的相關(guān)概念介紹 MySQL 為關(guān)系型數(shù)據(jù)庫(kù)(Relational Database Management...
    Wantdoyousee閱讀 401評(píng)論 1 1
  • 早九點(diǎn)初次尋膜,告知下午五六點(diǎn)到貨后再來。 怕對(duì)方下班下午五點(diǎn)再次拜訪,說晚十一點(diǎn)才下班不著急;七八點(diǎn)鐘再來也不遲...
    晴風(fēng)村閱讀 203評(píng)論 0 0

友情鏈接更多精彩內(nèi)容