没有合适的资源?快使用搜索试试~ 我知道了~
SQL语句从入门到精通
资源推荐
资源详情
资源评论
第 10 章 SQL 基础
本章内容
SQL 介绍
使用 SELECT 语句从表中取数据
创建新表
字段属性
向表中添加数据
删除和修改表
为了建立交互站点,你需要使用数据库来存储来自访问者的信息。例如,你
要建立一个职业介绍服务的站点,你就需要存储诸如个人简历,所感兴趣的工
作等等这样的信息。创建动态网叶也需要使用数据库,如果你想显示符合来访
者要求的最好的工作,你就需要从数据库中取出这份工作的信息。你将会发现,
在许多情况下需要使用数据库。
在这一章里,你将学会怎样使用“结构化查询语言”(〕来操作数据库。
语言是数据库的标准语言。在 中,无论何时你要访
问一个数据库,你就要使用 语言。因此,掌握好 对 编程是非常
重要的。
注意:
你可以把“读作“,也可以按单个字母的读音读作 --。
两种发音都是正确的,每种发音各有大量的支持者。在本书里,认为“读
作“。
通过这一章的学习,你将理解怎样用 实现数据库查询,你将学会怎样
使用这种查询从数据表中取出信息,最后,你将学会怎样设计和建立自己的数
据库。
注意:
通过下面几章对 的介绍,你将对 有足够的了解,从而可以有效地
使用 。但是, 是一种复杂的语言,本书不可能包括
它的全部细节。要全面掌握 语言,你需要学习在
中使用 。你可以到附近的书店去买一本 。
介绍:
本书假设你是在 操作 的数据库。你也可以用
操作许多其它类型的数据库。 是操作数据库的标准语言。(事实上,
关于 语言有一个专门的 标准〕
注意:
不要在你的站点上试图用 代替
。 可以同时服务于许多用户,如果你希望你的站点有较高的
访问率, 是不能胜任的。
在学习 的细节之前,你需要理解它的两大特点。一个特点容易掌握,
另一个掌握起来有点困难。
第一个特点是所有 数据库中的数据都存储在表中。一个表由行和列组
成。例如,下面这个简单的表包括 和 :
!
"#$%
& '& %())
&)*)()%()
这个表有两列(列也称为字段,域〕: 和 ! 。有三行,
每一行包含一组数据。一行中的数据组合在一起称为一条记录。
无论何时你向表中添加新数据,你就添加了一条新记录。一个数据表可以有
几十个记录,也可以有几千甚至几十亿个记录。虽然你也许永远不需要存储十
亿个 ! 地址,但知道你能这样做总是好的,也许有一天你会有这样的需要。
你的数据库很有可能包含几十个表,所有存储在你数据库中的信息都被存储
在这些表中。当你考虑怎样把信息存储在数据库中时,你应该考虑怎样把它们
存储在表中。
的第二个特点有些难于掌握。这种语言被设计为不允许你按照某种特定
的顺序来取出记录,因为这样做会降低 取记录的效率。使用
,你只能按查询条件来读取记录。
当考虑如何从表中取出记录时,自然会想到按记录的位置读取它们。例如,
也许你会尝试通过一个循环,逐个记录地扫描,来选出特定的记录。在使用
时,你必须训练自己,不要有这种思路。
假如你想选出所有的名字是“"#的记录,如果使用传统的编程语言,
你也许会构造一个循环,逐个查看表中的记录,看名字域是否是“"#。
这种选择记录的方法是可行的,但是效率不高。使用 ,你只要说,“选
择所有名字域等于 "# 的记录”, 就会为你选出所有符合条件的记
录。 会确定实现查询的最佳方法。
建设你想取出表中的前十个记录。使用传统的编程语言,你可以做一个循环,
取出前十个记录后结束循环。但使用标准的 查询,这是不可能实现的。从
的角度来说,在一个表中不存在前十个记录这种概念。
开始时,当你知道你不能用 实现某些你感觉应该能实现的功能,你会
受到挫折。你也许会以头撞墙甚至想写恶毒的信件给 的设计者们。但后来
你会认识到, 的这个特点不仅不是个限制,反而是其长处。因为 不根
据位置来读取记录,它读取记录可以很快。
综上所述, 有两个特点:所有数据存储在表中,从 的角度来说,
表中的记录没有顺序。在下一节,你将学会怎样用 从表中选择特殊的记录。
使用 从表中取记录。
的主要功能之一是实现数据库查询。如果你熟悉 引擎,那么
你已经熟悉查询了。你使用查询来取得满足特定条件的信息。例如,如果你想
找到有 信息的全部站点,你可以连接到 +),并执行一个对
的搜索。在你输入这个查询后,你会收到一个列表,表中包括所
有其描述中包含搜索表达式的站点。
多数 引擎允许逻辑查询。在逻辑查询中,你可以包括特殊的运算
符如 -、./ 和 .0,你使用这些运算符来选择特定的记录。例如,你可以
用 - 来限制查询结果。如果你执行一个对 -
的搜索。你将得到其描述中同时包含 和 的记
录。当你需要限制查询结果时,你可以使用 -。
如果你需要扩展查询的结果,你可以使用逻辑操作符 ./。例如,如果你执
行一个搜索,搜索所有的其描述中包含 ./ 的站
点,你收到的列表中将包括所有其描述中同时包含两个表达式或其中任何一个
表达式的站点。
如果你想从搜索结果中排除特定的站点,你可以使用 .0。例如,查询
“-.01将返回一个列表,列表中的站点包
含 ,但不包含 。当必须排除特定的记录时,你可以
使用 .0。
用 执行的查询与用 搜索引擎执行的搜索非常相似。 当你执行
一个 查询时,通过使用包括逻辑运算符的查询条件,你可以得到一个记录
列表。此时查询结果是来自一个或多个表。
查询的句法非常简单。假设有一个名为 2$的表,包含名字
和地址两个字段,要得到 "#的 2 地址3你可以使用下面的查询:
!!'02$*4!/!56"#6
当这个查询执行时,就从名为 2$ 的表中读取 "# 的
2地址。这个简单的语句包括三部分:
7!!'0 语句的第一部分指名要选取的列。在此例中,只有 列被
选取。当执行 时,只显示 列的值 $%。
7!!'00 语句的第二部份指明要从哪个(些)表中查询数据。在此例中,
要查询的表名为 2$。
7最后,!!'0 语句的 *4!/! 子句指明要选择满足什么条件的记录。
在此例中,查询条件为只有 列的值为 "#的记录才被选取。
"# 很有可能拥有不止一个 地址。如果表中包含 "# 的
多个 地址。用上述的 !!'0 语句可以读取他所有的 地址。
!!'0 语句从表中取出所有 字段值为 "#的记录的 字
段的值。
前面说过,查询可以在查询条件中包含逻辑运算符。假如你想读取 "
#或 ' 总统的所有 地址,你可以使用下面的查询语句:
!!'08/.2$*4!/!56"#6./
56& '6
此例中的查询条件比前一个复杂了一点。这个语句从表 2$ 中选出
所有 列为 "# 或 & ' 的记录。如果表中含有 "
# 或 & ' 的多个地址,所有的地址都被读取。
!!'0 语句的结构看起来很直观。如果你请一个朋友从一个表中为你选择
一组记录,你也许以非常相似的方式提出你的要求。在 !!'0 语句中,
你“!!'0 特定的列 8/. 一个表 *4!/! 某些列满足一个特定的条件”。
下一节将介绍怎样执行 查询来选取记录。这将帮助你熟悉用 !!'0
语句从表中取数据的各种不同方法。
使用 执行 !!'0 查询
当你安装 时,你同时安装了一个叫作 9( 的应用程序。
9( 允许你执行交互的 查询。在把查询包括到你的 网页中之前,
用 9( 对其进行测试是非常有用的。
注意:
在这本书的第一部份,你学习了怎样安装和配置 。
如果没有安装 或者 不能运行,请参阅第三章“安装和使
用 。
选择任务上 程序组中的 2( 以启动该程序。程序启动时,
首先会出现一个对话框,要求输入服务器信息和登录信息(见图 :;:)。在
框中,输入你的 服务器的名字。如果服务器正运行在本地计算机上,
服务器名字就是你计算机的名字。在登录信息框中,输入一个登录帐号和密码
或选择使用“可信连接”,然后单击 ' 按钮。
图 :;。:
注意:
如果你将 配置为使用完整安全或混合安全,那么你可以使用可
信连接。如果你使用标准安全,你则需要提供用户帐号和密码。要了解更多信
息,参见第三章。
如果一切正常,在你单击连接按钮后会出现一个查询窗口,如图 :;< 所示。
(如果有异常,请参考第三章)
图 :;<
在执行查询之前,你需要选择数据库。安装 时你已为自己创建
了一个数据库, 还有许多系统数据库,如
, , $,和 & $。
方便的是, 带有一个特殊的名为 &$ 的例子数据库。库 &$
中包含供一个虚拟的出版商使用的各个表。文档中所有的例子程序都是针对这
个库来设计的。本书中的许多例子也使用这个数据库。
在查询窗口顶部的 -" 下拉框中选择数据库 &$,这样你就选择了数据库。
你所有的查询都将针对这个库中的各个表来执行。现在你可以执行你的第一个
查询了。这真让人兴奋!
你的第一个查询将针对一个名为 的表,表中包含所有为某个虚拟出
版商工作的作者的相关数据。单击查询窗口并输入以下的语句:
剩余46页未读,继续阅读
资源评论
Ingenuus
- 粉丝: 57
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功