导读:今天编程笔记来给各位分享关于男生php是什么意思呀的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
测试工程师对性别没有具体的要求,不像许多IT职位那样,更加偏好于男性。所以相较于其他开发岗位,女性占比稍多。
在IT业,竞争异常激烈,人们每天要面对大量不同工作压力,尤其是软件开发工作,需要很强的逻辑推理能力,在高强度的工作压力下,更是对人们脑力、体力的双项考验,因此,许多用人单位对于这一职位的招聘更偏向于男性。而测试工程师相比之下,工作的压力不是太大,不需要天天去思维创造,工作重点是在注重经验的积累上面,同时,测试工程师需要调节软件开发人员、项目经理和自身的关系,因为是在找编程人员的漏洞,所以在沟通方面女性具有独特的优势。
如果说先前从事软件工程师的男生比女生占有着性别上的优势,那现在的软件测试行业将要改写 女性这一“不公”的历史。在某种意义上,测试这一职业特性在耐性、心细、敏感、逆向、设问、怀疑、举证、韧性、安静的要求上,与女生的个性气质也是相符合的。
PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。HP 是一种 HTML 内嵌式的语言PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。
PHP 独特的语法混合了C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。PHP是全球范围内应用广泛的开发语言,PHP因其开发周期短、免费、稳定、安全、简单易学、跨平台性等因素入选全球五大受欢迎的编程语言!
PHP 是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP 建立一个真正交互的WEB 站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。
简介
PHP 是能让你生成动态网页的工具之一。PHP 代表:超文本预处理器(PHP:Hypertext Preprocessor)。PHP 是完全免费的,不用花钱,你可以从PHP 官方站点()自由下载。PHP 遵守GNU 公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP 在大多数Unix 平台,GUN/Linux和微软Windows平台上均可以运行。怎样在Windows环境的PC 机器或Unix机器上安装PHP 的资料可以在PHP 官方站点上找到,也可以查阅网页陶吧的“PHP 安装全攻备”专题文章。安装过程很简单。
如果你的机器解决了2000问题,那么PHP 也一样没有千年虫问题!
历史
三年前,Rasmus Lerdorf为了创建他的在线简历而创造了"个人主页工具"(Personal Home Page Tools)。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。
PHP 虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl 速度想媲美的被称作Zend 的新引擎,而PHP4 就可以充分利用这个引擎。现在,PHP4 正式版已经发布,大家可以到php 的官方站点上去下载。Andy Gutmans 和Zeev Suraki 是Zend 的主要作者。可以去Zend 站点()了解更多。
PHP 的应用在个人性质的web工程中增长显著。根据Netcraft在1999 年10月的报告,有931122个域和321128 个IP 地址利用PHP 技术。
PHP 的先进之处
应用PHP 有许多好处。当然已知的不利之处在于PHP 由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4 之前)。但是PHP 的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com 这样的极受欢迎的站点,你不会感觉出PHP 的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP 有那些优点:
学习过程
我个人更喜欢PHP 的非常简单的学习过程。与Java和Perl 不同,你不必把头埋进100 多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP 编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。
PHP 的语法类似于C,Perl,ASP 或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP 太简单了。相反的,如果你对PHP 了解较多,那么你对于其他几种语言的学习都很简单了。
你只需要30分钟就可以将PHP 的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB 站点。由于PHP 代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP 使得你的站点更加具有动态特性。
数据库连接
PHP 可以编译成具有与许多数据库相连接的函数。PHP 与MySQL是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。
可扩展性
就像前面说的那样,PHP 已经进入了一个高速发展的时期。对于一个非程序员来说为PHP 扩展附加功能可能会比较难,但是对于一个PHP 程序员来说并不困难。
面向对象编程
PHP 提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。
可伸缩性
传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP 就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP 可以具有更高的可伸缩性。
更多特点
PHP 的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用PHP 连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP 安装版本需要哪些功能。引用Nissan 的Xterra 的话来说就是PHP 可以做到你想让它做到的一切而且无所不能!
PHP 是一种服务器端的,嵌入HTML的脚本语言。PHP区别其他像客户端Javascript的地方是它的代码在服务器端执行.PHP能做什么?
最低水平,PHP可以做任何其他CGI程序所能做的事,例如收集表格数据,生成动态页面内容,或者收发COOKIEs.可能最强大,最有意义的特性是PHP支持大范围的数据库.书写一个支持数据库的Web 页面是难以置信的简单.
下面是当前支持的数据库:
Adabas D InterBase Solid
dBase mSQL Sybase
Empress MySQL Velocis
FilePro Oracle Unix dbm
Informix PostgreSQL
PHP通过协议也支持与其他服务的"交谈",像IMAP, SNMP, NNTP, POP3, 甚至是 HTTP. 你也可以打开晦涩的 网络接口和其他协议交互.
PHP的简要历史
1994年秋季, Rasmus Lerdorf 开始构思 PHP. 早期的非发行版本被用在他的主页上,以追踪谁在看他的在线简历. 1995年年初第一版本出台,当时PHP只被认为是个人主页开发工具.它由一个非常单纯的只能理解很少数特殊宏的分析引擎和 一些用在主页后端通用的工具组成.如留言簿,计数器和其他一些东西.这个分析器在1995年年中被重写并被命名为 PHP/FI 第二版. FI来自 Rasmus 写的另外一个包, 用于解释 html 形式的数据.他结合了个人主页工具脚本和形式解析器,并加 上mSQL支持.这样就产生 PHP/FI 了. PHP/FI以令人惊奇的步调成长,人们开始把自己的代码贡献给它.
很难给出它的硬统计表,但可以估计在1996年末,整个世界至少有15,000个网站在用PHP/FI.到1997年年中,这个 数字已经超过50,000了. 而在此时PHP的发展也发生了变化.由Rasmus自己偏爱的和几个人开发的项目变成一个更有组织的团 体成就.Zeev Suraski和Andi Gutmans重写了解析器.这个新的解析器成为PHP版本3的基础.许多有用的代码从PHP/FI 继承到PHP3,并且很多是完全重写的.
今天(1999年年中)不管是PHP/FI或PHP3与很多商业产品捆绑在一块,例如C2级强度的Web服务器和红帽子Linux. 根据NetCraft提供的数据推断,保守估计全世界应用PHP的网站已超过150,000个.由此看来,它比在因特网上运行Netscape 的旗舰企业服务器的站点还多.
PHP 是一种用来制作动态网页的服务器端脚本语言。你通过PHP和HTML创建页面。当访问者打开网页时,服务器端便会处理 PHP 指令,然后把其处理结果送到访问者的浏览器上面,就好像 ASP 或者是 ColdFusion 一样。然而,PHP 跟 ASP 或 ColdFusion 不一样的地方在于,它是跨平台的开放源代码。PHP 可以在 Windows NT 以及很多不同的 Unix 版本中执行,它也可以被编译为一个 Apache 模块,或者是一个CGI二进制文件。当被编译为 Apache 模快时,PHP 尤其轻巧方便。它没有任何繁琐程序所产生的负担,因此可以很快的返回结果,同时也不需为了保持较小的服务器内存映象,而去调整mod_perl。
1. 引言
SQL是什麼?
* SQL (Structured Query Language)代表结构化查询语言。
* 当用户发出一项查询,便可从数据库档内获得若干资料。这项查询是根据用户所提供的条件 (condition) 所作出的一项检索。而 SQL则是一个可让用户把条件列明的查询语言。这样,用户只须列明查询的条件,而不须要实际知道有关的检索方法。
* 一般的数据库管理软件系统 (DBMS) 都包含 SQL 功能。
SQL的概念
* 通过 SQL 指令,用户先列出数据库档及查询的条件, SQL 程序便会在这数据库档内检查每笔记录是否符合这项条件,并把有关的资料显示出来。这个过程称为检索。 (见例 2)
* 用户除了直接查问各笔记录的资料外,也可查问统计数项,例如最大值、最小值、总和及平均值。
* 查询所得的结果会以表格的形式显示,用户亦可指示 SQL 程序把结果贮存成为数据库档。
在 FoxPro 如何使用 SQL
* 使用 SQL,必须先把有关数据库档开启。
* 用户可使用指令视窗 (Command Window) 直接把指令输入,亦可使用对话方块把指令输入。
* 若用户选用字符串的完全配对时,便须输入 SET ANSI ON。
2. SQL检索指令的基本结构
一般语法 SELECT, ALL / DISTINCT, *,
AS, FROM, WHERE
比较 IN, BETWEEN, LIKE "% _"
群组 GROUP BY, HAVING,
COUNT( ), SUM( ), AVG( ), MAX( ), MIN( )
显示次序 ORDER BY, ASC / DESC
逻辑运算符 AND, OR, NOT
输出 INTO TABLE / CURSOR
TO FILE [ADDITIVE], TO PRINTER, TO SCREEN
联合 UNION
简称:
expr = 表达式 expression, groupexpr = 群组表达式 group expression
col = 栏 column, comcol = 共同栏 common column
colname = 栏名 column name
nullval = 空值 null value
实例:学生个人资料
例子: 考虑以下贮存学生数据的数据库档 STUDENT. DBF:
(i) hcode 表示学生的社名(即红黄蓝绿四社)。
R = Red, Y = Yellow, B = Blue, G = Green
(ii) dcode 表示学生的居住地区码。
eg. TST = 尖沙咀(Tsim Sha Tsui), MKK = 旺角(Mong Kok)
(iii) remission 表示学生是否享有学费减免:
.T. =享有学费减免, .F. = 没有学费减免
(iv) mtest 贮存学生数学测验的分数,满分为100。
栏名 类型 栏宽 内容
id 数字 4 学生编号
name 字符 10 学生名字
dob 日期 8 出生日期
sex 字符 1 性别: M / F
class 字符 2 班别
hcode 字符 1 社名: R, Y, B, G
dcode 字符 3 地区码
remission 逻辑 1 学费减免
mtest 数字 2 数学测验分数
I 一般语法
SELECT ...... FROM ...... WHERE ......
SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ;
FROM tablename WHERE condition
– SQL 程序会从数据库档 tablename 选取符合条件的横列 (row) 并以表格的格式显示。
– 表达式 expr1, expr2 可以是 (1) 字段,或 (2) 以函数和字段组成的表达式。
– 而 col1, col2 是表达式 expr1, expr2 在输出结果的表格内的栏名。
– 选项 DISTINCT 会把重覆出现的横列删去(即只显示一次),而选项 ALL 则会把所有重覆的保留。
– 条件 condition 可以是 (1) 等式或不等式,或 (2) 字符串的比较,并使用逻辑运算符 AND, OR, NOT。
在使用SQL之前,开启数据库档:
USE student
例 1 求出所有学生的资料。
SELECT * FROM student
注意: 1) 这个指令并不提出任何条件,所以把 WHERE 部分省去。
2) 在 SELECT 部分中使用 * 来表示拣选来源表格的所有栏。
3) 查询所得的结果将贮存於一个暂时的表格内。
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 班学生的名字和社名。
SELECT name, hcode, class FROM student ;
WHERE class="1A"
注意: 这例使用条件 class="1A" 拣选 1A 班学生:SQL 程序会从来源表格中的每一横列逐一地检查是否符合这条件。然后 SQL 程序会根据 SELECT 的选项而保留这些横列内的三栏,即 name, hcode 及 class。最后程序会把所得的结果贮存於一个暂时的表格内。
name
hcode class
Peter R 1A
Mary Y 1A
Johnny G 1A
Luke G 1A
Bobby B 1A
Aaron R 1A
: : :
例 3 求出红社社员的居住地区。(hcode="R")
SELECT DISTINCT dcode FROM student ;
WHERE hcode="R"
注意: 若两个或以上的学生居住於同一地区,使用选项 DISTINCT 便可把重覆的结果省去。
dcode
HHM
KWC
MKK
SSP
TST
YMT
例 4 求出 1B 班女生的名字和年龄。(准至一位小数)
SELECT name, ROUND((DATE( )-dob)/365,1) AS age FROM student ;
WHERE class="1B" AND sex="F"
注意: 1) 「1B 班女生」的条件包括两部分:class="1B" 和 sex="F"。而这项条件必须同时符合,所以要使用逻辑运算符 AND。
2) 在这数据库档裏并没有一栏直接贮存年龄,所以我们须要使用学生的出生日期 dob 来计算。首先,DATE( )-dob 表示该生的"日岁",再除 365 就变成"年岁"。再用选项 AS age 去说明该栏的名称。
name
age
Wendy 12.1
Kitty 11.5
Janet 12.4
Sandy 12.3
Mimi 12.2
例 5 求出 1A 班没有学费减免的学生的名字和编号。
SELECT name, id, class FROM student ;
WHERE class="1A" AND NOT remission
注意: 1) 这裏包括两项条件:学生必须是 1A 班,而且没有享有学费减免。 所以在 WHERE 部分中加上运算符 AND。
2) 因 remission 是一个逻辑字段,所以可直接在逻辑表达式中使用 。在 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 其中的一个时,条款 expr IN ( value1, value2, value3) 便会送回逻辑值 .T.。而 expr 可以是数值或字符串。
2) 若expr 是界乎於 value1 和 value2 之间,条款
expr BETWEEN value1 AND value2 便会送回逻辑值 .T.。
3) 若字符串 expr 符合 "%_" 的样式,条款 expr LIKE "%_" 便会送回逻辑值 .T.。在样式中, "%" 代表任何长度的字符串,而 "_" 则代表任何的单一字符。
例 6 求出所有出生於星期三或星期六的学生。
SELECT name, class, CDOW(dob) AS bdate FROM student ;
WHERE DOW(dob) IN (4,7)
注意: 学生若在星期三星期六出生, DOW(dob) 使会送回 数值 4 或 7,所以用 IN (4,7) 来检查。
name
class bdate
Peter 1A Wednesday
Wendy 1B Wednesday
Kevin 1C Saturday
Luke 1A Wednesday
Aaron 1A Saturday
: : :
例 7 求出所有不是在一月、三月、六月或九月出生的学生。
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 班的学生名字,其数学测验分数界乎於 80 至 90 分之间。
SELECT name, mtest FROM student ;
WHERE class="1A" AND mtest BETWEEN 80 AND 90
注意: 1) 这裏用了两个条件:第一个是 class="1A",第二个是测验分数界乎於 80 至 90 分之间。这两个条件必须同时成立,所以须用 AND。
2) 测验分数界乎於 80 至 90 分之间可用 mtest BETWEEN 80 AND 90 来表示。
name
mtest
Luke 86
Aaron 83
Gigi 84
例 9 求出所有学生其名字是以 "T" 为起首。
SELECT name, class FROM student ;
WHERE name LIKE "T%"
注意: 这裏所用的样式是 "T%" ,这表示第一个字符必须是 "T" 而其后可以是任何的字符串。
name
class
Tobe 1B
Teddy 1B
Tim 2A
例10 求出所有红社社员其名字的第二个字母是"a"。
SELECT name, class, hcode FROM student ;
WHERE name LIKE "_a%" AND hcode="R"
注意: 这裏所用的样式是 "_a%" ,而其中的 "_" 符号代表任何单一字符,亦即第一个字符是任意的。第二个字符则必须是 "a",而其后的 "%" 代表任何的字符串。
name
class hcode
Aaron 1A R
Janet 1B R
Paula 2A R
III 群组
SELECT ...... FROM ...... WHERE condition ;
GROUP BY groupexpr [HAVING requirement]
群组函数: COUNT( ), SUM( ), AVG( ), MAX( ), MIN( )
–GROUP BY groupexpr 列出群组组成所依照的表达式。一般都是数据库档的一栏。
– WHERE condition 列出个别横列所须符合的条件,而 HAVING requirement 则列出个别群组须符合的条件。
– 可使用以群组函数来计算统计数项:
COUNT( ): 记录出现的目数
SUM( ): 总和
AVG( ): 平均值
MAX( ): 最大值
MIN( ): 最小值
例11 求出每一班的人数。
SELECT class, COUNT(*) FROM student
GROUP BY class
注意: 1) 使用 GROUP BY class, SQL 程序便会先把表格裏的横列按照 class 排列起来。
2) 然后 SQL 程序会把相连的横列依照 class 来群组。
3) 最后使用群组函数 COUNT(*) 去算数每组的数目。
class
cnt
1A 10
1B 9
1C 9
2A 8
2B 8
2C 6
例12 求出每一班的数学测验平均分。
SELECT class, AVG(mtest) FROM student GROUP BY class
注意: SQL 程序会先依照 class 来群组,然后在每一组中计算该组的 mtest 平均值。
class
avg_mtest
1A 85.90
1B 70.33
1C 37.89
2A 89.38
2B 53.13
2C 32.67
例13 求出每一居住地区的女生数目。
SELECT dcode, COUNT(*) FROM student ;
WHERE sex="F" GROUP BY dcode
注意: 查询的条件为 sex="F"。而 SQL 程序会先把符合这条件的横列选出,然后把这些横列依照 dcode 为群组。
dcode
cnt
HHM 6
KWC 1
MKK 1
SSP 5
TST 4
YMT 8
例14 求出每一区中一学生数学测验的最高分及最低分。
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_" 来拣选每区的中一学生。
例15 列出每一班男生数学测验的平均分,但男生人数不及三人的班则不计算在内。
SELECT AVG(mtest), class FROM student ;
WHERE sex="M" GROUP BY class HAVING COUNT(*) = 3
注意: SQL 程序会先把符合个别条件 sex="M" 的横列拣选出来,然后依照 class 来群组并计算每组的 mtest 平均值。最后 SQL 程序会检查群组条件 COUNT(*) = 3。(这例中 2C 班男生人数不及三人,所以并没有在结果裏显示出来。)
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 控制结果的显示序。而 colname 代表结果表格的一栏。而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 班的学生资料,并按居住地区序显示。
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 求出每区居住学生的人数,并按降幂显示。
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
把查询所得的结果贮存成数据库档。
INTO CURSOR temp
把查询所得的结果暂时贮存於电脑的工作记忆裏。
TO FILE filename [ADDITIVE]
把查询所得的结果贮存成文字档。(additive = 附加)
TO PRINTER 输出到列印机。
TO SCREEN 输出到萤幕。
例20 按学生名字的降幂,列出学生的所有资料,并把结果贮存成数据库档NAME.DBF。
SELECT * FROM student ;
ORDER BY name DESC INTO TABLE name.dbf
注意: 1) INTO TABLE name.dbf 要求 SQL 程序把结果贮存成档案。
2) 这指令相等於数据库指令 SORT。
3) SQL 程序会把结果贮存成一个新的数据库档 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 程序先把查询的结果暂时贮存於工作记忆裏,然后把这结果输出到打印机。
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. 数据库联合、相交及差分
考虑两个结构相同的数据库档 A 和 B。
A 和 B 的联合
(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 )
实例:桥牌会和棋艺会
考虑学校桥牌会和棋艺会的会员,他们的资料分别贮存於同一结构的数据库档 BRIDGE.DBF 和 CHESS.DBF 内:
栏名 类型 栏宽 内容
id 数字 4 学生编号
name 字符 10 学生名字
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之前,开启这两个数据库档:
SELECT A
USE bridge
SELECT B
USE chess
例22 本校计划举行一次 "棋桥活动",所有棋艺会和桥牌会的会员必须出席。试以班别和名字的次序,列出两会会员的名单。(即两会的联合)
SELECT * FROM bridge ;
UNION ;
SELECT * FROM chess ;
ORDER BY class, name INTO TABLE party
注意: 所要求的是两会的所有会员,这便是两会的联合。
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 列印两会的共同会员。(即两会的相交)
SELECT * FROM bridge ;
WHERE id IN ( SELECT id FROM chess ) ;
TO PRINTER
注意: 这例须找出两会所共通的会员。SQL 程序须检查桥牌会的每一个会员是否也属於棋艺会。若是属於的话,这人便符合这个要求了。
Common
id name sex class
1 9801 Peter M 1A
2 9814 Kenny M 1B
: : : :
例24 求出只参加了桥牌会的会员名单。(即两会之差分)
SELECT * FROM bridge ;
WHERE id NOT IN ( SELECT id FROM chess ) ;
INTO TABLE diff
注意: 1) 这例须从桥牌会中拣选那些并不属於棋艺会的人。所以 SQL 程序须使用 FROM bridge,即从逐一检查桥牌会的会员是否属於棋艺会,若不属於的话,这人便符合这个要求了。
2) "差分"不是对称的:若想找出"只参加了棋艺会的会员名单",其结果则会完全不同。
Diff
Id name sex class
1 9812 Aaron M 1A
2 9806 Kitty F 1B
3 9818 Edmond M 1C
: : : :
4. 多个数据库
当所查询的资料贮放於两个数据库档时,就须使用接合 (join)。 接合的作用是把一个数据库档内的一个横列与另一个数据库档内的横列连合起来,从而把所有不同的组合列出来。 (数学: Cartesian Product)
自然接合
* 在接合中加上一项接合条件,要求两档的共通栏(common column)的值是相同,这称为自然接合。这目的是要把这两档的相关资料连合起来,变成一个合一的大表格,再从这表格中执行查询工作。
考虑以下两个数据库档 T1 和 T2:
SELECT a.comcol, a.col1, b.col2, expr1, expr2 ;
FROM table1 a, table2 b ;
WHERE a.comcol = b.comcol
– 在自然接合中,这两个数据库档须要有一个栏是相同的,这一栏称为共通栏 。SQL 程序会先把这两档的所有组合列出,然后从中拣选共通栏的值是相同的横列。
– a 和 b 分别是 table1 和 table2的代号,用以指明各栏所属的档。
– 表达式 expr1, expr2 可以使用 table1 和 table2内的各栏。
实例:乐器班
学校规定每个学生都须要学习一件乐器。现在使用数据库档 MUSIC.DBF 贮存学生所学的乐器名称 (而学生的其他资料则贮存於 STUDENT.DBF 内)
栏名 类型 栏宽 内容
id 数字 4 学生编号
type 字符 10 乐器名称
例25 列出所有学生的名字及所学习的乐器名称。
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 求出每班学习钢琴的学生数目。
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 程序然后从接合的结果(表格形式)中再拣选去符合条件 m.type="Piano" 的横列。
3) 最后 SQL 程序会依照 class 而群组,并数算每班的数目。
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 )
– 外接合的指令包括两个 SELECT 部分,再以 UNION 联会起来。
– 第一部分是自然接合(即成功接合),第二部分则是没有配合(即是在第一部分不能自然接合的横列)。
– 为了使第二部分与第一部分的结构一样,第二部分中没有数值的位置须填上空值 (null value),即空字符串""、数值零、 逻辑值 .F. 或空日期 { / / } 。
例27 列出尚未选择乐器的学生名字。(即没有相配)
SELECT class, name, id FROM student ;
WHERE id NOT IN ( SELECT id FROM music ) ;
ORDER BY class, name
注意: 1) 这指令会从 student.dbf 中选出那些在另一档 music.dbf 没有配合的横列。
2) ( SELECT id FROM music) 选出那些在数据库档 music.dbf 出现的 id,所以条件 id NOT IN (...) 能检索出没有配对的横列。
class
name id
1A Mandy 9821
1B Kenny 9814
1B Tobe 9805
1C Edmond 9818
1C George 9817
: : :
例28 列出一份名单,去查核所有学生学习的乐器。名单须包括尚未参加乐器班的学生名字。(即外接合)
SELECT s.class, s.name, s.id, m.type ;
FROM stu
php学完之后能写数据库,和一些框架,很多东西都可以用到,具体学的就是php呀,当然不同的学校可能会掺杂不同的课程,薪资待遇也是跟自己的技术有关联的,希望能帮到你.
结语:以上就是编程笔记为大家整理的关于男生php是什么意思呀的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于男生php是什么意思呀的相关内容别忘了在本站进行查找喔。