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

来源:互联网 发布:王者荣耀充值网站源码 编辑:程序博客网 时间:2024/04/29 22:50
一、 简单查询
  
简单的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_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和smalldatetime等类型查询。
  
可使用以下通配字符:
  
  百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
  
  下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
  
  方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
  
例如:
  
  限制以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


另外,可以根据表达式进行排序。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 房子付了首付贷款贷不下来怎么办 浙江嵊泗人在金华丢了身份证怎么办 一证5号够了怎么办新卡 微信号被盗实名认证是自己的怎么办 苹果微信登录显示被盗风险怎么办 在诈骗公司上班被公安抓了怎么办 在国外护照不小心撕坏了怎么办 在俄罗斯护照超期拉黑应该怎么办 俄罗斯五年定居护照丢了怎么办 百家号文章质量分一直在下降怎么办 如果在韩国把护照弄丢了怎么办 坐亲戚的车出了车祸受伤怎么办 出了车祸受伤对方不拿医药费怎么办 如果找你买保险的不在了保单怎么办 赴美生子父母一方是绿卡怎么办 农保报销需要居住证过期了怎么办 有上海户口但没有户口本怎么办护照 签证用的旧护照丢失了英签怎么办 买的动迁房房东不肯过户怎么办 身份信息在qq邮箱泄露了怎么办 别人用我的身份证贷款不还怎么办 做兼职被骗了身份证泄露了怎么办 qq绑定的手机号被别人换了怎么办 银行卡丢失不知道卡号和密码怎么办 美团景点门票过了退款期怎么办 我的手机汽车之家无法看视频怎么办 来事泡温泉细菌感染外阴瘙痒怎么办 西澳大学语言班没通过怎么办 银行入职培训理论考试不合格怎么办 去泰国旅游不会泰语和英语的怎么办 老板不发工资怎么办没签合同的 3d模型导进去材质丢失怎么办 七日杀显示载入中之后进不去怎么办 进京证过期了车在北京怎么办 微信打字时剪切的东西丢了怎么办 错过了医师定期考核报名时间怎么办 大学档案在自己手里放多年怎么办 档案在自己手里10年了怎么办 快递地址区域划分写错了怎么办 怀孕八个月肛门长个肉疙瘩怎么办呢 客户签了合同不要货了怎么办