真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php屬于數(shù)據(jù)管理軟件嗎,php用什么數(shù)據(jù)庫

html,php,iis,阿帕奇,mysql的關(guān)系

簡單說:

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供雙湖網(wǎng)站建設(shè)、雙湖做網(wǎng)站、雙湖網(wǎng)站設(shè)計(jì)、雙湖網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、雙湖企業(yè)網(wǎng)站模板建站服務(wù),十余年雙湖做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

html 是超文本標(biāo)記語言,就是在瀏覽器上查看的內(nèi)容均是通過轉(zhuǎn)換成HTML標(biāo)記的文本進(jìn)行解析查看的。

php,asp,aspx 這些是動(dòng)態(tài)的網(wǎng)頁編程語言,用來動(dòng)態(tài)控制程序進(jìn)而生成HTML。

IIS apache 是用來執(zhí)行網(wǎng)站程序的web服務(wù)器。

mysql sqlserver 是數(shù)據(jù)庫軟件 用于動(dòng)態(tài)網(wǎng)站存儲(chǔ)相關(guān)數(shù)據(jù)的載體。

他們的關(guān)系是:通過IIS 或者Apache 建立web服務(wù)器 用來執(zhí)行通過php、asp、aspx等語言開發(fā)的具有后臺(tái)數(shù)據(jù)管理的網(wǎng)站頁面經(jīng)過解析成HTML供瀏覽器輸出。

可以詳細(xì)的給我講講php與SQL嗎

Php (Hyprtext Preprocessor) 是一種HTML內(nèi)嵌式的編程語言,它是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言。PHP是開源的, 而且項(xiàng)目建設(shè)的成本很低, 而語言的編寫方式上比起Java, C等強(qiáng)類型語言要自由和方便很多, 在WEB項(xiàng)目的開發(fā)上應(yīng)用很廣泛(如 網(wǎng)站項(xiàng)目, 游戲服務(wù)器端等)

MySQL是一種小型的 關(guān)系型數(shù)據(jù)庫. 數(shù)據(jù)庫對(duì)于項(xiàng)目來說提供數(shù)據(jù)存儲(chǔ),同時(shí)可以便于訪問數(shù)據(jù),計(jì)算數(shù)據(jù)。MySql也同樣應(yīng)用于此功能.

PHP+MySql 技術(shù)開發(fā). 是說以PHP語言為技術(shù)實(shí)現(xiàn)主體, 以MySql作為數(shù)據(jù)存儲(chǔ)/訪問的 數(shù)據(jù)庫管理系統(tǒng), 來實(shí)現(xiàn)項(xiàng)目的建設(shè)與開發(fā). (簡單點(diǎn)說就是 用PHP語言,以MySql做為服務(wù)器,來開發(fā)項(xiàng)目)

這些都是關(guān)于PHP與MySql的基本介紹, 至于具體的技術(shù),不是幾句話能說明白的. 要系統(tǒng)的學(xué)習(xí)才可以, 不過這兩種技術(shù)上手都很快.

什麼是PHP? 什麼是SQL?

PHP 是一種服務(wù)器端的,嵌入HTML的腳本語言。PHP區(qū)別其他像客戶端Javascript的地方是它的代碼在服務(wù)器端執(zhí)行.PHP能做什么?

最低水平,PHP可以做任何其他CGI程序所能做的事,例如收集表格數(shù)據(jù),生成動(dòng)態(tài)頁面內(nèi)容,或者收發(fā)cookies.可能最強(qiáng)大,最有意義的特性是PHP支持大范圍的數(shù)據(jù)庫.書寫一個(gè)支持?jǐn)?shù)據(jù)庫的Web 頁面是難以置信的簡單.

下面是當(dāng)前支持的數(shù)據(jù)庫:

Adabas D InterBase Solid

dBase mSQL Sybase

Empress MySQL Velocis

FilePro Oracle Unix dbm

Informix PostgreSQL

PHP通過協(xié)議也支持與其他服務(wù)的"交談",像IMAP, SNMP, NNTP, POP3, 甚至是 HTTP. 你也可以打開晦澀的 網(wǎng)絡(luò)接口和其他協(xié)議交互.

PHP的簡要?dú)v史

1994年秋季, Rasmus Lerdorf 開始構(gòu)思 PHP. 早期的非發(fā)行版本被用在他的主頁上,以追蹤誰在看他的在線簡歷. 1995年年初第一版本出臺(tái),當(dāng)時(shí)PHP只被認(rèn)為是個(gè)人主頁開發(fā)工具.它由一個(gè)非常單純的只能理解很少數(shù)特殊宏的分析引擎和 一些用在主頁后端通用的工具組成.如留言簿,計(jì)數(shù)器和其他一些東西.這個(gè)分析器在1995年年中被重寫并被命名為 PHP/FI 第二版. FI來自 Rasmus 寫的另外一個(gè)包, 用于解釋 html 形式的數(shù)據(jù).他結(jié)合了個(gè)人主頁工具腳本和形式解析器,并加 上mSQL支持.這樣就產(chǎn)生 PHP/FI 了. PHP/FI以令人驚奇的步調(diào)成長,人們開始把自己的代碼貢獻(xiàn)給它.

很難給出它的硬統(tǒng)計(jì)表,但可以估計(jì)在1996年末,整個(gè)世界至少有15,000個(gè)網(wǎng)站在用PHP/FI.到1997年年中,這個(gè) 數(shù)字已經(jīng)超過50,000了. 而在此時(shí)PHP的發(fā)展也發(fā)生了變化.由Rasmus自己偏愛的和幾個(gè)人開發(fā)的項(xiàng)目變成一個(gè)更有組織的團(tuán) 體成就.Zeev Suraski和Andi Gutmans重寫了解析器.這個(gè)新的解析器成為PHP版本3的基礎(chǔ).許多有用的代碼從PHP/FI 繼承到PHP3,并且很多是完全重寫的.

