百度
360搜索
搜狗搜索

select语句查询,谁可以给我全部的SQL查询语句?详细介绍

本文目录一览: select语句多表怎么查询?

select * from Table1,Table2 where Table1.c=Table2.c(c是某一相同字段)
或者用内链接或者外联结:
selete * from Table1 as T1
inner join Table2 as T2
on T1.c=T2.c
外联接
selete * from Table1 as T1
left (right) join Table2 as T2
on T1.c=T2.c

SQL实战新手入门:获取数据-SELECT语句(1)

   获取数据 SELECT语句( )
  现在MYLIBRARY表中已经有了数据 可以对该表执行查询 以精确地查找所具有的图书 SELECT语句用于从表中获取数据 要使用SELECT语句获取数据 只需要告诉它表名和列名
  SELECT all_my_books FROM myLibrary;
  尽管该查询可以产生一个图书信息的列表 但它还不是特别有用 该图书信息是一大堆的数据 将其存储在一个关系型数据库中的唯一好处就是可以轻而易举地重新获取或打印这些信息 如果要搜索数据呢?要查找是否有某一本特定的图书 必须获取所有的记录 然后人工地逐一遍历每一条记录!这并不是我们期望从一个复杂的RDBMS软件获得的结果
  需要采用某种办法来标识存储在表中的记录的特殊关键词 例如图书名称或ISBN号 对于该问题 一个标准的程序设计方式的答案就是对记录进行解析 将记录切分为多个片段 并在一个循环中遍历查找特定的目标词汇 对于表中的每一条记录重复执行这一过程 如果没有特定于厂商的过程化扩展 SQL无法执行任何类似的操作 这种方式违背了SQL语言是一种声明性语言的本质 并要求深刻地理解数据结构 下面让我们再看一看输入到MYLIBRARY表中的第一条记录

  SQL Bible by Alex Kriegel Boris M Trukhnov Paperback: pages
  Publisher: Wiley; edition (April ) Language: English
  ISBN :
  如何才能将记录切分为不同的信息片段呢?每一个片段之间的标记是什么呢?如何区分图书的名称和作者呢?如果使用空格符作为分隔符 那么SQL和Bible将被切分为不同的片段 但在逻辑上SQL和Bible属于同一个信息片段 如何才能知道by是一个介词 而不是作者姓名中的一部分?解决的办法来自SQL结构化的本性 毕竟SQL是一种结构化的查询语言 要解决这一问题 需要更多的列来存储不同片段的信息 将一个笨重的字符串拆分为多个语义上有着密切联系的数据片段就可以独立地标识每一个数据片段 因为每一个片段都成为一个单独的列 回到CREATE TABLE语句(首先删除现有的表)
  DROP TABLE myLibrary;
  根据上面的讨论创建一个新表
  CREATE TABLE myLibrary
  (
  title VARCHAR( )
   author VARCHAR( )
   author VARCHAR( )
   publisher VARCHAR( )
   pages INTEGER
   publish_date VARCHAR( )
   i *** n VARCHAR( )
   book_language VARCHAR( )
  )
  在新表的结构中 将原来的单个列拆分为 个列 另外还可以添加第 个列 将作者的名和姓拆分到两个单独的列中(这就是将在第 章中讨论的数据建模过程) 就目前而言 除了将PAGES列的数据类型设置为INTEGER类型以表示图书包含多少页之外 对于其他所有的列都使用了相同的数据类型 并缩短了每一个列中所能包含的字符数量 本章后面将进一步解释将PAGES列设置为INTEGER类型的原因 读者或许还会考虑到修改PUBLISH_DATE列的数据类型 通常情况下 日期数据的行为与字符数据不同 DBMS提供了专门用于日期和时间的数据类型
  现在 无须将所有的数据都保存在同一个桶中 对于各个列的数据类型可以有更多的选择 可以将不同的列定义为不同的数据类型 当插入或更新各个列中的数据(本章后面将对此进行介绍)时 建议不要将数据类型搞混
  本章后面还将重新审视数据类型 第 章也将详细地介绍数据类型
  读者可能已经注意到 在新的MYLIBRARY表中有两个作者列 这是为了适应一本图书有两个作者的情形 这也提出了另外一个问题 当一本图书只有一个作者或者一本图书有 个作者时 该如何处理呢?该问题将在第 章和第 章的数据建模小节中进行深入的探讨 这里 读者只需要注意对于未使用的列将自动使用默认值进行填充 如果读者发现经常需要在表中添加新的列 那么最好花时间阅读一下关于数据库规范化方面的内容(请参见第 章)
  接下来将向新表中插入数据 这一步骤与之前介绍的插入操作完全相同 唯一的差别在于VALUES列表变得更长 因为原来只包含一个列 而现在包含了 个列 在VALUES列表中 除了PAGES列的值之外 所提供的所有其他数据都必须用单引号括起来 引号表明了这些数据是字符数据 没有引号则表示数值数据
  INSERT INTO myLibrary VALUES (
   SQL Bible
   Alex Kriegel
   Boris M Trukhnov
   Wiley
  
   April
  
   English )
