通用SQL数据库查询语句精华使用简介

通用SQL数据库查询语句精华使用简介,第1张

通用SQL数据库查询语句精华使用简介,第2张

首先,简单的查询

的简单Transact-SQL查询只包括一个选择列表、一个FROM子句和一个WHERE子句。它们描述了查询列、查询表或视图以及搜索条件等。

例如,以下语句查询testtable表中名为“张三”的昵称字段和电子邮件字段。

从testtable
中选择昵称、电子邮件
,其中name = '张三'

(a)选择列表

Select_list表示查询的列,可以是列名、星号、表达式、变量(包括局部变量和全局变量)等的列表。

1.选择所有列。

例如,以下语句显示testtable表中所有列的数据:

从测试表中选择*

2.选择一些列并指定它们的显示顺序。

查询集中的数据按照选择列表中指定的列名的顺序排列。

例如:

从测试表中选择昵称、电子邮件

3.更改列标题。

在选择列表中,您可以重新分配列标题。定义格式为:

列标题=列名
列名列标题

如果指定的列标题不是标准标识符格式,则应使用引号分隔符。例如,以下语句以中文字符显示列标题:

从测试表中选择=昵称,电子邮件=电子邮件

4.删除重复的行。

在SELECT语句中,ALL或DISTINCT选项用于显示表中所有符合条件的行或删除重复的数据行。默认值为all。使用DISTINCT选项时,对于所有重复的数据行,SELECT返回的结果集中只保留一行。

5.限制返回的行数。

使用n [PERCENT]选项来限制返回的数据行数,其中n表示返回n行,当使用n PERCENT时,它表示n代表百分之百,并指定返回的行数等于总行数的百分之几。

例如:

select 2 * from test table select 20 %* from test table(4)查询结果排序

使用ORDER BY子句按一列或多列对查询返回的结果进行排序。order子句的语法格式是:

ORDER BY { column _ name[ASC | desc]}[,…n]

其中ASC表示升序,这是默认值,DESC表示降序。ORDER BY不能按ntext、text和image数据类型排序。

例如:

SELECT *
FROM usertable
ORDER BY age desc,userid ASC

此外,还可以按表达式排序。

二。联合查询

UNION运算符可以将两个或多个SELECT语句的查询结果集组合成一个结果集进行显示,即执行一个联合查询。UNION的语法格式是:

select _ statement
UNION[ALL]select statement
[UNION[ALL]select statement][…n]

Selectstatement是要联接的选择查询语句。

ALL选项意味着所有行都合并到结果集中。如果未指定此项,组合查询的结果集中只会保留一个重复行。

进行联查时,查询结果的列标题是第一条查询语句的列标题。因此,要定义的列标题必须在第一个查询语句中定义。在对联合查询结果进行排序时,还必须在第一条查询语句中使用列名、列标题或列序号。

使用UNION运算符时,应确保每个联合查询语句的选择列表中有相同数量的表达式,每个查询选择表达式应具有相同的数据类型,或者可以自动转换为相同的数据类型。在自动转换过程中,对于数值类型,系统会将低精度数据类型转换为高精度数据类型。

在包含多个查询的UNION语句中,执行顺序是从左到右,这可以通过使用括号来更改。例如:

1联合(查询2联合查询3)

三、连接查询

您可以通过连接运算符查询多个表。连接是关系数据库模型的主要特征,也是它区别于其他类型数据库管理系统的标志。

在关系数据库管理系统中,数据之间的关系不一定在建表时就确定了,一个实体的所有信息往往都存储在一个表中。在检索数据时,可以通过join操作找出存储在多个表中的不同实体的信息。操作给用户带来了极大的灵活性,他们可以随时添加新的数据类型。为不同的实体创建新表,然后通过连接查询它们。

可以在SELECT语句的FROM子句或WHERE子句中建立连接。当FROM子句中指出连接时,将连接操作与WHERE子句中的搜索条件区分开来是很有帮助的。因此,建议在Transact-SQL中使用此方法。

SQL-92标准定义的FROM子句的连接语法格式为:

来自连接表连接类型连接表
[ON (join_condition)]

其中join_table表示参与连接操作的表的名称。该联接可以在同一个表或多个表上操作。同一个表操作的联接也称为自联接。

Join_type表示连接的类型,分为内部连接、外部连接和交叉连接三种。内部联接使用比较运算符来比较表之间的一些数据列,并列出这些表中符合联接条件的数据行。根据使用的比较方法不同,内部连接可分为等连接、自然连接和不等连接。外连接分为三种:左外连接(左外连接或左连接)、右连接(右外连接或右连接)和全外连接(全外连接或全连接)。与内连接不同,外连接不仅列出匹配连接条件的行,还列出左表(对于左外连接)、右表(对于右连接)或两个表(对于全外连接)中匹配搜索条件的所有数据行。

交叉联接没有WHERE子句。它返回连接表中所有数据行的笛卡尔积。结果集中的数据行数等于第一个表中的数据行数乘以第二个表中的数据行数。

连接中的ON (join_condition)子句表示连接条件,它由连接表中的列、比较运算符、逻辑运算符等组成。

无论哪种连接,都不能直接连接text、ntext和image数据类型的列,但是可以间接连接这三个列。例如:

P1.pub _ id,p2.pub _ id,P1 . pr _ info
from pub _ info as P1内部连接pub _ info as p2
on datalength(P1 . pr _ info)= datalength(p2 . pr _ info)(I)内部连接

内部联接查询操作列出符合联接条件的数据行,并使用比较运算符来比较联接列的列值。有三种类型的连接:

1.equijoin:在连接条件中使用等号(=)运算符比较连接列的列值,查询结果列出连接表中的所有列,包括重复列。

  2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 通用SQL数据库查询语句精华使用简介

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情