今天(1999年年中)不管是PHP/FI或PHP3與很多商業(yè)產(chǎn)品捆綁在一塊,例如C2級(jí)強(qiáng)度的Web服務(wù)器和紅帽子Linux. 根據(jù)NetCraft提供的數(shù)據(jù)推斷,保守估計(jì)全世界應(yīng)用PHP的網(wǎng)站已超過150,000個(gè).由此看來,它比在因特網(wǎng)上運(yùn)行Netscape 的旗艦企業(yè)服務(wù)器的站點(diǎn)還多.

PHP 是一種用來制作動(dòng)態(tài)網(wǎng)頁的服務(wù)器端腳本語言。你通過PHP和HTML創(chuàng)建頁面。當(dāng)訪問者打開網(wǎng)頁時(shí),服務(wù)器端便會(huì)處理 PHP 指令,然后把其處理結(jié)果送到訪問者的瀏覽器上面,就好像 ASP 或者是 ColdFusion 一樣。然而,PHP 跟 ASP 或 ColdFusion 不一樣的地方在于,它是跨平臺(tái)的開放源代碼。PHP 可以在 Windows NT 以及很多不同的 Unix 版本中執(zhí)行,它也可以被編譯為一個(gè) Apache 模塊,或者是一個(gè)CGI二進(jìn)制文件。當(dāng)被編譯為 Apache 模快時(shí),PHP 尤其輕巧方便。它沒有任何繁瑣程序所產(chǎn)生的負(fù)擔(dān),因此可以很快的返回結(jié)果,同時(shí)也不需為了保持較小的服務(wù)器內(nèi)存映象,而去調(diào)整mod_perl。

1. 引言

SQL是什麼?

* SQL (Structured Query Language)代表結(jié)構(gòu)化查詢語言。

* 當(dāng)用戶發(fā)出一項(xiàng)查詢,便可從數(shù)據(jù)庫檔內(nèi)獲得若干資料。這項(xiàng)查詢是根據(jù)用戶所提供的條件 (condition) 所作出的一項(xiàng)檢索。而 SQL則是一個(gè)可讓用戶把條件列明的查詢語言。這樣,用戶只須列明查詢的條件,而不須要實(shí)際知道有關(guān)的檢索方法。

* 一般的數(shù)據(jù)庫管理軟件系統(tǒng) (DBMS) 都包含 SQL 功能。

SQL的概念

* 通過 SQL 指令,用戶先列出數(shù)據(jù)庫檔及查詢的條件, SQL 程序便會(huì)在這數(shù)據(jù)庫檔內(nèi)檢查每筆記錄是否符合這項(xiàng)條件,并把有關(guān)的資料顯示出來。這個(gè)過程稱為檢索。 (見例 2)

* 用戶除了直接查問各筆記錄的資料外,也可查問統(tǒng)計(jì)數(shù)項(xiàng),例如最大值、最小值、總和及平均值。

* 查詢所得的結(jié)果會(huì)以表格的形式顯示,用戶亦可指示 SQL 程序把結(jié)果貯存成為數(shù)據(jù)庫檔。

在 FoxPro 如何使用 SQL

* 使用 SQL,必須先把有關(guān)數(shù)據(jù)庫檔開啟。

* 用戶可使用指令視窗 (Command Window) 直接把指令輸入,亦可使用對(duì)話方塊把指令輸入。

* 若用戶選用字符串的完全配對(duì)時(shí),便須輸入 SET ANSI ON。

2. SQL檢索指令的基本結(jié)構(gòu)

一般語法 SELECT, ALL / DISTINCT, *,

AS, FROM, WHERE

比較 IN, BETWEEN, LIKE "% _"

群組 GROUP BY, HAVING,

COUNT( ), SUM( ), AVG( ), MAX( ), MIN( )

顯示次序 ORDER BY, ASC / DESC

邏輯運(yùn)算符 AND, OR, NOT

輸出 INTO TABLE / CURSOR

TO FILE [ADDITIVE], TO PRINTER, TO SCREEN

聯(lián)合 UNION

簡稱:

expr = 表達(dá)式 expression, groupexpr = 群組表達(dá)式 group expression

col = 欄 column, comcol = 共同欄 common column

colname = 欄名 column name

nullval = 空值 null value

實(shí)例:學(xué)生個(gè)人資料

例子: 考慮以下貯存學(xué)生數(shù)據(jù)的數(shù)據(jù)庫檔 STUDENT. DBF:

(i) hcode 表示學(xué)生的社名(即紅黃藍(lán)綠四社)。

R = Red, Y = Yellow, B = Blue, G = Green

(ii) dcode 表示學(xué)生的居住地區(qū)碼。

eg. TST = 尖沙咀(Tsim Sha Tsui), MKK = 旺角(Mong Kok)

(iii) remission 表示學(xué)生是否享有學(xué)費(fèi)減免:

.T. =享有學(xué)費(fèi)減免, .F. = 沒有學(xué)費(fèi)減免

(iv) mtest 貯存學(xué)生數(shù)學(xué)測驗(yàn)的分?jǐn)?shù),滿分為100。

欄名 類型 欄寬 內(nèi)容

id 數(shù)字 4 學(xué)生編號(hào)

name 字符 10 學(xué)生名字

dob 日期 8 出生日期

sex 字符 1 性別: M / F

class 字符 2 班別

hcode 字符 1 社名: R, Y, B, G

dcode 字符 3 地區(qū)碼

remission 邏輯 1 學(xué)費(fèi)減免

