分享
 
 
 

SQL的基本操作(4.数据的检索)

王朝mssql·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

1.用 Select 子句检索记录

Select 子句是每一个检索数据的查询核心。它告诉数据库引擎返回什么字段。

Select 子句的常见形式是:

Select *

该子句的意思是“返回在所指定的记录源中能找到的所有字段”。这种命令形式很方便,因为你无需知道从表中检索的字段名称。然而,检索表中的所有列是低效的。因此,因该只检索需要的字段,这样可以大大的提高查询的效率。

2.使用 From 子句指定记录源

From 子句说明的是查询检索记录的记录源;该记录源可以是一个表或另一个存储查询。

你还能从多个表中检索记录,这在后面的章节中将介绍。

例子:

Select * From students 检索students表中的所有记录

3.用 Where 子句说明条件

Where 子句告诉数据库引擎根据所提供的一个或多个条件限定其检索的记录。条件是一个表达式,可具有真假两种判断。

例子:

Select * From students Where name="影子"

返回students中name字段为影子的列表,这次所返回的结果没有特定顺序,除非你使用了 Order By 子句。该子句将在后面的章节介绍。

注意:Where 子句中的文本字符串界限符是双引号,在VB中因改为单引号,因为在VB中字符串的界定符是双引号。

补充:

使用 And 和 Or 逻辑可以将两个或更多的条件链接到一起以创建更高级的 Where 子句。

例子:

Select * From students Where name="影子" And number100

返回name为影子number大于100的列表。

例子:

Select * From students Where name="影子" And (number100 Or number

返回name为影子,number大于100或者小于50的列表。

Where 子句中用到的操作符

操作符 功能

大于

= 大于或等于

= 等于

不等于

Between 在某个取值范围内

Like 匹配某个模式

In 包含在某个值列表中

SQL中的等于和不等于等操作符与VB中的意义和使用相同

例子:

(1).Between 操作符

Use cust

Select * From students

Where number Between 1 and 100

Between 操作符返回的是位于所说明的界限之内的所有记录值。这个例子就返回 number 字段 1 到 100 之间的全部记录。

(2). Like 操作符和通配符

Use cust

Select * From students

Where name Like "%影%"

Like 操作符把记录匹配到你说明的某个模式。这个例子是返回含“影”的任意字符串。

四种通配符的含义

通配符 描述

% 代表零个或者多个任意字符

_(下划线) 代表一个任意字符

[] 指定范围内的任意单个字符

[^] 不在指定范围内的任意单个字符

全部示例子如下:

Like "BR%" 返回以"BR"开始的任意字符串

Like "br%" 返回以"Br"开始的任意字符串

Like "%een" 返回以"een"结束的任意字符串

Like "%en%" 返回包含"en"的任意字符串

Like "_en" 返回以"en"结束的三个字符串

Like "[CK]%" 返回以"C"或者"K"开始的任意字符串

Like "[S-V]ing" 返回长为四个字符的字符串,结尾是"ing",开始是从S到V。

Like "M[^c]%" 返回以"M"开始且第二个字符不是"c"的任意字符串。

4. 使用 Order By 对结果排序

Order By 子句告诉数据库引擎对其检索的记录进行排序。可以对任何字段排序,或者对多个字段排序,并且可以以升序或隆序进行排序。

在一个正式的 Select 查询之后包含一个 Order By 子句,后跟想排序的字段(可以有多个)便可以说明一个排序顺序。

例子:

Use cust

Select * From students

Where name Like "%影%"

Order By number

对返回的结果按 number 进行排序。

以降序排序

如要以隆序排序,只需在排序的字段之后使用 Desc 关键字。

例子:

Use cust

Select * From students

Where name Like "%影%"

Order By number Desc

5. 使用 Top 显示某个范围的第一个记录或最后一个记录。

使用 Top 关键字可以只显示一个大记录前面或后面的少数几个记录。在查询中,Top 关键字与排序子句一起把结果集限制为少数几个记录或按某个百分比显示整个结果记录集合中的一部分。

例子:

Select Top 3 * From students 返回 students 表中的前3条记录

Select Top 10 Percent * From students 返回 students 表中前面的10%个记录

Select Top 3 * From students Order By number desc 返回 students 表中 number 最大的(最后)的3条记录

6. 用 As 对字段名进行别名化

为什么在查询中对字段命以别名,或重新命名,这样做的原因有两个:

☆所涉及的表的字段名很长,想使字段在结果集中更易处理一些。

☆创建的查询产生了某些计算或合计列,需要对之进行命名。

不管是什么原因对字段命以别名,在 SQL 中都可以容易地使用 As 子句做得。

例子:

Select number As 学号 ,name As 姓名 From students

7. 合并查询

合并查询( Union Query )用于合并具有相同字段结构的两个表的内容,如果想在一个结果集中显示多个记录源中的不相关的记录时,这十分有用。

例子:

Select *

From students

Union

Select *

From students1

该查询结果集把 students 和 students1 中的记录合并到一个结果中,其输出就和原表归档之前一模一样。

注意:缺省情况下,合并查询不会返回重复记录(如果记录归档系统在把记录拷到归档表中后不将相应的记录删除,这时该功能就有用了),可以加上 All 关键字而让合并查询显示重复记录。

例子:

Select *

From students

Union All

Select *

From students1

该合并查询显示 students 表和 students1 表的内容时,没有对重复记录进行处理

补充:

Union 运算符允许把两个或者多个查询结果合并到一个查询结果集中。如果比较 Union 和 Join 两咱运算符,那么 Union 运算符增加行的数量,而 Join 运算符增加列的数量。使用 Union 时应该注意,两个结果中的列的结构必须匹配,数据类型必须兼容等等。

Union 运算符的语法形式如下:

Select select_list

From clause

Where clause

Group By clause

Having clause

Union [All]

Select select_list

From clause

Where clause

Group By clause

Having clause

Order By clause

Compute clause

对于 Union 运算符,有下列几点需要说明:

?在默认情况下,Union 运算符删除全部冗余行。如果使用All 选项,那么冗余行不删除。

?在 Union 语句中的全部 select_list 必须有相同数量的列、兼容的数据类型并且按照同样的顺序出现。

?在结果集中,列名来自第一个 Select 语句。

8.连接查询

在实际使用过程中经常需要同时从两个表或者两个以上表中检索数据。连接就是允许同时从两个表或者两个以上表中检索数据,指定这些表中某个或者某些列作为连接条件。在 SQL Server 中,可以使用两种连接语法形式,一种是 Ansi 连接语法形式,这是连接用在 From 子句中,另外一种是 SQL Server 连接语句形式,这是连接用在 Where 子句中。

Ansi 连接语法形式如下:

Select table_name.column_name,table_name.column_name,...

From {table_name [join_type] Join table_name On search_conditions}

Where [search_conditions]

在 Ansi 语法形式中,可以 Ansi 连接关键字来确定使用的连接形式。例如:

☆使用 Inner Join 关键字,结果集中仅包含满足条件的行。

☆使用 Cross Join 关键字,结果集中包含两个表中所有行的组合。

☆使用 Outer Join 关键字,结果集中既包含那些满足条件的行,还包含那些其中某个表的全部行。

SQL Server 连接语法形式如下所示:

Select table_name.column_name,table_name.column_name,...

From [table_name,tab

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有