返回目录 SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
lishixinzhi/Article/program/SQL/201311/16484

如何用select语句在SQL数据库中查询符合指定条件的记录?

select[要查询的字段]from[表名]\x0d\x0awhere[指定的查询条件]\x0d\x0a\x0d\x0a有记得需要说明的是,如果存在多个条件时需要用and连接每个查询条件,如果需要排序,语法则为:\x0d\x0aselect[要查询的字段]from[表名]\x0d\x0awhere[指定的查询条件]\x0d\x0aorderby[要分组的字段]

select语句中查询表中所有字段时用什么通配符

星号*。在SELECT语句中使用星号“*”通配符查询所有字段。通配符是一种特殊语句,主要有星号(*)和问号(? ),用来模糊搜索文件。当查找文件夹时,可以使用它来代替一个或多个真正字符。

谁可以给我全部的SQL查询语句?

分类: 电脑/网络 >> 程序设计 >> 其他编程语言
解析:

一、 简单查询
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的
表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。
SELECT nickname,email

FROM testtable
WHERE name='张三'
(一) 选择列表
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。
1、选择所有列
例如,下面语句显示testtable表中所有列的数据:
SELECT *
FROM testtable
2、选择部分列并指定它们的显示次序查询结果 *** 中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
例如:
SELECT nickname,email
FROM testtable
3、更改列标题
在选择列表中,可重新指定列标题。定义格式为:
列标题=列名
列名 列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:
SELECT 昵称=nickname,电子邮件=email
FROM testtable
(二) FROM子句
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列
所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:
SELECT username,citytable.cityid
FROM usertable,citytable
WHERE usertable.cityid=citytable.cityid
在FROM子句中可用以下两种格式为表或视图指定别名:
表名 as 别名
表名 别名
例如上面语句可用表的别名格式表示为:
SELECT username,b.cityid
FROM usertable a,citytable b
WHERE a.cityid=b.cityid
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果 *** 中查询数据。
例如:
SELECT a.au_fname+a.au_lname
FROM authors a,titleauthor ta
(SELECT title_id,title
FROM titles
WHERE ytd_sales>10000
) AS t
WHERE a.au_id=ta.au_id
AND ta.title_id=t.title_id
此例中,将SELECT返回的结果 *** 给予一别名t,然后再从中检索数据。
(三) 使用WHERE子句设置查询条件
WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:
SELECT *
FROM usertable
WHERE age>20
WHERE子句可包括各种条件运算符:
比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<
范围运算符(表达式值是否在指定的范围):BETWEEN…AND…
NOT BETWEEN…AND…
列表运算符(判断表达式是否为列表中的指定项):IN (项1,项2……)
NOT IN (项1,项2……)
模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOT LIKE
空值判断符(判断表达式是否为空):IS NULL、NOT IS NULL
逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR
1、范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=30
2、列表运算符例:country IN ('Germany','China')
3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、
varchar、text、ntext、datetime和 *** alldatetime等类型查询。
可使用以下通配字符:
百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
例如:
限制以Publishing结尾,使用LIKE '%Publishing'
限制以A开头:LIKE '[A]%'
限制以A开头外:LIKE '[^A]%'
4、空值判断符例WHERE age IS NULL
5、逻辑运算符:优先级为NOT、AND、OR
(四)查询结果排序
使用ORDER BY子句对查询返回的结果按一列或多列排序。ORDER BY子句的语法格式为:
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] selectstatement
[UNION [ALL] selectstatement][…n]
其中selectstatement为待联合的SELECT查询语句。
ALL选项表示将所有行合并到结果 *** 中。不指定该项时,被联合查询结果 *** 中的重复行将只保留一行。联合查询时,查询结果的列标题为第一个查询语句的列标题。因此,要定义列标题必须在第一个查询语句中定义。要对联合查询结果排序时,也必须使用第一查询语句中的列名、列标题或者列序号。在使用UNION 运算符时,应保证每个联合查询语句的选择列表中有相同数量的表达式,并且每个查询选择表达式应具有相同的数据类型,或是可以自动将它们转换为相同的数据类型。在自动转换时,对于数值类
型,系统将低精度的数据类型转换为高精度的数据类型。在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。例如:
查询1 UNION (查询2 UNION 查询3)
三、连接查询通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型
数据库管理系统的一个标志。
在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带
来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行
查询。
连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出连接时有助于
将连接操作与WHERE子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。
SQL-92标准所定义的FROM子句的连接语法格式为:
FROM join_table join_type join_table
[ON (join_condition)]
其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一
个表操作的连接又称做自连接。
join_type 指出连接类型,可分为三种:内连接、外连接和交叉连接。内连接(INNER JOIN)使用比
较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用
的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。
外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)
和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹
配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的
数据行。
交叉连接(CROSS JOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果 *** 中的
数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
连接操作中的ON (join_condition) 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑
运算符等构成。
无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接
连接。例如:
SELECT p1.pub_id,p2.pub_id,p1.pr_info
FROM pub_info AS p1 INNER JOIN pub_info AS p2
ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)
(一)内连接
内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分
三种:
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接
表中的所有列,包括其中的重复列。
2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些
运算符包括>、>=、<=、<、!>、!
<和