mtest 數(shù)字 2 數(shù)學(xué)測驗(yàn)分?jǐn)?shù)

I 一般語法

SELECT ...... FROM ...... WHERE ......

SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ;

FROM tablename WHERE condition

– SQL 程序會(huì)從數(shù)據(jù)庫檔 tablename 選取符合條件的橫列 (row) 并以表格的格式顯示。

– 表達(dá)式 expr1, expr2 可以是 (1) 字段,或 (2) 以函數(shù)和字段組成的表達(dá)式。

– 而 col1, col2 是表達(dá)式 expr1, expr2 在輸出結(jié)果的表格內(nèi)的欄名。

– 選項(xiàng) DISTINCT 會(huì)把重覆出現(xiàn)的橫列刪去(即只顯示一次),而選項(xiàng) ALL 則會(huì)把所有重覆的保留。

– 條件 condition 可以是 (1) 等式或不等式,或 (2) 字符串的比較,并使用邏輯運(yùn)算符 AND, OR, NOT。

在使用SQL之前,開啟數(shù)據(jù)庫檔:

USE student

例 1 求出所有學(xué)生的資料。

SELECT * FROM student

注意: 1) 這個(gè)指令并不提出任何條件,所以把 WHERE 部分省去。

2) 在 SELECT 部分中使用 * 來表示揀選來源表格的所有欄。

3) 查詢所得的結(jié)果將貯存於一個(gè)暫時(shí)的表格內(nèi)。

id

name dob sex class mtest hcode dcode remission

9801 Peter 06/04/86 M 1A 70 R SSP .F.

9802 Mary 01/10/86 F 1A 92 Y HHM .F.

9803 Johnny 03/16/86 M 1A 91 G SSP .T.

9804 Wendy 07/09/86 F 1B 84 B YMT .F.

9805 Tobe 10/17/86 M 1B 88 R YMT .F.

: : : : : : : : :

例 2 求出 1A 班學(xué)生的名字和社名。

SELECT name, hcode, class FROM student ;

WHERE class="1A"

注意: 這例使用條件 class="1A" 揀選 1A 班學(xué)生:SQL 程序會(huì)從來源表格中的每一橫列逐一地檢查是否符合這條件。然后 SQL 程序會(huì)根據(jù) SELECT 的選項(xiàng)而保留這些橫列內(nèi)的三欄,即 name, hcode 及 class。最后程序會(huì)把所得的結(jié)果貯存於一個(gè)暫時(shí)的表格內(nèi)。

name

hcode class

Peter R 1A

Mary Y 1A

Johnny G 1A

Luke G 1A

Bobby B 1A

Aaron R 1A

: : :

例 3 求出紅社社員的居住地區(qū)。(hcode="R")

SELECT DISTINCT dcode FROM student ;

WHERE hcode="R"

注意: 若兩個(gè)或以上的學(xué)生居住於同一地區(qū),使用選項(xiàng) DISTINCT 便可把重覆的結(jié)果省去。

dcode

HHM

KWC

MKK

SSP

TST

YMT

例 4 求出 1B 班女生的名字和年齡。(準(zhǔn)至一位小數(shù))

SELECT name, ROUND((DATE( )-dob)/365,1) AS age FROM student ;

WHERE class="1B" AND sex="F"

注意: 1) 「1B 班女生」的條件包括兩部分:class="1B" 和 sex="F"。而這項(xiàng)條件必須同時(shí)符合,所以要使用邏輯運(yùn)算符 AND。

2) 在這數(shù)據(jù)庫檔裏并沒有一欄直接貯存年齡,所以我們須要使用學(xué)生的出生日期 dob 來計(jì)算。首先,DATE( )-dob 表示該生的"日歲",再除 365 就變成"年歲"。再用選項(xiàng) AS age 去說明該欄的名稱。

name

age

Wendy 12.1

Kitty 11.5

Janet 12.4

Sandy 12.3

Mimi 12.2

例 5 求出 1A 班沒有學(xué)費(fèi)減免的學(xué)生的名字和編號(hào)。

SELECT name, id, class FROM student ;

WHERE class="1A" AND NOT remission

注意: 1) 這裏包括兩項(xiàng)條件:學(xué)生必須是 1A 班,而且沒有享有學(xué)費(fèi)減免。 所以在 WHERE 部分中加上運(yùn)算符 AND。

2) 因 remission 是一個(gè)邏輯字段,所以可直接在邏輯表達(dá)式中使用 。在 remission 之前加上 NOT 便把意思相反。

name

id class

Peter 9801 1A

Mary 9802 1A

Luke 9810 1A

Bobby 9811 1A

Aaron 9812 1A

Ron 9813 1A

Gigi 9824 1A

: : :

II 比較

expr IN ( value1, value2, value3)

expr BETWEEN value1 AND value2

expr LIKE "%_"

– 在 WHERE 部分中,可使用以上的比較條款:

1) 若 expr 的值是相等於 value1, value2, value3 其中的一個(gè)時(shí),條款 expr IN ( value1, value2, value3) 便會(huì)送回邏輯值 .T.。而 expr 可以是數(shù)值或字符串。

2) 若expr 是界乎於 value1 和 value2 之間,條款

expr BETWEEN value1 AND value2 便會(huì)送回邏輯值 .T.。

3) 若字符串 expr 符合 "%_" 的樣式,條款 expr LIKE "%_" 便會(huì)送回邏輯值 .T.。在樣式中, "%" 代表任何長度的字符串,而 "_" 則代表任何的單一字符。

例 6 求出所有出生於星期三或星期六的學(xué)生。

SELECT name, class, CDOW(dob) AS bdate FROM student ;

WHERE DOW(dob) IN (4,7)

