您好,登錄后才能下訂單哦!
一.Web數(shù)據(jù)庫概述
現(xiàn)在,我們已經(jīng)熟悉了PHP的基礎(chǔ)知識,這是我們想暫時離開PHP一章,來重點介紹一下關(guān)系型數(shù)據(jù)庫,讓大家了解數(shù)據(jù)庫比文件儲存的有點。這些優(yōu)點包括:
1.關(guān)系型數(shù)據(jù)庫比普通文件的數(shù)據(jù)訪問速度更快。
2.關(guān)系型數(shù)據(jù)庫更容易查閱并提取滿足特定條件的數(shù)據(jù)。
3.關(guān)系型數(shù)據(jù)庫更具有專門的內(nèi)置機制處理并發(fā)訪問,作為程序員,不需要為此擔(dān)心。
4.關(guān)系型數(shù)據(jù)庫可以提供對數(shù)據(jù)的隨即訪問。
5.關(guān)系型數(shù)據(jù)庫具有內(nèi)置的權(quán)限系統(tǒng)。
關(guān)系數(shù)據(jù)庫的概念
至今為止,關(guān)系數(shù)據(jù)庫是最常用的數(shù)據(jù)庫類型。在關(guān)系代數(shù)方面,它們具有很好的理論基礎(chǔ)。當使用關(guān)系數(shù)據(jù)庫的時候,并不需要了解關(guān)系理論(這是一件好事),但是還是需要理解一些關(guān)于數(shù)據(jù)庫的基本概念。
1)表格
關(guān)系數(shù)據(jù)庫由關(guān)系組成,這些關(guān)系通常稱為表格。顧名思義,一個關(guān)系就是一個數(shù)據(jù)的表格。電子數(shù)據(jù)表就是一種表格。
編號 | 姓名 | 地址 | 電話 |
1 | 周杰倫 | 臺灣高雄 | 0323839233 |
2 | 陳道明 | 大陸上海 | 0212324534 |
3 | 李炎恢 | 大陸鹽城 | 0152343434 |
2)列
表中的每一列都有惟一的名稱,包含不同的數(shù)據(jù)。此外,每一列都有一個相關(guān)的數(shù)據(jù)類型。
3)行
表中的每一行代表一個客戶。每一行具有相同的格式,因而也具有相同的屬性。行也成為記錄。
4)值
每一行由對應(yīng)每一列的單個值組成。每個值必須與該列定義的數(shù)據(jù)類型相同。
5)鍵
每一條數(shù)據(jù)所對應(yīng)的唯一的標識。
6)模式
數(shù)據(jù)庫整套表格的完整設(shè)計成為數(shù)據(jù)庫的模式。
7)關(guān)系
外鍵標識兩個表格數(shù)據(jù)的關(guān)系。
如何設(shè)計Web數(shù)據(jù)庫
1)考慮要建模的實際對象。
2)避免保存冗余數(shù)據(jù)。
3)使用原子列值(對每一行的每個屬性只存儲一個數(shù)據(jù)。)
4)選擇有意義的鍵。
5)考慮需要詢問數(shù)據(jù)庫的問題。
6)避免多個空屬性的設(shè)計
Web數(shù)據(jù)庫架構(gòu)
瀏覽器和Web服務(wù)器之間的通信:
瀏覽器和PHP&MySQL服務(wù)器之間的通信
1)用戶的Web瀏覽器發(fā)出HTTP請求,請求特定Web頁面。
2)Web服務(wù)器收到.php的請求獲取該文件,并將它傳到PHP引擎,要求它處理。
3)PHP引擎開始解析腳本。腳本中有一條連接數(shù)據(jù)庫的命令,還有執(zhí)行一個查詢的命令。PHP打開通向MYSQL數(shù)據(jù)庫的連接,發(fā)送適當?shù)牟樵儭?/span>
4)MYSQL服務(wù)器接收數(shù)據(jù)庫查詢并處理。將結(jié)果返回到PHP引擎。
5)PHP以你去哪干完成腳本運行,通常,這包括將查詢結(jié)果格式化成HTML格式。然后再輸出HTML返回到Web服務(wù)器。
6)Web服務(wù)器將HTML發(fā)送到瀏覽器。
二.MySQL操作
登錄到MySQL
1)打開MySQL Command Line Client
2)輸入root的設(shè)置密碼
MySQL常規(guī)命令
1)顯示當前數(shù)據(jù)庫的版本號和日期。
SELECT VERSION(),CURRENT_DATE();
2)通過AS關(guān)鍵字設(shè)置字段名。
SELECT VERSION() AS version; //可設(shè)置中文,通過單引號
3)通過SELECT 執(zhí)行返回計算結(jié)果
SELECT (20+5)*4;
4)通過多行實現(xiàn)數(shù)據(jù)庫的使用者和日期
>SELECT
>USER()
>,
>NOW()
>;
5)通過一行顯示數(shù)據(jù)庫使用者和日期
>SELECT USER();SELECT NOW();
6)命令的取消
>\c
7)MySQL窗口的退出
>exit;
MySQL常用數(shù)據(jù)類型
整數(shù)型:TINYINT,SMALLINT,INT,BIGINT
浮點型:FLOAT,DOUBLE,DECIMAL(M,D)
字符型:CHAR,VARCHAR
日期型:DATETIME,DATE,TIMESTAMP
備注型:TINYTEXT,TEXT,LONGTEXT
日期型
列類型 | “零”值 |
DATETIME | '0000-00-00 00:00:00' |
DATE | '0000-00-00' |
TIMESTAMP | 00000000000000 |
TIME | '00:00:00' |
YEAR | 0000 |
字符串型
值 | CHAR(4) | 存儲需求 | VARCHAR(4) | 存儲需求 |
'' | ' ' | 4個字節(jié) | '' | 1個字節(jié) |
'ab' | 'ab ' | 4個字節(jié) | 'ab ' | 3個字節(jié) |
'abcd' | 'abcd' | 4個字節(jié) | 'abcd' | 5個字節(jié) |
'abcdefgh' | 'abcd' | 4個字節(jié) | 'abcd' | 5個字節(jié) |
整數(shù)型
類型 | 字節(jié) | 最小值 | 最大值 |
(帶符號的/無符號的) | (帶符號的/無符號的) | ||
TINYINT | 1 | -128 | 127 |
0 | 255 | ||
SMALLINT | 2 | -32768 | 32767 |
0 | 65535 | ||
MEDIUMINT | 3 | -8388608 | 8388607 |
0 | 16777215 | ||
INT | 4 | -2147483648 | 2147483647 |
0 | 4294967295 | ||
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
0 | 18446744073709551615 |
整數(shù)型
類型 | 字節(jié) | 最小值 | 最大值 |
FLOAT | 4 | +-1.175494351E-38 | +-3.402823466E+38 |
DOUBLE | 8 | +-2.2250738585072014E-308 | +-1.7976931348623157E+308 |
DECIMAL | 可變 | 它的取值范圍可變。 |
備注型
類型 | 描述 |
TINYTEXT | 字符串,最大長度255個字符 |
TEXT | 字符串,最大長度65535個字符 |
MEDIUMTEXT | 字符串,最大長度16777215個字符 |
LONGTEXT | 字符串,最大長度4294967295個字符 |
MySQL數(shù)據(jù)庫操作
1)顯示當前存在的數(shù)據(jù)庫
>SHOW DATABASES;
2)選擇你所需要的數(shù)據(jù)庫
>USE guest;
3)查看當前所選擇的數(shù)據(jù)庫
>SELECT DATABASE();
4)查看一張表的所有內(nèi)容
>SELECT * FROM guest; //可以先通過SHOW TABLES;來查看有多少張表
5)根據(jù)數(shù)據(jù)庫設(shè)置中文編碼
>SET NAMES gbk; //set names utf8;
6)創(chuàng)建一個數(shù)據(jù)庫
>CREATE DATABASE book;
7)在數(shù)據(jù)庫里創(chuàng)建一張表
>CREATE TABLE users (
>username VARCHAR(20), //NOT NULL 設(shè)置不允許為空
>sex CHAR(1),
>birth DATETIME);
8)顯示表的結(jié)構(gòu)
>DESCIRBE users;
9)給表插入一條數(shù)據(jù)
>INSERT INTO users (username,sex,birth) VALUES ('Lee','x',NOW());
10)篩選指定的數(shù)據(jù)
> SELECT * FROM users WHERE username = 'Lee';
11)修改指定的數(shù)據(jù)
>UPDATE users SET sex = '男' WHERE username='Lee';
12)刪除指定的數(shù)據(jù)
> DELETE FROM users WHERE username='Lee';
13)按指定的數(shù)據(jù)排序
> SELECT * FROM users ORDER BY birth DESC; //正序
14)刪除指定的表
>DROP TABLE users;
15)刪除指定的數(shù)據(jù)庫
>DROP DATABASE book;
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。