3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询

结果 *** 中所包括的列,并删除连接表中的重复列。

例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:

SELECT *

FROM authors AS a INNER JOIN publishers AS p

ON a.city=p.city

又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state):

SELECT a.*,p.pub_id,p.pub_name,p.country

FROM authors AS a INNER JOIN publishers AS p

ON a.city=p.city

(二)外连接

内连接时,返回查询结果 *** 中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件

的行。而采用外连接时,它返回到查询结果 *** 中的不仅包含符合连接条件的行,而且还包括左表(左外

连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。

如下面使用左外连接将论坛内容和作者信息连接起来:

SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b

ON a.username=b.username

下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市:

SELECT a.*,b.*

FROM city as a FULL OUTER JOIN user as b

ON a.username=b.username

(三)交叉连接

交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果 *** 中的数

据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等

于6*8=48行。

SELECT type,pub_name

FROM titles CROSS JOIN publishers

ORDER BY type
</和

阅读更多 >>>  while循环语句和for循环语句使用else的区别是,“while循环”和“for循环”有什么区别?

SQL实战新手入门:获取数据-SELECT语句(2)

   获取数据 SELECT语句( )
  只要确保列表中值的顺序与表中列的结构精确地匹配 就可以在INSERT语句中省略列的列表 列列表实际上是数据的占位符 但是如果列表中值的顺序与列列表中的顺序不同 或者要插入的列不是记录中的全部列(例如 只插入 个列中的 个列) 那么就必须在INSERT语句中列出匹配的列列表 例如下面的例子
  INSERT INTO myLibrary (
  title
   author

   book_language
   publisher
   pages
   author
   publish_date
   i *** n
  )VALUES (
   SQL Bible
   Alex Kriegel
   English
   Wiley
  
   Boris M Trukhnov
   April
   )
  对于书架上的每一本书使用相应的数据重复运行上面这个INSERT语句(当然 某些数据录入员可能会讨厌这项工作) 另外 读者也可以从本书的支持网站中下载一个已经编写好的脚本 并按照附录A中的指南安装该脚本 这样 就可以获得所需的结构化的图书信息 并为执行SQL查询做好准备
  INSERT INTO myLibrary(title author book_language publisher pages publish_date
  i *** n) VALUES ( Microsoft SQL Server Weekend Crash Course Alex Kriegel
   English Wiley October )
  INSERT INTO myLibrary(title author book_language publisher pages publish_date
  i *** n) VALUES ( Mindswap Robert Sheckley English Orb Books May
   )
  INSERT INTO myLibrary(title author book_language publisher pages publish_date
  i *** n) VALUES ( Jonathan Livingston Seagull Richard Bach English MacMillan
   )
  INSERT INTO myLibrary(title author book_language publisher pages publish_date
  i *** n) VALUES ( A Short History of Nearly Everything Bill Bryson
   English Broadway October )
  在INSERT语句中 如果同时省略了某个列的列名和列值 会产生什么样的结果呢?在INSERT语句中指定的列将会填充数据 而省略掉的列则保持为空 为了表示空值的含义 SQL使用NULL值来标识
  在上面的例子中 AUTHOR 列的值将填充为NULL 第 章还将介绍 在数据库中NULL值具有特殊的含义 它的行为具有特殊的规则
  为了减少输入负担 读者可以从网站 wrox 或 agilitator 下载本章的SQL脚本 附录A描述了脚本的安装过程
  下面是一个SELECT查询 它返回已经输入到MYLIBRARY表中的所有图书记录
  SELECT title
   author
   author
   publisher
   pages
   publish_date
   i *** n
   book_language
  ) FROM myLibrary;
  除了列出所有的列之外 还可以使用SQL提供的一个方便的快捷方式 即用一个星号(*)来指示RDBMS获取所有列的信息
  SELECT * FROM myLibrary;
  该查询的结果看起来与之前舍弃的非结构化数据的结果类似 但两者存在一个小小的差别 该查询返回的数据按照不同的列分别进行显示 这就是根本的不同!
  首先 可以改变SELECT语句中列的顺序 按照任意顺序显示数据 另外还可以只查询特定的列 例如 如果只需要生成一个作者和图书名称的列表 可以执行下面这个查询
  SELECT title
   author
   author
  ) FROM myLibrary;