注意: 學(xué)生若在星期三星期六出生, DOW(dob) 使會(huì)送回 數(shù)值 4 或 7,所以用 IN (4,7) 來檢查。

name

class bdate

Peter 1A Wednesday

Wendy 1B Wednesday

Kevin 1C Saturday

Luke 1A Wednesday

Aaron 1A Saturday

: : :

例 7 求出所有不是在一月、三月、六月或九月出生的學(xué)生。

SELECT name, class, dob FROM student ;

WHERE MONTH(dob) NOT IN (1,3,6,9)

注意: 我們不想 MONTH(dob) = 1, 3, 6 或 9, 所以使用 NOT IN (1,3,6,9) 來檢查。

name

class dob

Wendy 1B 07/09/86

Tobe 1B 10/17/86

Eric 1C 05/05/87

Patty 1C 08/13/87

Kevin 1C 11/21/87

Bobby 1A 02/16/86

Aaron 1A 08/02/86

: : :

例 8 求出1A 班的學(xué)生名字,其數(shù)學(xué)測驗(yàn)分?jǐn)?shù)界乎於 80 至 90 分之間。

SELECT name, mtest FROM student ;

WHERE class="1A" AND mtest BETWEEN 80 AND 90

注意: 1) 這裏用了兩個(gè)條件:第一個(gè)是 class="1A",第二個(gè)是測驗(yàn)分?jǐn)?shù)界乎於 80 至 90 分之間。這兩個(gè)條件必須同時(shí)成立,所以須用 AND。

2) 測驗(yàn)分?jǐn)?shù)界乎於 80 至 90 分之間可用 mtest BETWEEN 80 AND 90 來表示。

name

mtest

Luke 86

Aaron 83

Gigi 84

例 9 求出所有學(xué)生其名字是以 "T" 為起首。

SELECT name, class FROM student ;

WHERE name LIKE "T%"

注意: 這裏所用的樣式是 "T%" ,這表示第一個(gè)字符必須是 "T" 而其后可以是任何的字符串。

name

class

Tobe 1B

Teddy 1B

Tim 2A

例10 求出所有紅社社員其名字的第二個(gè)字母是"a"。

SELECT name, class, hcode FROM student ;

WHERE name LIKE "_a%" AND hcode="R"

注意: 這裏所用的樣式是 "_a%" ,而其中的 "_" 符號(hào)代表任何單一字符,亦即第一個(gè)字符是任意的。第二個(gè)字符則必須是 "a",而其后的 "%" 代表任何的字符串。

name

class hcode

Aaron 1A R

Janet 1B R

Paula 2A R

III 群組

SELECT ...... FROM ...... WHERE condition ;

GROUP BY groupexpr [HAVING requirement]

群組函數(shù): COUNT( ), SUM( ), AVG( ), MAX( ), MIN( )

–GROUP BY groupexpr 列出群組組成所依照的表達(dá)式。一般都是數(shù)據(jù)庫檔的一欄。

– WHERE condition 列出個(gè)別橫列所須符合的條件,而 HAVING requirement 則列出個(gè)別群組須符合的條件。

– 可使用以群組函數(shù)來計(jì)算統(tǒng)計(jì)數(shù)項(xiàng):

COUNT( ): 記錄出現(xiàn)的目數(shù)

SUM( ): 總和

AVG( ): 平均值

MAX( ): 最大值

MIN( ): 最小值

例11 求出每一班的人數(shù)。

SELECT class, COUNT(*) FROM student

GROUP BY class

注意: 1) 使用 GROUP BY class, SQL 程序便會(huì)先把表格裏的橫列按照 class 排列起來。

2) 然后 SQL 程序會(huì)把相連的橫列依照 class 來群組。

3) 最后使用群組函數(shù) COUNT(*) 去算數(shù)每組的數(shù)目。

class

cnt

1A 10

1B 9

1C 9

2A 8

2B 8

2C 6

例12 求出每一班的數(shù)學(xué)測驗(yàn)平均分。

SELECT class, AVG(mtest) FROM student GROUP BY class

注意: SQL 程序會(huì)先依照 class 來群組,然后在每一組中計(jì)算該組的 mtest 平均值。

class

avg_mtest

1A 85.90

1B 70.33

1C 37.89

2A 89.38

2B 53.13

2C 32.67

例13 求出每一居住地區(qū)的女生數(shù)目。

SELECT dcode, COUNT(*) FROM student ;

WHERE sex="F" GROUP BY dcode

注意: 查詢的條件為 sex="F"。而 SQL 程序會(huì)先把符合這條件的橫列選出,然后把這些橫列依照 dcode 為群組。

dcode

cnt

HHM 6

KWC 1

MKK 1

SSP 5

TST 4

YMT 8

例14 求出每一區(qū)中一學(xué)生數(shù)學(xué)測驗(yàn)的最高分及最低分。

SELECT MAX(mtest), MIN(mtest), dcode FROM student ;

WHERE class LIKE "1_" GROUP BY dcode

max_mtest

min_mtest dcode

92 36 HHM

91 19 MKK

91 31 SSP

92 36 TST

75 75 TSW

88 38 YMT

注意: 這例使用條件 class LIKE "1_" 來揀選每區(qū)的中一學(xué)生。

例15 列出每一班男生數(shù)學(xué)測驗(yàn)的平均分,但男生人數(shù)不及三人的班則不計(jì)算在內(nèi)。

SELECT AVG(mtest), class FROM student ;

WHERE sex="M" GROUP BY class HAVING COUNT(*) = 3

注意: SQL 程序會(huì)先把符合個(gè)別條件 sex="M" 的橫列揀選出來,然后依照 class 來群組并計(jì)算每組的 mtest 平均值。最后 SQL 程序會(huì)檢查群組條件 COUNT(*) = 3。(這例中 2C 班男生人數(shù)不及三人,所以并沒有在結(jié)果裏顯示出來。)

