ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:160.53KB ,
资源ID:5997958      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5997958.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SQL查询语句大全集锦.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

SQL查询语句大全集锦.docx

1、SQL查询语句大全集锦SQL 查询语句大全集锦SQL 查询语句大全集锦简单查询简单的 Transact-SQL 查询只包括选择列表、 FROM 子句和WHERE 子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。例如,下面的语句查询 testtable 表中姓名为“张三”的 nickname 字段和 email 字段。代码:SELECT nickname,emailFROM testtableWHERE name=张(一) 选择列表1、选择所有列代码 :SELECT * FROM testtable2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的

2、列名排列顺序相同。例如: 代码 :SELECT nickname,email FROM testtable3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题 =列名 列名 列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定 界符,例如,下列语句使用汉字显示列 标题: 代码 :SELECT 昵称 =nickname, 电子邮件 =email FROM testtable4、删除重复行SELECT 语句中使用 ALL 或 DISTINCT 选项来显示表中符 合条件的所有行或删除其中重复的数据行,默认 为 ALL 。使用 DISTINCT 选项时,对于所有重复的数据行在S

3、ELECT 返回的结果集合中只保留一行。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 子句同时指定多个表或视图

4、时, 如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在 usertable 和 citytable 表中同时存在 cityid 列,在查询两个表中的 cityid 时应使用下面语句格式加以限定: 代码 :SELECT username,citytable.cityid在 FROM 子句中可FROM usertable,citytableWHERE usertable.cityid=citytable.cityid用以下两种格式为表或视图指定别名:代码 :表名 as 别名表名 别名例如上面语句可用表的别名格式表示为: 代码 :SELECT username,b.cit

5、yidFROM usertable a,citytable bWHERE a.cityid=b.cityidSELECT 不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。例如: 代码 :SELECT a.au_fname+a.au_lnameFROM authors a,titleauthor ta (SELECTtitle_id,titleFROM titlesWHERE ytd_sales >1OOOO ) AS tWHERE a.au_id=ta.au_idAND ta.title_id=t.title_id 此例中,将 SELECT 返回的结果集(三

6、) 使用 WHERE 子句设置查询条件WHERE 子句设置查询条件,过滤掉不需要的数据行。例如面语句查询年龄大于 2O 的数据:代码:SELECT * FROM usertable WHERE age>20WHERE 子句可包括各种条件运算符: 比较运算符 (大小比较 ):>、>=、=、!>、!=1O ANDage 代码:SELECT * FROM usertable ORDER BY ageDESC,userid ASC 另外,可以根据表达式进行排序。联合查询UNION 运算符可以将两个或两个以上上 SELECT 语句的查 询结果集合合并成一个结果集合显示,即执行联

7、合查询。UNION 的语法格式为: 代码 :select_statementUNION ALL selectstatement UNION ALL se lectstatement n其中lectstatement为待联合的 SELECT 查询语句。被联合查询结果集合中的重复行将只保留一行。联合查询时,查询结果的列标题为第一个查询语句的列标题。因此,要定义列标题必须在第一个查询语 句中定义。要对联合查询结果排序时,也必须使用第一查询 语句中的列名、列标题或者列序号。在使用 UNION 运算符时,应保证每个联合查询语句的选择 列表中有相同数量的表达式,并且每个查询选 择表达式应具有相同的数据类型

8、,或是可以自动将它们转换 为相同的数据类型。在自动转换时,对于数值类 型,系统将低精度的数据类型转换为高精度的数据类型。在包括多个查询的 UNION 语句中, 其执行顺序是自左至右, 使用括号可以改变这一执行顺序。例如: 查询 1 UNION ( 查询 2 UNION 查询 3)、连接查询通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理 系统的一个标志。在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在个表中。当检索数据时,通过连接操作查询出存放在多个 表中的不同实体的信息。连接操作给用户带 来很大的灵活性,他