返回目录 SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
lishixinzhi/Article/program/SQL/201311/16483

SQL多表链接查询、嵌入SELECT语句的子查询技术

  高级查询技术主要是涉及多个表的链接查询技术 嵌入SELECT语句的子查询技术 把多个查询联合起来的联合技术等
   连接查询
  需要同时从两个或者连个以上的表中检索数据 链接就是允许同时从两个表或者两个以上的表中检索数据 指定这些表中的某个或者某些列作为连接条件 在SQL Server中 可以使用两种连接语法的形式 一种是ANSI链接语法形式 这是连接条件出现在FROM子句中;另外一种SQL Server链接语法形式 这是连接条件出现在WHERE条件中
   ANSI链接
  链接错做可以同时查询两个或者多个表中的数据 所生成的结果集包含多个表中的字段 需要使用连个表 *** 同拥有的字段以连接多个表

  进行连接操作时 SQL一行一行地比较所指定的字段 然后把比较后的结果和满足条件的数据合并 并生成新的记录
  有三种连接方式 内连接 外连接和交叉连接 在一个SELECT语句中 可以连接多个表;链接通过扩展SELECT语句的FROM字句 增加了两个关键字 JOIN和ON
  JOIN 指定要了链接的表
  ON 指定这些表共同拥有的字段
  在表的主键和外部键的基础上 指定连接条件
  ANSI链接语法形式如下所示
  SELECT table_name column_name table_name column_name ……
  FROM { table_name[ join_type] JOIN table_name ON search_conditions}
  WHERE[ search_conditions]
  其中[ join_type ]可以为如下三个关键字形式
  INNER(内连接) 链接查询结果集中仅包含满足条件的行 内连接是SQL Server缺省的连接方式 可以把INNER JOIN简写成 JOIN;
  OUTER(外连接) 链接查询结果集中既包含哪些满足条件的行 还包含其中某个表的全部行 有三种形式的外连接 左外连接 右外连接 全外连接
  例如 已经选修了 号课程的同学信息的示例 该示例涉及到了学生表和选修课
  SELECT 学生表
  FROM 学生表 JOIN 选课表 ON 学生表 学号 选课表 学号
  WHERE 选课表 课程号=
   SQL Server链接
  多表连接 可以在FROM子句后直接指定多个表 语义上表示从这几个表的笛卡尔积中检索数据 可以用WHERE子句设定过滤条件
  SQL Server链接语法形式如下
  SELECT table_name column_name table_name column_name ……
  FROM { table_name table_name ……}
  WHERE table_name column_name join_operator table_name column_name
  在此种语法形式中 FROM子句列出了连接时所使用到的全部表名 WHERE子句指定哪些行应该出现在结果集中 即用WHERE子句设定过滤条件 在WHERE子句中 在两个连接的列中使用链接运算符
  例如 检索出至少已经有一门课程及格的同学的信息示例
  SELECT DISTINCT 学生表 *
  FROM 学生表 选课表
  WHERE 学生表 学号=选课表 学号 AND 选课表 成绩=
   子查询
  子查询是一系列SELECT语句 SELECT语句可以嵌套在其他许多语句中 例如SELECT INSERT UPDATE DELETE等 这些嵌套的SELECT语句就称为子查询 子查询可以把一个复杂的查询分解成一系列的逻辑步骤 这样就可以用一个单个的语句解决一个复杂的查询问题 当一个查询依赖于另一个查询的结果时 子查询会很有用
  使用子查询时 应注意
  子查询要用括号起来
  只需要一个值或一系列的值 就可以用子查询代替一个表达式
  子查询中不能查询包含数据类型是text或image的字段
  子查询中也可以再包含子查询 嵌套可以多至 层
   把子查询用作派生的表
  可以用子查询产生一个派生的表 用于代替FROM子句中的表 派生表示FROM子句中子查询的一个特殊用法 用一个别名或用户自定义的名字来引用这个派生表 FROM子句中的子查询将返回一个结果集 这个结果集所形成的表将被外层SELECT语句使用
  例如 内层查询用子查询产生了一个派生的表 外层查询将使用内层查询的结果集 在功能上 派生表本身就等同于一个完整的查询
  SLECT A *
  FROM select 学号 姓名 年龄 from 学生表
  Where 班级=‘GZ 计 ’ as a
   把子查询用作表达式
  在T SQL中 所有使用表达式的地方 都可以用子查询来代替 此时子查询必须返回单个的值或某一个字段的值 子查询可以返回一系列的值来代替出现在WHERE子句中的IN关键字的表达式
  例如 查询GZ 计 班同学的平均年龄以及每个同学年龄与平均年龄的差
  SELECT avg(年龄) FROM 学生表 as 平均年龄
  其计算结果作为选择列表中的一个输出列 并作为算术表达式的一部分输出
  年龄 (SELECT avg(年龄) FROM 学生表) as 年龄差
   相关子查询
  相关子查询可被用作动态表达式 这个表达式的值相对于外层查询的每一行而变化 查询处理器为外层查询的每一个记录计算子查询的值 一次一行 而这个子查询每次都会被作为一个表达式而被计算并返回给外层查询 相关子查询是动态执行的子查询和外层查询间的一个非常有效的联合
  使用相关子查询时 内层子查询被反复执行 外层查询有多少记录 内层查询就被齿形多少次
  例如 查询已选修课程号的 且成绩在 分以上的同学的学号及姓名
  SELECT 学号 姓名
  FROM 学生表
  WHERE <=( SELECT 成绩
  FROM 选课表
  WHERE 学生表 学号=选课表 学号 AND 课程号= )
   使用EXISTS和NOT EXISTS操作符
  在相关子查询中可以使用EXISTS和NOT EXISTS操作符判断某个值是否在一系列的值中 SQL Server处理带有EXISTS和NOT EXISTS操作符的子查询时
  外层查询测试子查询返回的记录是否存在
  基于查询所指定的条件 子查询返回TRUE或FALSE
  子查询不产生任何数据
  例如 同时选修了 号课程和 号课程的同学的信息
  SELECT 学号 姓名 班级
  FROM 学生表
  WHERE EXISTS(SELECT * FROM 选课表
  WHERE 学号=学生表 学号 AND 课程号= )
  AND EXISTS(SELECT * FROM 选课表
  WHERE 学号=学生表 学号 AND 课程号= )
  ① 找外层表“学生表”的第 行 根据其“学号”值处理内层查询
  ② 用外层的“学号”与内层表“选课表”的“学号”比较 由此决定外层条件的真 假 如果为真 则此记录为符合条件的结果 反之 则不输出
  ③ 顺序处理外层表“学生表”中的第 行
  检索出每一门选修课都几个的同学信息
  SELECT * FROM 学生表 WHERE
  NOT EXISTS( SELECT * FROM 选课表
  WHERE 学生表 学号=选课表 学号 AND 成绩< )
  AND EXISTS( SELECT * FROM 选课表
  WHERE 学生表 学号=选课表 学号)
  使用TOP限制结果集
  在使用SELECT语句进行查询时 有时我们希望列出前几个结果 而不是全部结果 例如 竞赛时 可能只取成绩最高的前三名 这时就需要使用TOP关键字来选取输出的结果
  使用TOP的格式为
  SELECT TOP n[ percent] [with ties] 查询列表
  其中
  n 为非负整数
  TOP n 表示取查询结果的前n行
  TOP n percent 表示取查询结果的前n%行
  With ties 表示包括并列的结果
  例如 检索出总分在前 位的同学的学号及其总分
  SELECT TOP WITH TIES 学号 SUM(成绩) AS 总分
  FROM 选课表
  GROUP BY 学号
  ORDER BY 总分 DESC
  使用TOP时 注意最好与ORDER BY子句一起使用 因为这样的前几名才有意义 但当使用WITH TIES时 要求必须使用ORDER BY子句
  合并多个结果集
  可以将两个或多个查询的结果组合为一个结果集 这就是合并多个届国际的含义 使用UNION可以实现合并多个查询结果集的目的 作用UNION的格式为
  SELECT 语句
  UNION
  SELECT 语句
  UNION [ALL]
  ……
  SELECT 语句n
  使用UNION 应注意几点
  在默认情况下 UNION运算符删除全部空余 如果使用ALL选项 那么空余行不删除
  所有查询语句中的列数和列的顺序必须相同
  所有查询语句中的对应列的数据类型必须兼容
  如果在UNION语句中 包含一个ORDER BY子句 那么整个结果集都要排序
  在结果集中 列名来自第 个SELECT子句
  例如 对GZ 计 班和GZ 计 班学生的查询结果合并为一个结果集
  SELECT * FROM 学生表 WHERE 班级=‘GZ 计 ’
  UNION
