SQL-SELECT 语句,From子句,where条件查询
2011-12-07 10:55
696 查看
SELECT 语句 SELECT 语句用来检索数据表中的数据,而哪些数据被检索由列出的数据行与语句中的 WHERE 子句决定。例如,要从之前建立的 Customer_Data数据表中检索 customer_id 以及 first_name 数据行的数据,并且只想取出每行中 first_name 数据值为 Frankie 的数据,那麼可以利用以下的 SELECT 语句:
SELECT customer_id, first_name FROM Customer_Data
WHERE first_name = ‘Frankie’
如果有一行符合 SELECT 语句中的标准,则结果将显示如下:
customer_id first_name
------------- ------------
777 Frankie
在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
FROM不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。
例如:
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,然后再从中检索数据。
SELECT *
FROM usertable
WHERE age>20
WHERE子句可包括各种条件运算符:
比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<
范围运算符(表达式值是否在指定的范围):BETWEEN…AND…
NOT BETWEEN…AND…
列表运算符(判断表达式是否为列表中的指定项):IN (项1,项2……)
NOT IN (项1,项2……)
模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOT LIKE
空值判断符(判断表达式是否为空):IS NULL、IS NOT 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和smalldatetime等类型查询。
可使用以下通配字符:
百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
例如:
限制以Publishing结尾,使用LIKE '%Publishing'
限制以A开头:LIKE '[A]%'
限制以A开头外:LIKE '[^A]%'
4、空值判断符例WHERE age IS NULL
5、逻辑运算符:优先级为NOT、AND、OR
SELECT customer_id, first_name FROM Customer_Data
WHERE first_name = ‘Frankie’
如果有一行符合 SELECT 语句中的标准,则结果将显示如下:
customer_id first_name
------------- ------------
777 Frankie
(二) 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
FROM不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。
例如:
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、IS NOT 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和smalldatetime等类型查询。
可使用以下通配字符:
百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
例如:
限制以Publishing结尾,使用LIKE '%Publishing'
限制以A开头:LIKE '[A]%'
限制以A开头外:LIKE '[^A]%'
4、空值判断符例WHERE age IS NULL
5、逻辑运算符:优先级为NOT、AND、OR
相关文章推荐
- dedecms Sql标签运行mssql查询 语句 {dede:sql sql='select * from me_flink where typeid=10 limit 0,130 '}
- SQL查询语句中select from where group by having order by的执行顺序
- 在ASP中使用SQL语句之2:用WHERE子句设置查询条件
- SQL语句---from 和where 查询条件的优先级
- sql查询语句select, where的条件顺序
- sql server select查询语句 我想把AS后面重命名的列名 作为where语句的条件
- 关于sql视图--定义视图的查询不能包含order by子句,除非在select 语句的选择列表中还有top子句---问题解决
- 查询语句中select from where group by having order by的执行顺序
- 要提高SQL查询效率where语句条件的先后次序应如何写
- C$ sql:select * from 表名 where 条件:表名和条件是字符串时
- 要提高SQL查询效率where语句条件的先后次序应如何写
- SQL语句之WHERE查询子句
- SQL 指令:SELECT "栏位名" FROM "表格名" WHERE "条件"
- PL/SQL cursor 游标 where条件接收形参为VARCHAR 不能正常执行的问题 SELECT ContactNameC FROM MTContact WHERE objectno
- 要提高SQL查询效率where语句条件的先后次序应如何写
- Day51、数据库、远程连接服务器、查询select语句、form字句、where字句、order by 子句
- SQL SERVER 2012 第三章 T-SQL 基本SELECT语句用法,Where子句详细用法
- 在SELECT语句的FROM子句中最多可以指定多少个表或视图,相互之间要用什么分隔,当所查询的表不在当前数据库时,可用什么格式来指出表或视图对象?
- 在SQL查询语句中,使用条件where 1=2的意义
- 查询语句中select from where group by having order by的执行顺序