资源预览内容
第1页 / 共59页
第2页 / 共59页
第3页 / 共59页
第4页 / 共59页
第5页 / 共59页
第6页 / 共59页
第7页 / 共59页
第8页 / 共59页
第9页 / 共59页
第10页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
SQL初级培训,周小强 2006-2-18,软件概述,数据库:SQLSERVER,帐套数据库:UFDATA_XXX_XXXX,系统库:UFSYSTEM,模板库:UFMODEL,软件概述,Sqlserver的文件: 主文件(*.mdf)-极为重要 日志文件(*.Ldf) Access的文件:只有一个文件*.mdb,Microsoft Access和SqlServer的区别,Access不支持存储过程等sql高级功能 Access在网络应用方面要进行文件共享(是打开文件数据),而sqlserver是进行连接控制(连接数据),查询-Select语句,SELECT FORM WHERE 例: SELECT * FROM YOURTABLENAME,函数:对数据的进一步处理,汇总函数 SUM SUM 就如同它的本意一样它返回某一列的所有数值的和。 SELECT SUM(COLUMAN) FROM YOURTABLE COUNT 该函数将返回满足WHERE 条件子句中记录的个数。 最简单的例子就是您想知道某一个表里的记录数: SELECT COUNT(*) FROM YOURTABLE,函数:对数据的进一步处理,MAX 返回表达式的最大值。 语法 MAX ( ALL | DISTINCT expression ) 参数 ALL 对所有的值进行聚合函数运算。ALL 是默认设置。 DISTINCT 指定每个唯一值都被考虑。DISTINCT 对于MAX无意义,使用它仅仅是为了符合 SQL-92 兼容性。 expression 常量、列名、函数以及算术运算符、按位运算符和字符串运算符的任意组合。MAX可用于数字列、字符列和 datetime 列,但不能用于 bit 列。不允许使用聚合函数和子查询。 返回类型 返回类型与 expression 相同。,字符函数,LEFT 返回从字符串左边开始指定个数的字符。 语法 LEFT ( character_expression , integer_expression ) 参数 character_expression 字符或二进制数据表达式。character_expression 可以是常量、变量或列。character_expression 必须是可以隐式地转换为 varchar 的数据类型。否则,请使用 CAST 函数显式转换 character_expression。 integer_expression 是正整数。如果 integer_expression 为负,则返回空字符串。 返回类型 varchar 示例 A. 对列使用 LEFT 函数 下面的示例返回每个书名最左边的 5 个字符。 USE pubs GO SELECT LEFT(title, 5) FROM titles ORDER BY title_id RIGHT 返回从字符串右边开始指定个数的字符。其参数语法与LEFT函数类似,SUBSTRING 返回字符、binary、text 或 image 表达式的一部分。 语法 SUBSTRING ( expression , start , length ) 参数 Expression:是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。 Start:是一个整数,指定子串的开始位置。 Length:是一个整数,指定子串的长度(要返回的字符数或字节数)。 说明 由于在 text 数据上使用 SUBSTRING 时 start 和 length 指定字节数,因此 DBCS 数据(如日本汉字)可能导致在结果的开始或结束位置拆分字符。此行为与 READTEXT 处理 DBCS 的方式一致。然而,由于偶而会出现奇怪的结果,建议对 DBCS 字符使用 ntext 而非 text。 返回类型 如果 expression 是支持的字符数据类型,则返回字符数据。如果 expression 是支持的 binary 数据类型,则返回二进制数据。 注释 在字符数中必须指定使用 ntext、char 或 varchar 数据类型的偏移量(start 和 length)。在字节数中必须指定使用 text、image、binary 或 varbinary 数据类型的偏移量。 示例 在字符串上使用 SUBSTRING 下例显示如何只返回字符串的一部分。该查询在一列中返回 authors 表中的姓氏,在另一列中返回 authors 表中的名字首字母。 USE pubs SELECT au_lname, SUBSTRING(au_fname, 1, 1) FROM authors ORDER BY au_lname,LEN 返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格。 语法 LEN ( string_expression ) 参数 string_expression 要计算的字符串表达式。 返回类型 int 示例 下面的示例选定字符个数和位于芬兰的公司的 CompanyName 数据。 USE Northwind GO SELECT LEN(CompanyName) AS Length, CompanyName FROM Customers WHERE Country = Finland,CAST 和 CONVERT 将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。 语法 使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type(length), expression , style) 参数 expression 是任何有效的 Microsoft SQL Server 表达式。 data_type 目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。 length nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。 style 日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、 nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。具体的值见帮助。 此类函数使用也比较多。,SQL 中的子句,Select From Where Order by ,SQL 中的子句,Group by 子句 GROUP BY ALL group_by_expression ,.n WITH CUBE | ROLLUP USE pubs SELECT type, AVG(price) FROM titles WHERE advance $5000 GROUP BY type,HAVING 子句 HAVING 使用 HAVING 子句选择行 HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。 下面的查询得到本年度截止到目前的销售额超过 $40,000 的出版商: USE pubs SELECT pub_id, total = SUM(ytd_sales) FROM titles GROUP BY pub_id HAVING SUM(ytd_sales) 40000,理解应用 WHERE、GROUP BY 和 HAVING 子句的正确序列对编写高效的查询代码会有所帮助: WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。 GROUP BY 子句用来分组 WHERE 子句的输出。 HAVING 子句用来从分组的结果中筛选行。,表的联合(Join),INNER 指定返回每对匹配的行。废弃两个表中不匹配的行。如果未指定联接类型,则这是默认设置。 FULL OUTER 指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。这是对通常由 INNER JOIN 返回的所有行的补充。 LEFT OUTER 指定在结果集中包含左表中所有不满足联接条件的行,且在由内联接返回所有的行之外,将另外一个表的输出列设为 NULL。 RIGHT OUTER 指定在结果集中包含右表中所有不满足联接条件的行,且在由内联接返回的所有行之外,将与另外一个表对应的输出列设为 NULL。,表的联合(Join),所需的资料并不是放在同一个资料表中, 在这个时候, 你就要用到 Join ,如我们U8中的主子表 当然 Join 如何将不同的数据库的资料结合, 还要看你如何使用它。 一共有四种不同的 Join 的方式: INNER Join FULL OUTER Join LEFT OUTER Join RIGHT OUTER Join,Union运算符,UNION 运算符 将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。这与使用联接组合两个表中的列不同。 使用 UNION 组合两个查询的结果集的两个基本规则是: 所有查询中的列数和列的顺序必须相同。 数据类型必须兼容。,子查询:内嵌的SQL 子句,if exists (select * from dbo.sysobjects where id = object_id(Ndbo.PO_Podetails) and OBJECTPROPERTY(id, NIsUserTable) = 1) drop table dbo.PO_Podetails GO,操作数据(INSERT UPDATE DELETE),INSERT INTO子句 INSERT INTO titles (title_id, title, type, pub_id, price) VALUES (BU9876, Creating Web Pages, business, 1389, 29.99),操作数据(INSERT UPDATE DELETE),UPDATE子查询 子查询可以嵌套在 UPDATE、DELETE 和 INSERT 语句以及 SELECT 语句中。 下面的查询使由 New Moon Books 出版的所有书籍的价格加倍。该查询更新 titles 表;其子查询引用 publishers 表。 UPDATE titles SET price = price * 2 WHERE pub_id IN (SELECT pub_id FROM publishers WHERE pub_name = New Moon Books) 下面是使用联接的等效 UPDATE 语句: UPDATE titles SET price = price * 2 FROM titles INNER JOIN publishers ON titles.pub_id = publishers.pub_id AND pub_name = New Moon Books,操作数据(INSERT UPDATE DELETE),DELETE子句 通过下面嵌套的查询,可以删除商业书籍的所有销售记录: DELETE sales WHERE t
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号