lishixinzhi/Article/program/MySQL/201311/29530

阅读更多 >>>  update sql语句什么意思,sqlupdate语句

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

  一 简单查询   简单的Transact SQL查询只包括选择列表 FROM子句和WHERE子句 它们分别说明所查询列 查询的表或视图 以及搜索条件等
  例如 下面的语句查询testtable表中姓名为 张三 的nickname字段和email字段
  SELECT nickname email  FROM testtable  WHERE name= 张三
  (一) 选择列表
  选择列表(select_list)指出所查询列 它可以是一组列名列表 星号 表达式 变量(包括局部变量和全局变量)等构成

   选择所有列
  例如 下面语句显示testtable表中所有列的数据
  SELECT *  FROM testtable
   选择部分列并指定它们的显示次序
  查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同
  例如
  SELECT nickname email  FROM testtable
   更改列标题
  在选择列表中 可重新指定列标题 定义格式为
  列标题=列名  列名 列标题
  如果指定的列标题不是标准的标识符格式时 应使用引号定界符 例如 下列语句使用汉字显示列标题
  SELECT 昵称=nickname 电子邮件=email  FROM testtable
   删除重复行
  SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行 默认为ALL 使用DISTINCT选项时 对于所有重复的数据行在SELECT返回的结果集合中只保留一行
   限制返回的行数
  使用TOP n [PERCENT]选项限制返回的数据行数 TOP n说明返回n行 而TOP n PERCENT时 说明n是表示一百分数 指定返回的行数等于总行数的百分之几
  例如
  SELECT TOP *FROM testtable SELECT TOP PERCENT * FROM testtable
  (二) FROM子句
  FROM子句指定SELECT语句查询及与查询相关的表或视图 在FROM子句中最多可指定 个表或视图 它们之间用逗号分隔
  在FROM子句同时指定多个表或视图时 如果选择列表中存在同名列 这时应使用对象名限定这些列所属的表或视图 例如在usertable和citytable表中同时存在cityid列 在查询两个表中的cityid时应使用下面语句格式加以限定
  SELECT username citytable cityid  FROM usertable citytable  WHERE usertable cityid=citytable cityid
  在FROM子句中可用以下两种格式为表或视图指定别名
  表名 as 别名  表名 别名
  例如上面语句可用表的别名格式表示为
  SELECT username b cityid  FROM usertable a citytable b  WHERE a cityid=b cityid
  SELECT不仅能从表或视图中检索数据 它还能够从其它查询语句所返回的结果集合中查询数据
  例如
  SELECT a au_fname+a au_lname  FROM authors a titleauthor ta  (SELECT title_id title  FROM titles  WHERE ytd_sales>   ) AS t  WHERE a au_id=ta au_id  AND ta title_id=t title_id
  此例中 将SELECT返回的结果集合给予一别名t 然后再从中检索数据
  (三) 使用WHERE子句设置查询条件
  WHERE子句设置查询条件 过滤掉不需要的数据行 例如下面语句查询年龄大于 的数据
  SELECT *  FROM usertable  WHERE age>
  WHERE子句可包括各种条件运算符
  比较运算符(大小比较) > >= = < <= <> !> !<  范围运算符(表达式值是否在指定的范围) BEEEN…AND…  NOT BEEEN…AND…  列表运算符(判断表达式是否为列表中的指定项) IN (项 项 ……)  NOT IN (项 项 ……)  模式匹配符(判断值是否与指定的字符通配格式相符):LIKE NOT LIKE  空值判断符(判断表达式是否为空) IS NULL NOT IS NULL  逻辑运算符(用于多条件的逻辑连接) NOT AND OR
   范围运算符例 age BEEEN AND 相当于age>= AND age<=
   列表运算符例 country IN ( Germany China )
   模式匹配符例 常用于模糊查找 它判断列值是否与指定的字符串格式相匹配 可用于char varchar text ntext datetime和 *** alldatetime等类型查询
  可使用以下通配字符
  百分号% 可匹配任意类型和长度的字符 如果是中文 请使用两个百分号即%%
  下划线_ 匹配单个任意字符 它常用来限制表达式的字符长度
  方括号[] 指定一个字符 字符串或范围 要求所匹配对象为它们中的任一个 [^] 其取值也[] 相同 但它要求所匹配对象为指定字符以外的任一个字符
  例如
  限制以Publishing结尾 使用LIKE %Publishing
  限制以A开头 LIKE [A]%
  限制以A开头外 LIKE [^A]%
   空值判断符例WHERE age IS NULL
   逻辑运算符 优先级为NOT AND OR
  (四)查询结果排序
  使用ORDER BY子句对查询返回的结果按一列或多列排序 ORDER BY子句的语法格式为
  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] selectstatement  [UNION [ALL] selectstatement][…n]
  其中selectstatement为待联合的SELECT查询语句
  ALL选项表示将所有行合并到结果集合中 不指定该项时 被联合查询结果集合中的重复行将只保留一行
  联合查询时 查询结果的列标题为第一个查询语句的列标题 因此 要定义列标题必须在第一个查询语句中定义 要对联合查询结果排序时 也必须使用第一查询语句中的列名 列标题或者列序号
  在使用UNION 运算符时 应保证每个联合查询语句的选择列表中有相同数量的表达式 并且每个查询选择表达式应具有相同的数据类型 或是可以自动将它们转换为相同的数据类型 在自动转换时 对于数值类型 系统将低精度的数据类型转换为高精度的数据类型
  在包括多个查询的UNION语句中 其执行顺序是自左至右 使用括号可以改变这一执行顺序 例如
  查询 UNION (查询 UNION 查询 )
   三 连接查询
  通过连接运算符可以实现多个表查询 连接是关系数据库模型的主要特点 也是它区别于其它类型数据库管理系统的一个标志
  在关系数据库管理系统中 表建立时各数据之间的关系不必确定 常把一个实体的所有信息存放在一个表中 当检索数据时 通过连接操作查询出存放在多个表中的不同实体的信息 连接操作给用户带来很大的灵活性 他们可以在任何时候增加新的数据类型 为不同实体创建新的表 尔后通过连接进行查询
  连接可以在SELECT 语句的FROM子句或WHERE子句中建立 似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来 所以 在Transact SQL中推荐使用这种方法
  SQL 标准所定义的FROM子句的连接语法格式为
  FROM join_table join_type join_table  [ON (join_condition)]
  其中join_table指出参与连接操作的表名 连接可以对同一个表操作 也可以对多表操作 对同一个表操作的连接又称做自连接
  join_type 指出连接类型 可分为三种 内连接 外连接和交叉连接 内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作 并列出这些表中与连接条件相匹配的数据行 根据所使用的比较方式不同 内连接又分为等值连接 自然连接和不等连接三种 外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN) 右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种 与内连接不同的是 外连接不只列出与连接条件相匹配的行 而是列出左表(左外连接时) 右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行
  交叉连接(CROSS JOIN)没有WHERE 子句 它返回连接表中所有数据行的笛卡尔积 其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数
  连接操作中的ON (join_condition) 子句指出连接条件 它由被连接表中的列和比较运算符 逻辑运算符等构成
  无论哪种连接都不能对text ntext和image数据类型列进行直接连接 但可以对这三种列进行间接连接 例如
  SELECT p pub_id p pub_id p pr_info  FROM pub_info AS p INNER JOIN pub_info AS p   ON DATALENGTH(p pr_info)=DATALENGTH(p pr_info)
  (一)内连接
  内连接查询操作列出与连接条件匹配的数据行 它使用比较运算符比较被连接列的列值 内连接分三种
   等值连接 在连接条件中使用等于号(=)运算符比较被连接列的列值 其查询结果中列出被连接表中的所有列 包括其中的重复列
   不等连接 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值 这些运算符包括> >= <= < !> !
