姓名:謝艾芳? 學號:16040410073
轉自http://www.lxweimin.com/p/033bc52e3dcc
〖嵌牛導讀〗摘要:目錄 一、MySQL的相關概念介紹 二、Windows下MySQL的配置配置步驟 MySQL服務的啟動、停止與卸載 三、MySQL腳本的基本組成 四、MySQL中的數據類型 五、使用MySQL數據庫登錄到MySQL 創建一個數據庫 選擇所要操作的數據庫 創建數據庫表 六、操作MySQL...
〖嵌牛鼻子〗 MySQL 入門教程
〖嵌牛提問〗如何快速了解MySQL基本概念,實現基本操作?
〖嵌牛正文〗
目錄
一、MySQL的相關概念介紹
二、Windows下MySQL的配置
配置步驟
MySQL服務的啟動、停止與卸載
三、MySQL腳本的基本組成
四、MySQL中的數據類型
五、使用MySQL數據庫
登錄到MySQL
創建一個數據庫
選擇所要操作的數據庫
創建數據庫表
六、操作MySQL數據庫
向表中插入數據
查詢表中的數據
更新表中的數據
刪除表中的數據
七、創建后的修改
添加列
修改列
刪除列
重命名表
刪除整張表
刪除整個數據庫
八、附錄
修改 root 用戶密碼
可視化管理工具 MySQL Workbench
MySQL的相關概念介紹
MySQL 為關系型數據庫(Relational Database Management System), 這種所謂的"關系型"可以理解為"表格"的概念, 一個關系型數據庫由一個或數個表格組成, 如圖所示的一個表格:
表頭(header): 每一列的名稱;
列(row): 具有相同數據類型的數據的集合;
行(col): 每一行用來描述某個人/物的具體信息;
值(value): 行的具體信息, 每個值必須與該列的數據類型相同;
鍵(key): 表中用來識別某個特定的人\物的方法, 鍵的值在當前列中具有唯一性。Windows下MySQL的配置
以 MySQL 5.1 免安裝版為例, 下載 mysql-noinstall-5.1.69-win32.zip
配置步驟:
1. 將下載的 mysql-noinstall-5.1.69-win32.zip 解壓至需要安裝的位置, 如: C:\Program Files;
2. 在安裝文件夾下找到 my-small.ini 配置文件, 將其重命名為 my.ini , 打開進行編輯, 在 [client] 與 [mysqld] 下均添加一行: default-character-set = gbk
3. 打開 Windows 環境變量設置, 新建變量名 MYSQL_HOME , 變量值為 MySQL 安裝目錄路徑, 這里為 C:\Program Files\mysql-5.1.69-win32
4. 在 環境變量 的 Path 變量中添加 ;%MYSQL_HOME%\bin;
5. 安裝 MySQL 服務, 打開Windows命令提示符, 執行命令: mysqld --install MySQL --defaults-file="my.ini" 提示"Service successfully installed."表示成功;
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有三大類數據類型, 分別為數字、日期\時間、字符串, 這三大類中又更細致的劃分了許多子類型:
數字類型
整數: tinyint、smallint、mediumint、int、bigint
浮點數: float、double、real、decimal
日期和時間: date、time、datetime、timestamp、year
字符串類型
字符串: char、varchar
文本: tinytext、text、mediumtext、longtext
二進制(可用來存儲圖片、音樂等): tinyblob、blob、mediumblob、longblob
這里不能詳細對這些類型進行介紹了, 篇幅可能會很長
使用MySQL數據庫
登錄到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 退出登錄。
創建一個數據庫
使用 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語句以分號(;)作為語句的結束, 若在語句結尾不添加分號時, 命令提示符會以 -> 提示你繼續輸入(有個別特例, 但加分號是一定不會錯的);
提示: 可以使用 show databases; 命令查看已經創建了哪些數據庫。
選擇所要操作的數據庫
? 要對一個數據庫進行操作, 必須先選擇該數據庫, 否則會提示錯誤:
ERROR 1046(3D000): No database selected
兩種方式對數據庫進行使用的選擇:
一: 在登錄數據庫時指定, 命令: mysql -D 所選擇的數據庫名 -h 主機名 -u 用戶名 -p
例如登錄時選擇剛剛創建的數據庫: mysql -D samp_db -u root -p
二: 在登錄后使用 use 語句指定, 命令: use 數據庫名;
use 語句可以不加分號, 執行 use samp_db 來選擇剛剛創建的數據庫, 選擇成功后會提示: Database changed
創建數據庫表
使用 create table 語句可完成對表的創建, 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 "-"
);
對于一些較長的語句在命令提示符下可能容易輸錯, 因此我們可以通過任何文本編輯器將語句輸入好后保存為 createtable.sql 的文件中, 通過命令提示符下的文件重定向執行執行該腳本。
打開命令提示符, 輸入:mysql -D samp_db -u root -p < createtable.sql
(提示: 1.如果連接遠程主機請加上 -h 指令; 2. createtable.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 屬性指定當該列值為空時的默認值。
提示: 1. 使用 show tables; 命令可查看已創建了表的名稱; 2. 使用 describe 表名; 命令可查看已創建的表的詳細信息。
操作MySQL數據庫
向表中插入數據
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);
查詢表中的數據
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;
按特定條件查詢:
where 關鍵詞用于指定查詢條件, 用法形式為: select 列名稱 from 表名稱 where 條件;
以查詢所有性別為女的信息為例, 輸入查詢語句: select * from students where sex="女";
where 子句不僅僅支持 "where 列名 = 值" 這種名等于值的查詢形式, 對一般的比較運算的運算符都是支持的, 例如 =、>、<、>=、<、!= 以及一些擴展運算符 is [not] null、in、like 等等。 還可以對查詢條件使用 or 和 and 進行組合查詢, 以后還會學到更加高級的條件查詢方式, 這里不再多做介紹。
示例:
查詢年齡在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;
更新表中的數據
update 語句可用來修改表中的數據, 基本的使用形式為:
update 表名稱 set 列名稱=新值 where 更新條件;
使用示例:
將id為5的手機號改為默認的"-": update students set tel=default where id=5;
將所有人的年齡增加1: update students set age=age+1;
將手機號為 13288097888 的姓名改為 "張偉鵬", 年齡改為 19: update students set name="張偉鵬", age=19 where tel="13288097888";
刪除表中的數據
delete 語句用于刪除表中的數據, 基本用法為:
? ? ? delete from 表名稱 where 刪除條件;
使用示例:
刪除id為2的行: delete from students where id=2;
刪除所有年齡小于21歲的數據: delete from students where age<20;
刪除表中的所有數據: delete from students;
創建后表的修改
alter table 語句用于創建后對表的修改, 基礎用法如下:
添加列
基本形式:alter table 表名 add 列名 列數據類型 [after 插入位置];
示例:
在表的最后追加列 address: alter table students add address char(60);
在名為 age 的列后插入列 birthday: alter table students add birthday date after age;
修改列
基本形式:alter table 表名 change 列名稱 列新名稱 新數據類型;
示例:
將表 tel 列改名為 telphone: alter table students change tel telphone char(13) default "-";
將 name 列的數據類型改為 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;
刪除整個數據庫
基本形式:drop database 數據庫名;
示例:
刪除 samp_db 數據庫: drop database samp_db;
附錄
修改 root 用戶密碼
按照本文的安裝方式, root 用戶默認是沒有密碼的, 重設 root 密碼的方式也較多, 這里僅介紹一種較常用的方式。
使用 mysqladmin 方式:
打開命令提示符界面, 執行命令: mysqladmin -u root -p password 新密碼
執行后提示輸入舊密碼完成密碼修改, 當舊密碼為空時直接按回車鍵確認即可。
可視化管理工具 MySQL Workbench
盡管我們可以在命令提示符下通過一行行的輸入或者通過重定向文件來執行mysql語句, 但該方式效率較低, 由于沒有執行前的語法自動檢查, 輸入失誤造成的一些錯誤的可能性會大大增加, 這時不妨試試一些可視化的MySQL數據庫管理工具, MySQL Workbench 就是 MySQL 官方 為 MySQL 提供的一款可視化管理工具, 你可以在里面通過可視化的方式直接管理數據庫中的內容, 并且 MySQL Workbench 的 SQL 腳本編輯器支持語法高亮以及輸入時的語法檢查, 當然, 它的功能強大,絕不僅限于這兩點。