avg_mtest

class

86.00 1A

77.75 1B

35.60 1C

86.50 2A

56.50 2B

IV 顯示次序

SELECT ...... FROM ...... WHERE ...... GROUP BY ..... ;

ORDER BY colname ASC / DESC

– ORDER BY colname 控制結(jié)果的顯示序。而 colname 代表結(jié)果表格的一欄。而ASC = 升冪, DESC = 降冪。

例16 列出 1A 班男生的名字,并按名字序顯示。

SELECT name, id FROM student ;

WHERE sex="M" AND class="1A" ORDER BY name

name id name id

Peter

9801 Aaron 9812

Johnny 9803 Bobby 9811

Luke 9810 Johnny 9803

Bobby 9811 Luke 9810

Aaron 9812 Peter 9801

Ron 9813 Ron 9813

例17 列出 2A 班的學(xué)生資料,并按居住地區(qū)序顯示。

SELECT name, id, class, dcode FROM student ;

WHERE class="2A" ORDER BY dcode

name id class dcode

Jimmy 9712 2A HHM

Tim 9713 2A HHM

Samual 9714 2A SHT

Rosa 9703 2A SSP

Helen 9702 2A TST

Joseph 9715 2A TSW

Paula 9701 2A YMT

Susan 9704 2A YMT

例18 求出每區(qū)居住學(xué)生的人數(shù),并按降冪顯示。

SELECT COUNT(*) AS cnt, dcode FROM student ;

GROUP BY dcode ORDER BY cnt DESC

cnt

docode

11 YMT

10 HHM

10 SSP

9 MKK

5 TST

2 TSW

1 KWC

1 MMK

1 SHT

例19 列出每社的男社員名字并按班別序顯示。(即社和班的兩層次序)

SELECT name, hcode, class FROM student ;

WHERE sex="M" ORDER BY hcode, class

注意: 這些橫列先按 hcode 排列(即第一層排列);而相同的 hcode,再按 class 次序顯示。

name hcode class

Bobby

B 1A

Teddy B 1B

Joseph B 2A

Zion B 2B

Leslie B 2C

Johnny G 1A

Luke G 1A

Kevin G 1C

George G 1C

: : :

: : :

V 輸出

INTO TABLE tablename

把查詢所得的結(jié)果貯存成數(shù)據(jù)庫檔。

INTO CURSOR temp

把查詢所得的結(jié)果暫時(shí)貯存於電腦的工作記憶裏。

TO FILE filename [ADDITIVE]

把查詢所得的結(jié)果貯存成文字檔。(additive = 附加)

TO PRINTER 輸出到列印機(jī)。

TO SCREEN 輸出到螢?zāi)弧?/p>

例20 按學(xué)生名字的降冪,列出學(xué)生的所有資料,并把結(jié)果貯存成數(shù)據(jù)庫檔NAME.DBF。

SELECT * FROM student ;

ORDER BY name DESC INTO TABLE name.dbf

注意: 1) INTO TABLE name.dbf 要求 SQL 程序把結(jié)果貯存成檔案。

2) 這指令相等於數(shù)據(jù)庫指令 SORT。

3) SQL 程序會(huì)把結(jié)果貯存成一個(gè)新的數(shù)據(jù)庫檔 name.dbf。

id

name dob sex class mtest hcode dcode remission

9707 Zion 07/29/85 M 2B 51 B MKK .F.

9709 Yvonne 08/24/85 F 2C 10 R TST .F.

9804 Wendy 07/09/86 F 1B 84 B YMT .F.

9819 Vincent 03/15/85 M 1C 29 Y MKK .F.

9805 Tobe 10/17/86 M 1B 88 R YMT .F.

9713 Tim 06/19/85 M 2A 91 R HHM .T.

9816 Teddy 01/30/86 M 1B 64 B SSP .F.

:

: : : : : : : :

例21 按社員的班別、性別及名字的次序,把紅社社員的資料列印出來。

SELECT class, name, sex FROM student ;

WHERE hcode="R" ;

ORDER BY class, sex DESC, name TO PRINTER

注意: 1) 這指令要求程序先找出綠社社員,然后把這些橫列以 class, sex 和 name 的次序排列。

2) SQL 程序先把查詢的結(jié)果暫時(shí)貯存於工作記憶裏,然后把這結(jié)果輸出到打印機(jī)。

class

name sex

1A

Aaron M

1A

Peter M

1A Ron M

1B Tobe M

1B Janet F

1B Kitty F

1B

Mimi F

: : :

3. 數(shù)據(jù)庫聯(lián)合、相交及差分

考慮兩個(gè)結(jié)構(gòu)相同的數(shù)據(jù)庫檔 A 和 B。

A 和 B 的聯(lián)合

(A B) union

檢取屬於 A 或 B 的所有橫列。

A 和 B 的相交

(A B) intersection

檢取 A 和 B 所共有的橫列。

A 和 B 的差分

(A–B) difference 檢取只屬於 A 而不屬於 B 的橫列。(即從 A 把 B 的部分排出)

SELECT ...... FROM ...... WHERE ...... ;

UNION ;

SELECT ...... FROM ...... WHERE ......

SELECT ...... FROM table1 ;

WHERE col IN ( SELECT col FROM table2 )

SELECT ...... FROM table1 ;

WHERE col NOT IN ( SELECT col FROM table2 )

實(shí)例:橋牌會(huì)和棋藝會(huì)

考慮學(xué)校橋牌會(huì)和棋藝會(huì)的會(huì)員,他們的資料分別貯存於同一結(jié)構(gòu)的數(shù)據(jù)庫檔 BRIDGE.DBF 和 CHESS.DBF 內(nèi):