<和

   自然连接 在连接条件中使用等于(=)运算符比较被连接列的列值 但它使用选择列表指出查询结果集合中所包括的列 并删除连接表中的重复列

  例 下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社

  SELECT *  FROM authors AS a INNER JOIN publishers AS p  ON a city=p city

  又如使用自然连接 在选择列表中删除authors 和publishers 表中重复列(city和state)

  SELECT a * p pub_id p pub_name p country  FROM authors AS a INNER JOIN publishers AS p  ON a city=p city

  (二)外连接

  内连接时 返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行 而采用外连接时 它返回到查询结果集合中的不仅包含符合连接条件的行 而且还包括左表(左外连接时) 右表(右外连接时)或两个边接表(全外连接)中的所有数据行 如下面使用左外连接将论坛内容和作者信息连接起来

SELECT a * b * FROM luntan LEFT JOIN usertable as b  ON a username=b username   

  下面使用全外连接将city表中的所有作者以及user表中的所有作者 以及他们所在的城市

  SELECT a * b *  FROM city as a FULL OUTER JOIN user as b  ON a username=b username

  (三)交叉连接

  交叉连接不带WHERE 子句 它返回被连接的两个表所有数据行的笛卡尔积 返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数 例 titles表中有 类图书 而publishers表中有 家出版社 则下列交叉连接检索到的记录数将等

  于 * = 行

