SQL server数据库查询语句使用方法详细讲解

作者&投稿:墨命 (若有异议请与网页底部的电邮联系)
~

一、 简单查询

简单的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

4、删除重复行

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

5、限制返回的行数

使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。

例如:

               

   SELECT TOP 2 *FROM testtable SELECT TOP 20 PERCENT * 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_sales10000

   ) 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 age20

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和smalldatetime等类型查询。

上一页12 下一页




梅州市19835893514: SQLserver查询语句 -
穰季福瓴: ~~~ 随便写一个 select column1,column2,count(column3) from table where conditions group by column1,column2 order by column1,column2

梅州市19835893514: SQL Server 数据库查询语句的语法有哪些?
穰季福瓴: 一、 简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句.它们分别说明所查询列、查询的表或视图、以及搜索条件等. 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段. SELECT ...

梅州市19835893514: 如何根据sql语句查询数据库中的信息' -
穰季福瓴: sql server 查询一个表的所有信息:查询语法为:select * from 表名 语法中的”*“代表所有. 实际操作举例:某数据中有一表叫”user_user“,表中存储了一些用户信息; 1、查询”user_user“表中所有人员信息且所有字段,sql语句:select * ...

梅州市19835893514: SQLserver查询语句 -
穰季福瓴: use 你这个数据库的名称goselect count(变量名)>10where 人员表.编号=订单表.编号and 订单表.编号=物品表.编号and 人名='张%'go我不知道你的变量名,这些你要自己改改

梅州市19835893514: sqlserver数据库查询语句 -
穰季福瓴: select * from educatewhere (name=@name or @name='')and (purpose=@purpose or @purpose='')and (begintime=@begintime or @begintime='')and (endtime=@endtime or @endtime='')and (student=@student or @student='')and (teacher=@teacher or @teacher='')and (type=@type or @type='')

梅州市19835893514: 一个很基础的SQL查询语句 -
穰季福瓴: 这个是SQLSERVER的查询 方括号在此处并不是必须的,方括号一般是用来括用户表中涉及的数据库的保留字的.比如USER, ID等等之类的SQLSERVER的保留字.因为数据库本身有这些关键字,而用户创建自己的表时,又创建了这些字段,...

梅州市19835893514: 数据库 SQL 查询语句 -
穰季福瓴: 以下语句 ,在SQL Server 中测试通过,如果你用的别的数据库,可能需要做其他调整查询女职工平均工资不低于600元的车间名称.select DNAME from DEPT where DEPT.DNO in ( select DNO from EMP where SEX = '女' group by DNO having avg(SALARY) >= 600 )查询各车间中平均工资最低的车间编号select top 1 DNO from EMP group by DNO order by avg(SALARY)

梅州市19835893514: SQL server查询语句 -
穰季福瓴: select * from 表名 where 姓名 not in (select 姓名 from 表名 where 成绩<=80)

梅州市19835893514: SQL Server 数据库查询语句的语法有哪些? -
穰季福瓴: 搂主说得不是太明白,你是要取第一条记录所对应的那个时间吗?如果是的话,用如下语句即可.select min(time) from table1 group by convert(varchar(13),time,20) 假设Table1表中数据如下2006-05-01 11:01:00.0002006-05-01 11:02:00....

梅州市19835893514: SQL Server数据库的查询语句~! -
穰季福瓴: 在DB端的话: 可以写一个function 或者存储过程实现在程序端的话: 就写个for循环,拼接sql不是很明白你的需求

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网