Mysql資料庫
Apache(服務員) php(大廚) mysql(冰櫃)

Mysql是瑞典的mysqlAB公司開發的一款中小型關系型資料庫管理系統。
MysqlAB公司在2008年被Sun(java公司)給收購了
2009年Sun(java公司)被Oracle收購。
Mysql是一款免費資料庫,體積小,運作速度快。
主流資料庫(SQLserver微軟 Oracle甲骨文 DB2(IBM) mysql)
Mysql資料庫資料庫量一般保持在1000萬以内,速度活性可以保持。
Mysql是一款資料庫軟體,需要被安裝在伺服器裡邊。
【資料存儲及與mysql資料庫系統的關系】
資料如何存放到資料庫裡邊
圖書管理資訊(圖書、借還資訊、作者資訊)
有一本圖書,圖書的名字是“php入門”,價格是“45元”,出版社“鐵道出版社”,作者“孫書華”,該資訊需要被存放到我們的資料庫裡邊。
Php入門 45元 鐵道出版社 孫書華(類似在記事本裡邊存放内容)
在記事本裡邊存放圖書,圖書的查詢、修改、删除、增加都不容易操作
【通路資料庫】
Php流程控制、函數
Mysql基本操作(資料庫和資料表的建立和删除)
【mysql操作回顧】
1. 登陸資料庫
mysql -h主機名 -u使用者名 -p密碼
2. 查詢目前資料庫管理系統有多少資料庫存在
show databases;
3. 進入具體資料庫/使用具體資料庫
use 資料庫名字;
4. 查詢目前資料庫資料表的情況資訊
show tables;
5. 建立資料庫
create database 庫名;
6. 删除資料庫
drop database 庫名;
7. 建立資料表book
書名name 價格price 出版社publish 作者author
create table book(
字段
類型,
字段 類型,
)
資料類型:int整型 varchar(長度)
name
varchar(32),
price
int,
publish
varchar(64),
author varchar(16)
);
create table author(
age
int
8. 删除資料表
drop table 表名;
mysql> #檢視資料庫
mysql> show databases;
+--------------------+
| Database |
| information_schema |
| library |
| mysql |
| test |
4 rows in set (0.00 sec)
mysql> #檢視資料表
mysql> show tables;
+-------------------+
| Tables_in_library |
| author |
| book |
2 rows in set (0.00 sec)
mysql> #建立資料庫
mysql> create database shop;
Query OK, 1 row affected (0.00 sec)
ü Mysql -h主機名 -u使用者名
-p密碼 (登陸mysql資料庫)
ü Show databases; (檢視有多少資料庫可供使用)
ü Use 資料庫名字; (進入資料庫、使用資料庫)
ü Create database 資料庫名字; (建立資料庫)
ü Drop database 庫名; (删除資料庫)
ü Create table (
字段
類型,
字段 類型
。。。
ü ) (建立資料表)
Drop table 表名; (删除資料表
ü Drop table 表名; (删除資料表)
登入mysql資料庫
啟動服務
說明mysql指令的沒有找到,有相應的程式檔案需要被執行。
解決:
①
②
設定環境變量,讓系統自動幫組我們找到mysql指令所對應的執行檔案。
注意:
① 我們在對資料庫進行操作的時候,像建立表、删除表等操作,需要進入指定的資料庫,才可以執行操作,否則提示“沒有選擇資料庫”
如果出現以上提示,說明沒有選擇資料庫(use 庫名;)
② 每條sql語句後邊都使用”;”分号結束。(use 選擇資料庫除外)
【為資料表添加新的記錄資訊】
一般資料庫操作有4種基本操作:資料的增insert、删delete、改update、查select
為“圖書”表添加新的資料資訊
有一個問題:現在還不知道圖書表有什麼字段可以供操作。
Insert into 表名 values (單域值,單域值,單域值,……);
有幾個字段,就寫幾個單域值,并且它們是一一比對的。
資料表所有字段資訊都要補全
Php入門 60 清華出版社 韓順平
Insert
into book values
(‘Php入門’,’60’,’ 清華出版社’,’ 韓順平’);
(‘javascript巧妙用法’,’89’,’ 北大出版社’,’ 古龍’);
有的時候我們添加資料資訊,有的字段不知道是什麼值,這就要求我們可以為指定的字元添加資料資訊
Insert into 表名 (字段,字段,字段) values (單域值,單域值,單域值);
注意:字段與單域值 一一比對。
into book (name,publish,author) values
(‘css3.0特性介紹’,’鐵道出版社’,’瓊瑤’);
可以針對具體字段添加資料資訊
( 為什麼把代碼複制到editplus裡邊
因為sql語句的标點符号都要求英文輸入法的标點符号 逗号、引号
在word文檔裡邊輸入的标點符号,像單引号 是中文輸入法的單引号。)
Sql語句有報文法錯誤:你的sql語句有文法錯誤,請檢查手冊看看你的sql語句版本是否支援你的sql語句這樣的用法。
【檢視資料表的資料】
資料的增insert、删delete、改update、查select
Select *
from 表名; //注意
from 不要寫成
form
l * 會查詢資料表全部字段資訊
有的時候我們需要查詢指定字段的資訊
比如,我們隻查詢作者的資訊 或者是
書名的資訊
Select 字段,字段,字段 from 表名;
【删除資料表資訊】
Delete from 表名;
上邊的删除類似“清空”式的删除。
一般我們删除資料,需要指定具體的條件,否則會清空資料表,造成資料庫事故。
一般資料庫管理者還會使用一種方法,使得資料表的資料被清空
Truncate
表名; #清空資料表
比如:我們隻删除“php入門”這本書,其他的圖書都保留。這時候sql語句需要有限制條件。
Delete
from 表名
where 資料記錄限制條件;
限制條件:圖書的名字等于“php入門”
Delete from
book where name=’Php入門’;
價格> 具體值
價格< 具體值
根據删除,我們知道在做“查詢”的時候也可以做限制條件。
比如:我想要查詢價格大于70元圖書的資訊。
在sql語句裡邊,一般“值”的資料都使用引号給括起來,字段無需引号。
删除資料的時候,要有where條件,否則是清空資料表,造成資料庫事故。
【多條件記錄操作】
mysql> # 查詢圖書價格大于50元并且是北大出版社出版
mysql> select * from book where
price>50 and publish='北大出版社';
+--------------------+-------+------------+--------+
| name | price | publish | author |
| javascript巧妙用法 | 89 | 北大出版社 | 古龍 |
| linux常用指令 | 95 | 北大出版社 | 古龍
|
Sql語句有多種條件做限制,條件間使用“and”連接配接。
【記錄資訊修改】
Update 表名 set 字段=’單域值’ where
條件; //隻修改指定條件的單個字段資訊
Update 表名 set 字段=’單域值’, 字段=’單域值’, 字段=’單域值’ where 條件; //同時會修改多個字段的資訊
Update 表名 set 字段=’單域值’;
//該用法會把全部資訊記錄都修改,要小心使用
沒有識别字段”pulish”
修改總結:
我們可以修改一個字段,也可以修改多個字段,中間使用”,”逗号分隔。
修改的時候語句有where條件限制,如果沒有,則會修改全部資訊記錄。
【主鍵使用】
原則上講每個資料表都應該有主鍵。
主鍵就是資料表裡邊的一個字段。字段裡邊的資訊都是不同,可以唯一确定每條記錄。
一般主鍵的資訊我們使用自動自動增長的數字來表示。
主鍵作用:可以設定資料表裡邊的每條記錄都是唯一的。
生活中也有主鍵的存在:一個人,名字是“張楚生”,‘男’,‘北京’,‘海澱’,如果一個公司裡邊有許多“張楚生”存在,并且它們的資料又極為相似,那麼如何能區分出來不同的“張楚生”,我麼可以通過“身份證号碼”來區分不同的人。
一般習慣上使用”id”代表主鍵,identify 确認、辨別。
真正的主鍵無需我們關心具體的值,它會自動網上增長。
現在我們建立資料表,并且表裡邊有主鍵字段。
CREATE TABLE `book` (
`id` int(11) primary key
auto_increment,
`name` varchar(32) default NULL,
`price` int(11) default NULL,
`publish` varchar(64) default NULL,
`author`
varchar(16) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Primary key: 表示目前字段是主鍵
Auto_increment: 主鍵值會自動增長
(null, 'Php入門','60','清華出版社',' 韓順平');
//比對資料表全部字段,包括主鍵(null表示)
//單域值
的順序是資料表 字段的順序,不要寫亂了。
(null, 'javascript巧妙用法','89','北大出版社',' 古龍');
into book (publish,author ,name) values
('鐵道出版社','瓊瑤', 'css3.0特性介紹');
//設定具體字段資訊,可以不用考慮主鍵
//字段順序可以自定義安排
(null, 'html精通','30','清華出版社',' 韓順平');
(null, 'linux常用指令','95','北大出版社',' 古龍');
('jquery進階用法','鐵道出版社','瓊瑤');
主鍵是唯一的,不允許重複
我們使用未被占用的主鍵,後邊的主鍵值在此自動增長。
添加資訊記錄的“單域值”沒有全部比對上“字段”的數目。
如果一個資料表有主鍵,我們不用關心它的值,主鍵的值會自動增長并賦予。
主鍵是唯一的,不允許重複主鍵值存在
我們可以使用未被占用的主鍵。之後的主鍵值會在此基礎上自定增長。
原則上每個資料表都有一個主鍵。
總結:
Mysql資料庫記錄的“增”、“删”、“改”、“查”
增加insert
删除delete
修改update
查詢select
修改、查詢、删除: 可以使用where限制條件
增加:可以增加全部字段資訊、也可以增加指定字段資訊。
Where
條件設定 多個條件使用and進行連接配接
Update修改:如果同時修改多個字段資訊,中間使用”,”逗号連接配接
主鍵使用。