9、们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行 查询。连接可以在 SELECT 语句的 FROM 子句或WHERE 子句中建立, 似是而非在 FROM 子句中指出连接时 有助于 将连接操作与 WHERE 子句中的搜索条件区分开来。所以,SQL-92 标准所定义的 FROM 子句的连接语法格式为: 代码 :FROM join_table join_type join_table ON (join_condition) 其中 join_table 指出参与连接操作的表名, 连接可以对同一个表操作,也可以对多表操作,对同一个表 操作的连接又称做自连接。join_type 指

10、出连接类型, 可分为三种: 内连接、 外连接和交 叉连接。内连接 (INNER JOIN) 使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配 的数据行。根据所使用的比较方式不同,内连接又分为等值或 LEFT连接、自然连接和不等连接三种。外连接分为左外连接 (LEFT OUTER JOINJOIN) 、右外连接 (RIGHT OUTER JOIN 或 RIGHT JOIN) 和全外连接 (FULL OUTER JOIN 或 FULL JOIN) 三种。与内 连接不同的是,外连接不只列出与连接条件相匹配的行,而 是列出左表 (左外连接时 ) 、右表 (右外连接时 )或

11、两个表 (全外 连接时 )中所有符合搜索条件的数据行。交叉连接 (CROSS JOIN) 没有 WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表 中符合查询条件的数据行数连接操作中的 ON (join_condition) 子句指出连接条件,它由被连接表中的列和比较运算符、 逻辑运算符等构成。无论哪种连接都不能对 text 、 ntext 和 image 数据类型列进行直接连接,但可以对这三种列进行间接连接。例 如: 代码:SELECT p1.pub_id,p2.pub_id,p1.pr_infoFROM pub_in