欄名 類型 欄寬 內(nèi)容

id 數(shù)字 4 學(xué)生編號(hào)

name 字符 10 學(xué)生名字

sex 字符 1 性別: M / F

class 字符 2 班別

Bridge [A] Chess [B]

id name sex class id name sex class

1 9812 Aaron M 1A 1 9802 Mary F 1A

2 9801 Peter M 1A 2 9801 Peter M 1A

3 9814 Kenny M 1B 3 9815 Eddy M 1B

4 9806 Kitty F 1B 4 9814 Kenny M 1B

5 9818 Edmond M 1C 5 9817 George M 1C

: : : : : : : :

在使用SQL之前,開啟這兩個(gè)數(shù)據(jù)庫檔:

SELECT A

USE bridge

SELECT B

USE chess

例22 本校計(jì)劃舉行一次 "棋橋活動(dòng)",所有棋藝會(huì)和橋牌會(huì)的會(huì)員必須出席。試以班別和名字的次序,列出兩會(huì)會(huì)員的名單。(即兩會(huì)的聯(lián)合)

SELECT * FROM bridge ;

UNION ;

SELECT * FROM chess ;

ORDER BY class, name INTO TABLE party

注意: 所要求的是兩會(huì)的所有會(huì)員,這便是兩會(huì)的聯(lián)合。

Party

id name sex class

1 9812 Aaron M 1A

2 9802 Mary F 1A

3 9801 Peter M 1A

4 9815 Eddy M 1B

5 9814 Kenny M 1B

6 9806 Kitty F 1B

7 9818 Edmond M 1C

8 9817 George M 1C

: : : :

例23 列印兩會(huì)的共同會(huì)員。(即兩會(huì)的相交)

SELECT * FROM bridge ;

WHERE id IN ( SELECT id FROM chess ) ;

TO PRINTER

注意: 這例須找出兩會(huì)所共通的會(huì)員。SQL 程序須檢查橋牌會(huì)的每一個(gè)會(huì)員是否也屬於棋藝會(huì)。若是屬於的話,這人便符合這個(gè)要求了。

Common

id name sex class

1 9801 Peter M 1A

2 9814 Kenny M 1B

: : : :

例24 求出只參加了橋牌會(huì)的會(huì)員名單。(即兩會(huì)之差分)

SELECT * FROM bridge ;

WHERE id NOT IN ( SELECT id FROM chess ) ;

INTO TABLE diff

注意: 1) 這例須從橋牌會(huì)中揀選那些并不屬於棋藝會(huì)的人。所以 SQL 程序須使用 FROM bridge,即從逐一檢查橋牌會(huì)的會(huì)員是否屬於棋藝會(huì),若不屬於的話,這人便符合這個(gè)要求了。

2) "差分"不是對(duì)稱的:若想找出"只參加了棋藝會(huì)的會(huì)員名單",其結(jié)果則會(huì)完全不同。

Diff

Id name sex class

1 9812 Aaron M 1A

2 9806 Kitty F 1B

3 9818 Edmond M 1C

: : : :

4. 多個(gè)數(shù)據(jù)庫

當(dāng)所查詢的資料貯放於兩個(gè)數(shù)據(jù)庫檔時(shí),就須使用接合 (join)。 接合的作用是把一個(gè)數(shù)據(jù)庫檔內(nèi)的一個(gè)橫列與另一個(gè)數(shù)據(jù)庫檔內(nèi)的橫列連合起來,從而把所有不同的組合列出來。 (數(shù)學(xué): Cartesian Product)

自然接合

* 在接合中加上一項(xiàng)接合條件,要求兩檔的共通欄(common column)的值是相同,這稱為自然接合。這目的是要把這兩檔的相關(guān)資料連合起來,變成一個(gè)合一的大表格,再從這表格中執(zhí)行查詢工作。

考慮以下兩個(gè)數(shù)據(jù)庫檔 T1 和 T2:

SELECT a.comcol, a.col1, b.col2, expr1, expr2 ;

FROM table1 a, table2 b ;

WHERE a.comcol = b.comcol

– 在自然接合中,這兩個(gè)數(shù)據(jù)庫檔須要有一個(gè)欄是相同的,這一欄稱為共通欄 。SQL 程序會(huì)先把這兩檔的所有組合列出,然后從中揀選共通欄的值是相同的橫列。

– a 和 b 分別是 table1 和 table2的代號(hào),用以指明各欄所屬的檔。

– 表達(dá)式 expr1, expr2 可以使用 table1 和 table2內(nèi)的各欄。

實(shí)例:樂器班

學(xué)校規(guī)定每個(gè)學(xué)生都須要學(xué)習(xí)一件樂器。現(xiàn)在使用數(shù)據(jù)庫檔 MUSIC.DBF 貯存學(xué)生所學(xué)的樂器名稱 (而學(xué)生的其他資料則貯存於 STUDENT.DBF 內(nèi))

欄名 類型 欄寬 內(nèi)容

id 數(shù)字 4 學(xué)生編號(hào)

type 字符 10 樂器名稱

例25 列出所有學(xué)生的名字及所學(xué)習(xí)的樂器名稱。

SELECT s.class, s.name, s.id, m.type FROM student s, music m ;

WHERE s.id=m.id ORDER BY class, name

注意: 1) 這裏用了s 代表 student.dbf 而 m 代表 music.dbf。

2) 接合條件是 s.id=m.id,表示兩檔的橫列須要依照 id 而接合。

class

name id type

1A Aaron 9812 Piano

1A Bobby 9811 Flute

1A Gigi 9824 Recorder

1A Jill 9820 Piano

1A Johnny 9803 Violin

1A Luke 9810 Piano

