您当时的方位:主页 >  > Access

通用SQL数据库精华简介

2014-09-10  www.codeforacause.net

  一、 简略查询
  
  简略的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 别号
  表名 别号
  
  (二) 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、逻辑