|
学习 SQL 文档
[日期:2005-07-08] |
来源:CSDN 作者: |
[字体:大 中 小] |
数据库: SQL Sever 2000 注意: 如果你将SQL Sever配置为使用完整安全或混合安全,那么你可以使用可信连接。如果你使用标准安全,你则需要提供用户 账号 和密码。 库名: pubs (包含一个虚拟的出版商使用的各个表;安装好就有的,本文例子就用此表讲解) 调试工具: SQL 查询分析器 (允许执行交互的SQL查询,在把查询语句写进程序之前进行测试是非常有用的。) 选库 : 在查询窗口顶部的 DB下拉框中选择数据库pubs,这样你就选择了数据库。 1 例子 1.1 记录查询 ( 附 :有编号) 1.1.1 简单SELECT查询语句 1.1.1.1 描述: SELECT 字段 1, 字段 2, …… FROM 表 [WHERE 条件] 1.1.1.2 SQL语句: " SELECT au_lname, phone FROM authors " SELECT * FROM authors WHERE au_lname =‘Ringer‘ 1.1.1.3 结果: 1.1.1.4 注意: 1.1.2 操作多个表 1.1.2.1 描述: 1.1.2.2 Sql 语句 " SELECT au_lname ,title FROM authors, titles " SELECT title,pub_name FROM titles,publishers WHERE titles.pub_id=publishers.pub_id 1.1.2.3 结果: 1.1.2.4 注意: 1.1.3 操作字段 1.1.3.1 描述: 1.1.3.2 Sql 语句 " SELECT phone as ‘电话号码‘ FROM authors WHERE au_lname =‘Ringer‘ " SELECT phone ‘电话号码‘ FROM authors WHERE au_lname =‘Ringer‘ " SELECT price * 2 FROM titles " SELECT price "Original price", price * 2 "New price" FROM titles 1.1.3.3 结果: 1.1.3.4 注意: 你可以使用大多数标准的数学运算符来操作字段值,如加(+),减(-),乘(*)和除(/)。 你也可以一次对多个字段进行运算. 1.1.4 排序查询结果 1.1.4.1 描述: 1.1.4.2 Sql 语句 " SELECT au_lname FROM authors ORDER BY au_lname " SELECT au_lname ,au_fname FROM authors ORDER BY au_lname ,au_fname " SELECT au_lname,au_fname FROM authors ORDER BY au_lname ,au_fname DESC 1.1.4.3 结果: 1.1.4.4 注意: 警告: 不是特别需要时,不要对查询结果进行排序,因为服务器完成这项工作要费些力气。这意味着带有ORDER BY 子句的SELECT语句执行起来比一般的SELECT语句花的时间长。 1.1.5 取出互不相同的记录 1.1.5.1 描述: 1.1.5.2 Sql 语句 " SELECT DISTINCT au_lname FROM authors WHERE au_lname = ‘Ringer‘ 1.1.5.3 结果: 1.1.5.4 注意: 警告: 如同ORDER BY子句一样,强制服务器返回互不相同的值也会增加运行开销。福气不得不花费一些时间来完成这项工作。因此,不是必须的时候不要使用关键字DISTINCT。 1.1.6 集合函数 1.1.6.1 描述: 可以统计记录数目,平均值,最小值,最大值,或者求和。 1.1.6.2 Sql 语句 " SELECT AVG( lowqty ) ‘the_average‘ FROM discounts " SELECT COUNT( au_lname ) FROM authors WHERE au_lname= ‘Ringer‘ " SELECT COUNT( DISTINCT au_lname ) FROM authors WHERE au_lname= ‘Ringer‘ " SELECT COUNT( * ) FROM authors WHERE au_lname= ‘Ringer‘ " SELECT SUM( min_lvl ) FROM jobs " SELECT MAX( min_lvl ) FROM jobs " SELECT MIN( min_lvl ) FROM jobs 1.1.6.3 结果: 1.1.6.4 注意: 1.1.7 通过匹配来取出数据 1.1.7.1 描述: 百分号是通配符的例子之一。它代表 0个或多个字符。 中括号([])用来匹配处在指定范围内的单个字符。 ‘[ABC]%‘任何一个其名字以这些字符中的任一个开头记录都将被返回。 脱字符( ^)来排除特定的字符。 通过使用下划线字符( _),你可以匹配任何单个字符。 1.1.7.2 Sql 语句 " SELECT royalty FROM titles WHERE royalty >= 10 AND royalty <= 12 " SELECT royalty FROM titles WHERE royalty BETWEEN 10 AND 12 " SELECT royalty FROM titles WHERE royalty NOT BETWEEN 10 AND 12 " SELECT royalty FROM titles WHERE royalty = 10 OR royalty = 12 " SELECT royalty FROM titles WHERE royalty IN (10,12) " SELECT type FROM titles WHERE type LIKE ‘%popular_comp%‘ " SELECT type FROM titles WHERE type LIKE ‘[A-M ]%‘ " SELECT type FROM titles WHERE type LIKE ‘[ABC]%‘ " SELECT type FROM titles WHERE type LIKE ‘[a-fm]%‘ " SELECT type FROM titles WHERE type LIKE ‘[^(a-fmt)]%‘ 1.1.7.3 结果: 1.1.7.4 注意: 注意: 如果你想匹配百分号或下划线字符本身,你需要把它们括在方括号中。如果你想匹配连字符 (-),应把它指定为方括号中的第一个字符。如果你想匹配方括号,应把它们也括在方括号中。例如,下面的语句返回所有其描述中包含百分号的站点: 1.1.8 转换数据 1.1.8.1 描述: SQL Sever 把大部分数值从一种类型转换为另一种类型。例如,要比较SMALLINT型和INT型数据的大小,你不需要进行显式的类型转换。SQL Sever会为你完成这项工作。 当想在字符型数据和其它类型的数据之间进行转换时,需要自己进行转换操作。 函数 CONVERT( ) 1.1.8.2 Sql 语句 " SELECT CONVERT( CHAR(8),price) + ‘$‘ as ‘钱‘ FROM titles 1.1.8.3 结果: 1.1.8.4 注意: 函数 CONVERT( ) 带有两个变量。第一个变量指定了数据类型和长度。第二个变量指定了要进行转换的字段。
|