1A Mary 9802 Flute

: : : :

例26 求出每班學(xué)習(xí)鋼琴的學(xué)生數(shù)目。

SELECT s.class, COUNT(*) FROM student s, music m ;

WHERE s.id=m.id AND m.type="Piano" ;

GROUP BY class ORDER BY class

注意: 1) 裏先首先用了接合條件 s.id=m.id 把兩檔自然接合起來。

2) SQL 程序然后從接合的結(jié)果(表格形式)中再揀選去符合條件 m.type="Piano" 的橫列。

3) 最后 SQL 程序會(huì)依照 class 而群組,并數(shù)算每班的數(shù)目。

class cnt

1A 4

1B 2

1C 1

外接合

* 外接合是自然接合再加上沒有配合的部分。

SELECT a.common, a.column1, b.column2, expr1, expr2 ;

FROM table1 a, table2 b ;

WHERE a.comcol = b.comcol ;

UNION ;

SELECT comcol, col1, nullval, nullval, nullval ;

FROM table1 ;

WHERE a.comcol NOT IN ( SELECT comcol FROM table2 )

– 外接合的指令包括兩個(gè) SELECT 部分,再以 UNION 聯(lián)會(huì)起來。

– 第一部分是自然接合(即成功接合),第二部分則是沒有配合(即是在第一部分不能自然接合的橫列)。

– 為了使第二部分與第一部分的結(jié)構(gòu)一樣,第二部分中沒有數(shù)值的位置須填上空值 (null value),即空字符串""、數(shù)值零、 邏輯值 .F. 或空日期 { / / } 。

例27 列出尚未選擇樂器的學(xué)生名字。(即沒有相配)

SELECT class, name, id FROM student ;

WHERE id NOT IN ( SELECT id FROM music ) ;

ORDER BY class, name

注意: 1) 這指令會(huì)從 student.dbf 中選出那些在另一檔 music.dbf 沒有配合的橫列。

2) ( SELECT id FROM music) 選出那些在數(shù)據(jù)庫檔 music.dbf 出現(xiàn)的 id,所以條件 id NOT IN (...) 能檢索出沒有配對(duì)的橫列。

class

name id

1A Mandy 9821

1B Kenny 9814

1B Tobe 9805

1C Edmond 9818

1C George 9817

: : :

例28 列出一份名單,去查核所有學(xué)生學(xué)習(xí)的樂器。名單須包括尚未參加樂器班的學(xué)生名字。(即外接合)

SELECT s.class, s.name, s.id, m.type ;

FROM stu

什么是數(shù)據(jù)庫,PHP,ASP是數(shù)據(jù)庫嗎? 數(shù)據(jù)庫能支持那些語言? PHP,ASP 等等.詳細(xì)解釋

數(shù)據(jù)庫的定義可以查查專業(yè)的詳細(xì)定義,直白一點(diǎn)兒就是存放數(shù)據(jù)的東西,不過不只是數(shù)據(jù)存放,也提供強(qiáng)大的信息處理功能。數(shù)據(jù)庫支持的語言理論上是沒限制的,關(guān)鍵是那種語言有沒有提供該數(shù)據(jù)庫的訪問接口。

PHP,ASP 等都不是數(shù)據(jù)庫,是編程語言,目前的數(shù)據(jù)庫用的比較多的就是 MySQL,SQLSERVER,ORACLE

數(shù)據(jù)庫管理系統(tǒng)軟件有哪些

數(shù)據(jù)庫管理系統(tǒng)軟件:

1、OracleDatabase

知名的Oracle數(shù)據(jù)庫,一直處于行業(yè)領(lǐng)先地位,是許多人認(rèn)可的、世界上最流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。

作為“十大數(shù)據(jù)庫管理系統(tǒng)排名榜”之首,Oracle數(shù)據(jù)庫使用方便、功能強(qiáng)大,可擴(kuò)展性強(qiáng)、數(shù)據(jù)安全性強(qiáng),系統(tǒng)可移植性好、穩(wěn)定性佳,適用于各類大、中、小微機(jī)環(huán)境。2019年,艾媒金榜發(fā)布“企業(yè)服務(wù)品牌之HRM系統(tǒng)排行榜”,Oracle數(shù)據(jù)庫位列第一。

2、Navicat

Navicat是一套可創(chuàng)建多個(gè)連接的數(shù)據(jù)庫管理工具,可以方便管理Oracle、MySQL、PostgreSQL等多個(gè)不同類型的數(shù)據(jù)庫,并支持管理騰訊云、阿里云等云數(shù)據(jù)庫。

整體而言,Navicat的功能可以滿足專業(yè)開發(fā)人員的需求,同時(shí)對(duì)數(shù)據(jù)庫服務(wù)器初學(xué)者來說又相對(duì)容易。曾有一項(xiàng)數(shù)據(jù)統(tǒng)計(jì),《財(cái)富》世界500強(qiáng)中有超過100家公司使用了Navicat。

3、DBeaver

DBeaver是一個(gè)通用的數(shù)據(jù)庫管理工具和SQL客戶端,具有相對(duì)較高的易用性,并且免費(fèi)、支持跨平臺(tái)使用、允許擴(kuò)展插件。

支持的操作系統(tǒng)包括Windows、Linux、MacOS、Solaris、AIX、HPUX;基本特性編輯:支持?jǐn)?shù)據(jù)庫元數(shù)據(jù)瀏覽,支持元數(shù)據(jù)編輯(包括表/列/鍵/索引),支持SQL語句和腳本的執(zhí)行,支持SQL關(guān)鍵字高亮顯示,簡單友好的顯示頁面。

4、Mysql

MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在WEB應(yīng)用方面,MySQL也是最好的RDBMS應(yīng)用軟件之一。