lishixinzhi/Article/program/SQL/201311/16231


</和

阅读更多 >>>  switchcase语句用法举例,在C#中怎样用switch-case语句

select语句是什么?

SELECT是SQL数据操纵语言(DML)中用于查询表格内字段数据的指令,可搭配条件限制的子句(如where)或排列顺序的子句(如order)来获取查询结果。
SELECT的基本语句格式如下:
SELECT [ALL | DISTINCT] 栏位名 [,栏位名...] FROM 资料表名 [,资料表名...] [WHERE 筛选条件式] [GROUP BY 栏位名[,栏位名...]] [ORDER BY 栏位名[,栏位名...]]
SELECT语句作用介绍
列选择(投影操作):能够使用SELECT语句的列选择功能选择表中的列,这些列是我们想要用查询返回的。当我们查询时,可在选择查询的表中指定的列。
行选择(选择操作):能够使用SELECT语句的行选择功能选择表中的行,这些行是我们想要用查询返回的。能够使用不同的标准限制所看见的行。
连接(多表操作):能够使用SELECT语句的连接功能来集合数据,这些数据虽然被存储在不同的表中,但是我们可以通过连接查询到该数据。
SELECT是SQL数据操纵语言(DML)中用于查询表格内字段数据的指令,可搭配条件限制的子句(如where)或排列顺序的子句(如order)来获取查询结果。
SELECT的基本语句格式如下:
SELECT [ALL | DISTINCT] 栏位名 [,栏位名...] FROM 资料表名 [,资料表名...] [WHERE 筛选条件式] [GROUP BY 栏位名[,栏位名...]] [ORDER BY 栏位名[,栏位名...]]
SELECT语句作用介绍
列选择(投影操作):能够使用SELECT语句的列选择功能选择表中的列,这些列是我们想要用查询返回的。查询时,可在选择查询的表中指定的列。
行选择(选择操作):能够使用SELECT语句的行选择功能选择表中的行,这些行是想要用查询返回的。能够使用不同的标准限制所看见的行。
连接(多表操作):能够使用SELECT语句的连接功能来集合数据,这些数据虽然被存储在不同的表中,但是可以通过连接查询到该数据。
以上内容参考:百度百科-select()

网站数据信息

"select语句查询,谁可以给我全部的SQL查询语句?"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:select语句查询,谁可以给我全部的SQL查询语句?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!