12、fo AS p1 INNER JOIN pub_info AS p2ONDATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)( 内连接 内连接查询操作列出与连接条件匹配的数据行,它使用比较 运算符比较被连接列的列值。内连接分三种: 1 、等值连接:在连接条件中使用等于号 (=) 运算符比较被连 接列的列值,其查询结果中列出被连接表中的所有列,包括 其中的重复列。2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括 > 、 >= 、 !。3、自然连接:在连接条件中使用等于 (=) 运算符比较被连接列的

13、列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。例,下面使用等值连接列出authors 和 publishers 表中位于同一城市的作者和出版社: 代码:SELECT *FROM authors AS a INNER JOIN publishers AS pON a.city=p.city 又如使用自然连接,在选择列表中删除 authors 和 publishers 表中重复列 (city 和 state) : 代码 :SELECT a.*,p.pub_id,p.pub_name,p.countryFROM authors AS a INNER JOIN publi

14、shers AS pON a.city=p.city(二)外连接内连接时,返回查询结果集合中的仅是符合查询 条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表 (左外连接时 )、右表(右外连接时 )或两个边接表 (全外连接 )中的所有数据行。如下面使用左外连接将论坛内容和作者信息连接起来: 代码:SELECT a.*,b.* FROM luntan LEFT JOIN usertableas b的所有作者以及 user 表中的所有作者, 以及他们所在的城市: 代码:SELECT a.*,b.*FR

15、OM city as a FULL OUTER JOIN user as bON a.username=b.username(三)交叉连接 交叉连接不带 WHERE 子句,它返回被连接的两个表所有 数据行的笛卡尔积,返回到结果集合中的数 据行数等于第一个表中符合查询条件的数据行数乘以第 个表中符合查询条件的数据行数。例, titles 表中有 6 类图书,而 publishers 表中有 8 家出版 社,则下列交叉连接检索到的记录数将等 于 6*8=48 行。代码:SELECT type,pub_nameFROM titles CROSS JOIN p ublishersORDER BY ty

16、peSQL 核心语句 (非常实用的几个技巧 ) _ArticleContent1_lblContent> 插入数据 向表中添加一个新记录,你要使用 SQL INSERT 语句。这 里有一个如何使用这种语句的例子:some data )代码 :INSERT mytable (mycolumn) VALUES (这个语句把字符串 some data 插Am表table 的 mycolumnINSERT 语句的完整句法如下: 代码:INSERT INTO table_name|view_name (column_list) DEFAULT VALUES |Values_list | selec

17、t_statement 如果一个表有多个字段,通 过把字段名和字段值用逗号隔开,你可以向所有的字段中插 入数据。假设表 mytable 有三个字段 first_column,second_column, 和 third_column 。面的 INSERT 语句添加了一条三个字段都有值的完整记录: 代码:INSERT mytable (first_column,second_column,third_column)VALUES (some data , some more data , yet more data ) 注意 你可以使用 INSERT 语句向文本型字段中插入数据。但是, 如果你需要

18、输入很长的字符串, 你应该使用 WRITETEXT 语 句。这部分内容对本书来说太高级了,因此不加讨论。要了 解更多的信息,请参考 Microsoft SQL Sever 的文档。如果你在 INSERT 语句中只指定两个字段和数据会怎么样 呢?换句话说,你向一个表中插入一条新记录,但有一个字 段没有提供数据。在这种情况下,有下面的四种可能: 如果该字段有一个缺省值,该值会被使用。例如,假设你插 入新记录时没有给字段 third_column 提供数据, 而这个字段 有一个缺省值 some value 。在这种情况下,当新记录建立时会插入值 some value 。如果该字段可以接受空值,而且没

19、有缺省值,则会被插入空 值。如果该字段不能接受空值, 而且没有缺省值, 就会出现错误。你会收到错误信息:The column in table mytable may not be null.最后,如果该字段是一个标识字段,那么它会自动产生一个 新值。当你向一个有标识字段的表中插入新记录时,只要忽 略该字段,标识字段会给自己赋一个新值。注意量 identity 来访问新记录some的标识字段的值。考虑如下的 SQL 语句:代码 :INSERT mytable (first_column) VALUES( value ) code codeINSERT anothertable(another_

20、first,another_second)VALUES(identity, some value 如) 果表 mytable 有一个 标识字段,该字段的值会被插入表 anothertable 的 another_first 字段。 这是因为变量 identity 总是保存最后次插入标识字段的值。字段 another_first 应该与字段 first_column 有相同的数据类 型。但是,字段 another_first 不能是应该标识字段。Another_first 字段用来保存字段 first_column 的值。删除记录要从表中删除一个或多个记录,需要使用 SQL DELETE 语 句

21、。你可以给 DELETE 语句提供 WHERE 子句。 WHERE子句用来选择要删除的记录。 例如,下面的这个 DELETE 语 句只删除字段 first_column 的值等于 Delete Me 的记录:代码 :DELETE mytable WHERE first_column= Deltet Me DELETE 语句的完整句法如下:代码:DELETE FROM table_name|view_name WHEREclause 在 SQL SELECT 语句中可以使用的任何条件都可这个 DELETE 语句只删除那些 first_column 字段的值为goodbye 或cond_colum

22、n 字段的值为 so long 的记录:代码 :DELETE mytable WHERE first_column= goodbyOR second_column= so long 如果你不给 DELETE 语句提注意为什么要用TRUNCATE TABLE 语句代替 DELETE 语句?当你使用 TRUNCATE TABLE 语句时,记录的删除是不作记录的。也就是说,这意味着 TRUNCATE TABLE 要比DELETE 快得多。更新记录要修改表中已经存在的一条或多条记录,应使用 SQLUPDATE 语句。同 DELETE 语句一样, UPDATE 语句可以使用 WHERE 子句来选择更新特

23、定的记录。请看这个例子:代码 :UPDATE mytable SET first_column= Updated! WHERE second_column= Update Me! 这个 UPDATE 语句更新所有 second_column 字段的值为Update Me! 的记录。对所有被选中的记录,字段 first_column的值被置为 Updated! 。面是 UPDATE 语句的完整句法:代码:UP DATE table_name|view_name SETtable_name|view_namecolumn_list|variable_list|variable_and_column

24、_list,column_list2|variable_list2|vari able_and_column_list2,column_listN|variable_listN|variable_and_column_listNWHERE clause 注意你可以对文本型字段使用 UPDATE 语句。但是,如果你需要更新很长的字符串,应使用 UPDATETEXT 语句。这部分内容对本书来说太高级了,因此不加讨论。要了解更多的信息,请参考 Microsoft SQL Sever 的文档。如果你不提供 WHERE 子句,表中的所有记录都将被更新。价格加倍,你可以使用如下的 UPDATE 语句:你也

25、可以同时更新多个字段。例如,下面的 UPDATE 语句 同时更新 first_column,second_column, 和 third_column 这三个字段:代码:UP DATE mytable SET first_column= Up dated!Second_column= Updated! 技巧Third_column= Updated! WHERE first_column= Update Me1你最容易读的格式。用 SELECT 创建记录和表UPDATE 语句有一点不同,它一次只操作一个记录。然而,有一个方法可以使 INSERT 语句一次添加多个记录。要作到这一点,你需要把 I

26、NSERT 语句与 SELECT 语句结合起来,象这样:代码:INSERT mytable (first_column,second_column)SELECT another_first,another_secondFROM anothertableWHERE another_first= Copy Me!这个语句从 anothertable中字段拷贝记录到 mytable. 只有表 anothertable another_first的值为Copy Me!的记录才被拷贝。当为一个表中的记录建立备份时, 这种形式的 INSERT 语句 是非常有用的。在删除一个表中的记录之前,你可以先用这 种

27、方法把它们拷贝到另一个表中。如果你需要拷贝整个表,你可以使用 SELECT INTO 语句。例如,下面的语句创建了一个名为 newtable 的新表,该表 包含表 mytable 的所有数据:代码:SELECT * INTO newtable FROM mytable 你也可以 指定只有特定的字段被用来创建这个新表。要做到这一点, 只需在字段列表中指定你想要拷贝的字段。另外,你可以使 用 WHERE 子句来限制拷贝到新表中的记录。下面的例子 只拷贝字段 second_columnd 的值等于 Copy Me! 的记录的 first_column 字段。代码:SELECT first colum

28、n INTO newtableFROM mytableWHERE second_column= Copy Me! 使用 SQL 修改已经建 立的表是很困难的。例如,如果你向一个表中添加了一个字 段,没有容易的办法来去除它。另外,如果你不小心把一个 字段的数据类型给错了,你将没有办法改变它。但是,使用 本节中讲述的 SQL 语句,你可以绕过这两个问题。例如,假设你想从一个表中删除一个字段。使用 SELECTINTO 语句,你可以创建该表的一个拷贝,但不包含要删除 的字段。 这使你既删除了该字段, 又保留了不想删除的数据 如果你想改变一个字段的数据类型,你可以创建一个包含正 确数据类型字段的新表。

29、创建好该表后,你就可以结合使用UPDATE 语句和 SELECT 语句,把原来表中的所有数据拷语句。这some data )保存原有的数据。_ArticleContent1_lblContent> 插入数据 向表中添加一个新记录,你要使用 SQL INSERT 里有一个如何使用这种语句的例子:代码 :INSERT mytable (mycolumn) VALUES (这个语句把字符串 some data 插Am表table 的 mycolumn 字段中。将要被插入数据的字段的名字在第一个括号中指INSERT 语句的完整句法如下:代码 :INSERT INTO table_name|vie

30、w_name (column_list) DEFAULT VALUES | Values_list | select_statement 如果一个表有多个字段, 通过把字段名和 字段值用逗号隔开,你可以向所有的字段中插入数据。假设 表 mytable 有三个字段 first_column,second_column, 和 third_column 。下面的 INSERT 语句添加了一条三个字段都 有值的完整记录:代码:INSERT mytable (first_column,second_column,third_column) VALUES ( some data , some more d

31、ata , yet more data ) code 注意 你可以使用 INSERT 语句向文本型字段中插入数据。但是, 如果你需要输入很长的字符串, 你应该使用 WRITETEXT 语 句。这部分内容对本书来说太高级了,因此不加讨论。要了 解更多的信息,请参考 Microsoft SQL Sever 的文档。如果你在 INSERT 语句中只指定两个字段和数据会怎么样 呢?换句话说,你向一个表中插入一条新记录,但有一个字 段没有提供数据。在这种情况下,有下面的四种可能: 如果该字段有一个缺省值,该值会被使用。例如,假设你插 入新记录时没有给字段 third_column 提供数据, 而这个字段 有一个缺省值 some value 。在这种

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2