作為十大數(shù)據(jù)庫管理系統(tǒng)之一,MySQL所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言;其軟件采用雙授權(quán)政策,分社區(qū)版、商業(yè)版,由于其速度快、體積小、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。

5、PhpMyAdmin

phpMyAdmin是一個(gè)以PHP為基礎(chǔ),以Web-Base方式架構(gòu)在網(wǎng)站主機(jī)上的MySQL的數(shù)據(jù)庫管理系統(tǒng)軟件,管理者可用Web接口管理MySQL數(shù)據(jù)庫。

功能特性包括但不限于:支持大多數(shù)MySQL功能;從CSV和SQL導(dǎo)入數(shù)據(jù),將數(shù)據(jù)導(dǎo)出為各種格式;以各種格式創(chuàng)建數(shù)據(jù)庫布局的圖形;使用逐例查詢(QBE)創(chuàng)建復(fù)雜查詢;使用一組預(yù)定義的函數(shù)將存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)換為任何格式。

6、IBMDB2

DB2是IBM公司開發(fā)的關(guān)系型數(shù)據(jù)庫系統(tǒng),主要應(yīng)用于大型應(yīng)用系統(tǒng),具有較好的可伸縮性,支持從大型機(jī)到單用戶環(huán)境。

DB2提供了高層次的數(shù)據(jù)利用性、完整性、安全性、可恢復(fù)性,以及小規(guī)模到大規(guī)模應(yīng)用程序的執(zhí)行能力,具有與平臺(tái)無關(guān)的基本功能和SQL命令。DB2可以在Windows、UNIX和Linux操作系統(tǒng)上運(yùn)行,是最強(qiáng)大的十大數(shù)據(jù)庫管理系統(tǒng)之一。

7、MSSQLServer

SQL Server是微軟推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有使用方便、可伸縮性佳、與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨平臺(tái)使用。SQL Serve最初是由微軟、Sybase 和Ashton-Tate三家公司共同開發(fā)的,于1988年推出了第一個(gè)OS/2版本。

在Windows NT推出后,Microsoft與Sybase在SQL Server的開發(fā)上就分道揚(yáng)鑣了,Microsoft將SQL Server移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server的Windows NT版本。Sybase則較專注于SQL Server在Unix系統(tǒng)上的應(yīng)用。

8、ApacheCassandra

數(shù)據(jù)庫管理軟件哪個(gè)好?ApacheCassandra是一款優(yōu)秀的分布式數(shù)據(jù)庫軟件。

該DBMS軟件突出特點(diǎn):一,模式靈活,使用時(shí)就像文檔存儲(chǔ),用戶不必提前解決記錄中的字段,可以在系統(tǒng)運(yùn)行時(shí)隨意的添加或移除字段,最終提升效率。

二,具有純粹意義上的水平擴(kuò)展。為給集群添加更多容量,可以指向另一臺(tái)計(jì)算機(jī),用戶不必重啟任何進(jìn)程,改變應(yīng)用查詢,或手動(dòng)遷移任何數(shù)據(jù)。三,多數(shù)據(jù)中心識(shí)別。

9、Redis

Redis是C語言開發(fā)的一個(gè)開源高性能鍵值對(duì)的內(nèi)存數(shù)據(jù)庫,可以用來做數(shù)據(jù)庫、緩存、消息中間件等場景,是一種NoSQL的數(shù)據(jù)庫。

其主要特點(diǎn):性能優(yōu)秀,數(shù)據(jù)是存儲(chǔ)在內(nèi)存中,讀寫速度非常快,可支持并發(fā)10WQPS;可作為分布式鎖;支持五種數(shù)據(jù)類型;支持?jǐn)?shù)據(jù)持久化到磁盤;可以作為消息中間件使用等。數(shù)據(jù)緩存是Redis極其重要的一個(gè)場景。

10、Sybase

十大數(shù)據(jù)庫管理系統(tǒng)排名榜中的Sybase,是一種典型的UNIX或WindowsNT平臺(tái)上客戶機(jī)/服務(wù)器環(huán)境下的大型數(shù)據(jù)庫系統(tǒng)。系統(tǒng)具有完備的觸發(fā)器、存儲(chǔ)過程、規(guī)則以及完整性定義,支持優(yōu)化查詢,具有較好的數(shù)據(jù)安全性。

Sybase還提供了一套應(yīng)用程序編程接口和庫,可以與非Sybase數(shù)據(jù)源及服務(wù)器集成,允許在多個(gè)數(shù)據(jù)庫之間復(fù)制數(shù)據(jù),適于創(chuàng)建多層應(yīng)用。

數(shù)據(jù)庫管理系統(tǒng)有哪些

數(shù)據(jù)庫管理系統(tǒng)軟件(DBMS)有哪些呢?目前互聯(lián)網(wǎng)上常見的數(shù)據(jù)庫管理軟件有SYBASE、DB2、ORACLE、MySQL、ACCESS、Visual?Foxpro、MS?SQL?Server、Informix、PostgreSQL這幾種。

數(shù)據(jù)庫管理系統(tǒng)軟件的種類有很多,常見的也很多,但是針對(duì)不同人群的不同需求,常用的數(shù)據(jù)庫管理系統(tǒng)軟件也那么三五種:ORACLE、MySQL、ACCESS、MS?SQL?Server這些是不同領(lǐng)域常用的數(shù)據(jù)庫管理系統(tǒng)軟件,下面我們來介紹一下這些軟件各自的優(yōu)勢(shì)何在。


網(wǎng)頁標(biāo)題:php屬于數(shù)據(jù)管理軟件嗎,php用什么數(shù)據(jù)庫
網(wǎng)站鏈接:http://weahome.cn/article/hcjpge.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部