版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库应用系统开发了解数据库管理技术的发展、数据库系统组成、数据库系统结构、数据模型等,初步认识数据库及其应用系统50年代中期以前存储数据、组织方式由程序员自己决定、设计数据与程序不具有独立性n主要用于科学计算n数据不保存n应用程序管理数据n数据不共享n数据不具独立性人工手工管理50年代末至60年代中期,操作系统已有专门的管理数据软件程序与数据之间由软件提供存取方法但冗余大,程序与数据存储的独立性不够,修改结构意味着得更改程序。数据以文件方式存放,按表单形式表示。n数据可以长期保存n数据可以共享但共享性差、冗余度高n数据独立性差n文件之间数据孤立n安全性控制不灵活例:书籍(编号、标题、出版社编
2、码、书籍类型、单价)、出版社(编码、出版社名称)问题:n某标题的书籍是哪个出版社出版的?n某个出版社出版了什么书籍?面向文件系统的管理从60年代后期开始。要完成的任务是:数据合并、数据共享、数据保护。数据库与文件系统的根本区别在于数据的结构化,由单个数据表组成的数据库文件是平面文件数据库,平面文件系统是数据库技术发展的开端。数据库系统数据冗余小,易扩充。具有较高的数据和程序独立性。统一的数据控制功能。数据库管理系统相关术语和基本概念1数据(data)n数据指描述事物的符号记录。文字、图形、图像、声音、学生的档案记录、货物的运输情况等都是数据。2数据库(database,简称DB)n数据库指长期
3、存储在计算机内有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享。3数据库管理系统(database management system,简称DBMS)n数据库管理系统指位于用户与操作系统之间的一层数据管理软件。数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制。数据库管理系统使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。4数据库系统(database system,简称DBS)n数据库系统指在计算机系统中引入数据库后构成的系统,
4、一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。DBA (DataBase Administrator)协调用户和开发人员的工作参与数据库设计创建用户和授权保证数据库的正常运行维护工作一个能够让用户定义、创建和维护数据库以及控制对数据库访问的软件系统。数据库管理系统是位于用户和操作系统之间的一层数据管理软件数据库管理系统(DBMS)DBMS 功能DBMS 提供统一的数据定义、插入、删除、检索及更新操作。功能:n数据的安全性保护n数据的完整性检查n并发控制n数据库恢复数据库是系统中各用户的共享资源(并发)n数据的安全控制(允许谁操作,允许什么操作等)n数据的完整性
5、控制(实体完整性、参照完整性、属性完整性)n并发控制(防止丢失更新等)统一的数据控制功能数据的存储结构与逻辑结构之间的映象或转换功能,当数据的存储结构(或物理结构)改变时,数据的逻辑结构可以不变数据与程序的物理独立性,简称数据的物理独立性。数据的总体逻辑结构与某类应用所涉及的局部逻辑结构之间的映象或转换功能,当总体逻辑改变时,通过对映象的相应改变而保持局部逻辑结构不变。程序员是根据局部逻辑结构编写应用程序的,因而应用程序也就不必更改数据和程序的逻辑独立性,简称数据的逻辑独立性。数据和程序独立性 DBMS 环境有五个主要组成部分:硬件、软件、数据、工程和人n硬件:DBMS 和应用程序运行的计算机
6、系统n软件:DBMS 软件和应用程序以及操作系统n数据:运行数据和元数据n过程:控制数据库设计和使用的指令和规则n人:包括数据库设计者、数据库管理员、应用程序员和最终用户 DBMS 环境的组成 一个通过向 DBMS 发出合适的请求(一般是一个 SQL 语句)与数据库交互的计算机应用程序 数据库应用程序 从相同数量的数据中可获得更多的信息数据共享平衡需求冲突控制或消除冗余一致性完整性安全性高效性数据无关性数据库处理的优点 规模较大相对成本较大复杂度较大故障的影响较大恢复较困难数据库处理的缺点 面向用户或应用程序员的用户级n对应外模式(用户模式)面向建立和维护数据库人员的概念级n对应模式(逻辑模式
7、、概念模式)面向系统程员的物理级n内模式(存储模式)数据库系统的三级模式结构二级映像为提高数据独立性,DBMS 在三级模式之间提供两级映像n外模式/模式间的映像:当数据逻辑结构变更时,通过修改和调整外模式/模式间的映像,使得用户对应的外模式不变,从而依据外模式编写的应用程序可以不变,保持数据的逻辑独立性。n模式/内模式间的映像:当数据的存储结构发生改变时,通过修改和调整模式/内模式间的映像,是数据库的全局逻辑结构保持不变,保持数据的物理独立性数据模型由于计算机只能存储和处理数据而不能直接存储和处理现实世界中的客观事物,也就无法直接用计算机来管理一个企业的设备、产品和职员等,因此,我们必须先把企
8、业的设备、产品和职员等客观事物的某些特征抽象成计算机能够存储和处理的数据,才能用计算机对其进行管理。那么,用什么数据格式来抽象表示客观事物的数据特征呢?那就是数据模型数据模型的构成数据模型的三要素n数据结构 数据的表示方法(数据的组织形式),是一种静态特征的描述n数据操作 数据操作是指对数据库的查询、修改、删除和插入等操作,是一种动态特征的描述n完整性约束 数据及数据间联系应具有的制约和依赖规则数据模型的分类概念数据模型概念数据模型(概念模型)(概念模型)n按用户的观点对数据进行建模,强调语义表达功能按用户的观点对数据进行建模,强调语义表达功能n独立于计算机系统和独立于计算机系统和DBMSn主
9、要用于数据库的概念设计主要用于数据库的概念设计逻辑模型逻辑模型n按计算机系统的观点对数据建模,主要用于按计算机系统的观点对数据建模,主要用于 DBMS 的实现的实现n与具体计算机系统相关与具体计算机系统相关物理模型物理模型n用于描述数据在计算机内部的表示与存储方式用于描述数据在计算机内部的表示与存储方式n与具体计算机系统相关与具体计算机系统相关应用程序体系结构当前典型:客户-服务器(Client/Server,CS)浏览器-服务器(Browser/Server,BS)SQL Server 2008 版2008 年上市,2010 年 R2 版SQL Server 2000 是 Microsoft
10、 公司于 2000年12月推出的关系型数据库管理系统。SQL Server组组实例实例数据库数据库数据库对象数据库对象数据库表数据库表 记录记录查询分析器和语法检查语法检查 执行执行 选择数据库选择数据库数据库对象数据库对象T-SQL执行执行结果结果在线帮助系统按目录结构和主题进行文档查阅按目录结构和主题进行文档查阅按词进行全文档搜索按词进行全文档搜索按关键词条进行文档查阅按关键词条进行文档查阅定义书签,定位常用帮助页面定义书签,定位常用帮助页面SQL Server 2008 企业管理器企业级的信息系统无一例外地是数据库应用系统从早些时候的C/S系统中变成当前的混合型系统今日的商业系统需要支持
11、多种多样的客户端在这样的环境中,传统的“快速开发”应用通常变得不可能UML 提供了语义定义来实现这些应用PowerDesigner 提供了开发工具来实现这些应用现代信息系统的发展体系有职工、仓库、部门、客户、商品等基本信息,其中:n部门、客户、商品要求多级定义n职工与部门 为 m:1,仓库与部门为 m:1,部门与客户为 1:m有基本的物流功能,即进货、出货(批发、零售),要求:n要同时改变与客户的资金流(应收应付)n要记录所有的原始数据(包括业务双方、商品、商量、价格、时间、业务员、操作员等)有基本资金流动能,即支付、收款,要求:n内部的资金周转n与往来客户的资金流动n要记录所有的原始数据(包
12、括业务双方、金额、时间、业务员、操作员等)有基本的查询接口,基本信息查询、库存查询、与客户的应收应付查询、根据先进先出核算方法所得的利润查询等。可以为不同的操作员设置不同的权限课程示例进销存SQL 语言熟悉 SQL 语言SQL (结构化查询语言)是一个国际公认的定义和管理关系数据库的编程语言最初的开发是由 IBM 公司于 70 年代后期进行的SQL-86:1986年10月 ANSI (American National Standard Institute, 美国国家标准协会)发布 ANSI 文件 X.135-1986数据库语言 SQL,1987 年国际标准化组织采用了该文件成为国际标准SQL
13、-89:1989年 4 月 ANSI 发布 X3.168-1989数据库语言嵌入式 SQL,1989年 10 月 ANSI 发布 X3.135-1989数据库语言完整和增强的 SQLSQL-92(SQL-2):1992年8月ISO 和 ANSI 共同发布SQL-99 (SQL-3):1999 年修订本,但已不再是强制标准。2003年再次修订SQLSQL语言采用集合操作方式,它对数据的处理是成组进行的,而不是一条一条处理的。当执行SQL语句时,每次只能发送并处理一条语句。对用户而言,当执行SQL语句时,只需要知道其逻辑含义,不需要关心SQL语句的具体执行步骤。使用SQL语句时,既可以采用交互方式
14、执行,也可将SQL语句嵌入到高级语言中执行。SQL 语言特点 使用 Transact SQL (T-SQL) 可以在 SQL Server 2000 提供的关系型数据库中实现编程功能T-SQL 提供了几种运算符和条件表达式T-SQLTransact-SQL 语句的种类数据定义语言(DDL)语句n创建、更改或删除数据库对象数据控制语言(DCL)语句n授权数据操作语言(DML)语句n数据增、删、改、查SQL关键词不区分大小写对象名和列名不区分大小写字符值和日期值区分大小写可以分行SQL语句编写规则 显示常量 Select This is a test! Select hello !计算select
15、 1+2+3select aaa + 123查看全局变量Select languageSelect version获得函数值Select Getdate( )Select Year(Getdate( )SELECT 语句的基本格式SQL语句(SELECT)SELECT 语句是 SQL 中最常用的语句,用于检索已经存储在数据库中数据。基本语法:SELECT . - FROM . - WHERE . - GROUP BY . - HAVING . - ORDER BY . - 其中:nFrom: 用于指定被查询的表、视图或快照nWhere 条件: 用于限定处理的行数,选择满足条件的行nGroup
16、by: 分组nHaving: 分组后过滤数据,要求的列名是在聚合函数中如 avg, 或是在 group by 子句中nOrder by: 行信息显示时的先后顺序SQL查询 简单查询语句USE NorthWindSELECT * FROM employees查询全部的行和列查询全部的行和列SELECT firstname,lastname,birthdate FROM Employees查询全部行和特定列查询全部行和特定列SELECT * FROM employees WHERE city =LONDON查询限定范围的行查询限定范围的行使用别名列别名SELECT title_id as 编号编号
17、, price as 原价原价, price*0.7 as 现价现价FROM titles表别名 SELECT title_id, price, price*0.7FROM titles t消除取值重复的行/限制返回行数消除取值重复的行distinct限制返回的行数top n排序 Order by 功能:对查询结果进行排序例SELECT * FROM titlesORDER BY title, price descWhere 条件数字比较运算符(=、=、=、)字符串比较符(%、_、like)逻辑运算符(AND、OR、NOT)检索一定范围内的值(between and )使用值列表(In)检索未
18、知值(Null)表达式是符号和运算符的组合, SQL Server 可以对它进行运算以得到一个单值表达式可以包含下列一个或多个部分:n常数n列n一元运算符n二元运算符条件表达式查询语句中可以有函数、表达式查询列中的函数与表达式select proName, price*Num amount From 条件中的函数与表达式select From Where tdate getdate() - 7排序中的函数与表达式select FromOrder by datepart(hour, tDate)运算符含义=等于大于=大于等于=小于等于不等于! 非比较运算符模糊查询SELECT companyna
19、me FROM customersWHERE companyname LIKE %Restaurant%GROSELLA-RestauranteLonesome Pine RestaurantTortuga Restaurante通配符_一个字符Select Branch_Code From Branch Where Branch_Code Like L_%任意长度的字符串Select Route_Code From FlightSchedule Where Route_Code Like AMS-%括号中所指定范围内的一个字符Select Airbusno From FlightSchedu
20、le Where Airbusno Like AB01-5 不在括号中所指定范围内的任意一个字符Select Airbusno From FlightSchedule Where Airbusno Like AB01-5 通配符通配符解释解释示例示例T-SQL 支持的逻辑运算符如下:逻辑运算符AND 和 OR 运算符用于在 WHERE 子句中连接搜索条件。NOT 否定搜索条件。 AND 连接两个条件且仅当两个条件都为真时返回 TRUE。OR 也连接两个条件,但只要其中任一个为真就返回 TRUE。 子查询返回第一步返回第一步USE northwindSELECT orderid, custome
21、rid FROM orders AS or1 WHERE 20 (SELECT quantity FROM order details AS od WHERE or1.orderid = od.orderid AND ductid = 23)GO实例实例 聚合函数 AVG()计算表达式中平均值 COUNT()表达式中值的数目 MAX()表达式中的最大值 MIN()表达式中最小值SUM()计算表达式中所有值的和数据分组GROUP BY 联合使用聚合函数和联合使用聚合函数和 GROUP BY 子句,能够把表中的记录分组,子句,能够把表中的记录分组,并对组中数据进行汇总并对组中数据进行汇
22、总使用使用 GROUP BY 子句时,应注意子句时,应注意n对于指定的一组,SQL Server 只生成一条记录只生成一条记录,不返回详细信息n如果对可包含空值的字段使用 GROUP BY 子句,空值也将被当作一组在分组的同时,可用在分组的同时,可用 Having 对字段或表达式指定搜索条件对字段或表达式指定搜索条件n只在使用 GROUP BY 子句的同时,使用 HAVING 子句来限制分组n可以引用任何出现在选择列表中的字段n作为条件时聚合函数只能出现在Having 子句中多表联接从多个表中选择指定的字段n关键字 JOIN 指定要联接的表,以及这些表联接的方式n关键字 ON 指定联接条件查询
23、两个或多个表并生成单个结果集n所有联接的表必须共同拥有某些字段,这些字段必须有相同的或兼容的数据类型n如果联接的表有相同字段,则引用这些字段时必须指定表名多表联接使用表的别名组合多个表中的数据合并多个结果集集合查询UnionInterSectexcept当服务器接收到一个 SQL 查询语句后,将按照如下过程进行处理n分析过程:首先把这个批处理作为一个整体进行分析,在分析时,服务器检查命令动词和关键词的语法,验证表和字段的名字和合法性n再优化过程:在优化阶段,服务器会确定完成一个查询的最有效的方法n编译过程:在编译阶段,将生成这个批处理的可执行代码n执行过程:最后,这个批处理中的语句将在运行阶段
24、一句一句地执行 服务器处理 SQL 语句的过程 创建、修改基表Create table ( 列级完整性约束条件, 列级完整性约束条件, 列级完整性约束条件)Alter table 典型数据库表的设计基本范式表数据统计表分类表数据处理型表数据描述型表基本范式表员工表Employee(id, ename, deptid, )部门表Dept(dno, dname, )特点:基本满足NF数据统计表每月利润统计monthProfits(year, month, subid, profits, )特点:用于各类统计报表统计表数据本可以从明细中获取,当数据量较大时通过将数据统计后保存可以有效地提高运行效率分
25、类表商品 customer (cust_id, cust_name, parentid)特点基于一个已经定义好的范围和背景。在内容管理过程中,可采用结构分类的标准术语来统一分类及标记信息资 来源于菜单式的数据结构数据处理型表商品 whproduct (wh_id, pro_id, pos1, pos2, num1, money1, , numn, moneyn, )特点直接将计算数据存放在表中数据描述型表工资 Salary(Emp_id, Field1, Field2, , Fieldn, )商品 SalaryField (FieldName, DisplayName, Flag, )特点类似
26、于数据字典特殊字段设计()主键n使用标识字段n通过存储过程产生排序n设计 Orderno 字段父子关系n增加字段 parid自数目字段nSonsum, 冗余设计,可以方便查询其他n如可以在字段对应表中加一个字段SignFlag。其中应发工资项SignFlag为 1,扣发工资项SignFlag为 1。而应发工资、实发工资为计算项让SignFlag为0。n可以在字段对应表中加上每一字段在屏幕上的显示位置(PosX, PosY),用一个界面设置工资字段。特殊字段设计()使用位运算 1,2,4,8,特殊字段取值一般无法直接设计出完全符合用户要求的数据库通过单独考虑某个方面,这些单独的需求称为用户视图视
27、图是一个命名的 Select 语句,将动态地产生一个结果集视图是一个虚拟表视图完成数据库到程序的字段名称的映射使复杂查询语句的使用简单化能适当提高程序的执行效率视图设计视图提供了数据独立性因为每个用户都有他自己的视图,相同的数据可以被不同的用户从不同的角度定义不同的视图一个视图只需包括用户所需求的那些列,这样既可简化用户对数据库的理解,又提供了对安全性的检测视图的优点只能在当前数据库中创建视图视图名称应与表名近似视图名称应遵循标识符的命名规则可以基于其他视图建立视图不能将默认值、规则和触发器与视图相关联不能为视图建立索引创建视图时不能使用临时表即使表被删除,视图定义仍将保留定义视图的查询不能包
28、含 ORDER BY、INTO创建视图的指导原则一个互动交流平台,要求:n求助者可以发贴寻求帮助n求助者所发之贴须管理员审核后方可公示n普通网友可跟贴n管理人员一旦回帖,该回帖在所有回帖的最上方视图例(需求)视图例(表设计)留言求助系统(gbook) 序号 字段名称 类型 备注 1 ID 自动增长 主键,标识 2 topic Varchar(100) 留言标题 3 content Varchar(1000) 留言内容 4 pubtime Datetime 留言时间 5 ipadd Varchar(15) 留言者 IP 6 username Varchar(50) 留言作者(姓名) 7 tel
29、Varchar(50) 联系电话 Email Varchar(50) E-mail 8 addr Varchar(150) 单位或住址、其他联系方式等 9 Wname Varchar(50) 录入人姓名(前台为空,后台为录入人员账号) 10 fname Varchar(50) 分发人姓名(分发人员账号) 11 uID Varchar(50) 分发部门 ID(默认空,多部门分发用”,”分隔) stime Datetime 分发时间 gpassword Varchar(8) 察看密码,用户留言时生成,查看时须输入 Class int 类别(城市管理、社会治安、文教卫生等) Type2 int 类型
30、(举报 投诉 建议 咨询 感谢等) gtype int 留言类型,0 为 12345,1 为行政效能,2 为纪检,3 位监察,,4 领导在线访谈 可扩展 isused bool 对无效留言的删除标记 isdisplay bool 是否在前台显示标记,默认 0 不显示,1 显示 process Varchar(500) 处理过程记录 gstatus int 留言状态,0 刚生成,1 已分发,2 处理中(部分部门回复) ,3 已回复,4 退回,5 处理完毕 Satisfy 满意度,默认 0,1 满意,2 基本满意 3 不满意 lastDate 截至日期 回复表 reGBook 序号 字段名称 类型
31、 备注 1 ID 自动增长 主键,标识 2 topic Varchar(100) 回复标题 3 content Varchar(1000) 回复内容 4 pubtime datetime 回复时间 5 ipadd Varchar(15) 回复者 IP 6 username Varchar(50) 回复作者 rtype int 回复类型(默认 0 为群众,1 为机关答复) gID int 回复指向的留言 ID 以下为 rtype 为 1 的纪录才需用到 leadname Varchar(20) 承办单位领导签名 sname Varchar(20) 经办人签名 stel Varchar(20) 经
32、办人联系电话 isused bool 对无效留言的删除标记 下面的视图可以显示主帖 Id, 管理人员回帖数及最近回帖 IDSELECT gID, COUNT(*) AS reCount, max(id) as rIDFROM dbo.reGBookwhere isUsed = 1 and rtype0GROUP BY gID视图例(视图设计)下面的视图可以显示所有主帖的相关信息, 管理人员回帖数、点击数,最后是哪个管理员回帖等SELECT g.id, g.topic as title, g.content, g.ipAdd, ISNULL(g.pubtime, GETDATE() AS pub
33、time, ISNULL(g.userName, g.id) AS Author, isNull(rc.reCount, 0) as reCount, chits, isNull(g.uId, 0) as uId, r.pubtime as rTime, r.UserName as rAuthor, g.isdisplayFROM dbo.gbook g left join regbookcount rc on rc.gid = g.idleft join regbook r on rc.rId = r.IDWHERE (g.isused = 1)视图例(视图设计)视图SELECT *, CA
34、SE cTypeid WHEN 0 THEN default WHEN 1 THEN red ELSE default END AS dispcolor FROM dbo.content视图例不同主题以不同颜色呈现存储过程是是存储在服务器上执行指定操作的子程序,是有 SQL 语句和控制流语句构成的集合可以给存储过程传递数值,存储过程一可以返回数值存储过程存储过程与原始 SQL 语句的最大区别在于它是预编译的。当第一次运行一个过程时,数据库服务器的查询处理器对它进行分析并准备好一个执行计划并存储在系统表中,以后过程的执行都依据这个存储的计划如果是在客户/服务器环境下,存储过程经过编译和优化后存储
35、在服务器端,在网络上传输的只是一个远程调用和最终的执行结果,从而可以减少网络流量存储过程简化了安全机制,它可以简化对某些操作的授权。例如,假设一个用户不希望别人在他的表上使用 SELECT 语句,他可以写一个仅查询这个表某些行或列的存储过程,然后把调用该存储过程的权限授权给特定的用户存储过程把用户和应用程序与数据源、网络和存取路径细节隔离开,使得非专业人员对数据库服务器上的数据访问变得更方便存储过程的优点游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制游标提供了一种对从表中检索出的数据进行操作的灵活手段使用游标,可以实现以下目标:n允许定位到结果集中的特定行n从结果集的当前
36、位置检索一行或多行数据n支持对结果集中当前位置的行进行修改n对于其他用户对结果集包含的数据库n数据所做的修改,支持不同的可见性级别使用游标把游标与 Transact-SQL 语句的结果集相关联,并且定义游标的特征,如是否能够更新游标中的行执行 Transact-SQL 语句以填充游标检索想要查看的游标中的行根据需要,对游标中当前位置的行执行修改操作(更新或删除)关闭游标游标工作进程DECLARE语句用于创建游标。它包含SELECT语句,用来引入表中的记录语法:DECLARE CURSOR DECLARE CURSOR FOR FOR 在T-SQL中创建游标打开游标OPEN 检索记录FETCH
37、关闭游标CLOSE 删除游标引用DEALLOCATE 在T-SQL中使用游标FETCH _STATUS:为执行的上一个游标 FETCH 语句返回一个整数值CURSOR_ROWS:返回当前打开的游标中符合条件的行的数目。FETCH 语句全局变量使用 符号作为第一个字符来指定参数名称可以使用参数向存储过程中输入值,或从存储过程中输出值参数默认为 Input输入参数可以使用默认值 iVal int = 0输出参数需 Output存储过程的参数存储过程的返回包括n输出参数,可以返回数据(整型值或字符值等)n返回代码,始终是整型值。nSELECT 语句的结果集,这些语句包含在该存储过程内或该存储过程所调
38、用的任何其它存储过程内。存储过程返回一个结果集合存储过程例()ap_GetLoc.txtdeclarepathvarchar(300)exec ap_GetLoc 20, -, path outputprint path存储过程例()ap_acceptblotter_acccode.txt可以有返回值在存储过程内部执行 SQL 语句使用 execexecute项目需求:n商品出库时需要一个出库价格,以计算商品成本与利润。有三种计算出库价格的方法:w先进先出价商品先入库的先出库,出库价为入库是的入库价。w加权平均价商品入库时将库存商品的价格与入库商品的价格进行加权平均,下次出库时按该加权平均价作
39、为出库价格。w先进后出价商品后入库的先出库,出库价为入库是的入库价。成本核算栈、队列的使用()常规设计n先进先出队列;先进后出栈实际程序设计时可以考虑n将队列、栈合二为一,加权平均作为一个特例处理,即始终在栈顶处理。一个可能的处理方案n将商品表结构设计为: Id、Cname、Pos1、Pos2、Num1、Price1、Numn、Pricen通过Pos1与Pos2具体处理下一个入库存放在哪一个字段、下一个出库从哪一个字段处取得数据。成本核算栈、队列的使用() 先进先出 读取 Pos1、Pos2 入库 出库 Num1 Num1 Price1 Price1 Numi Pos2 Numi Pricei
40、 Pricei Pos1 Numj Numj Pricej Pricej Numn Numn Pricen Pricen每一次入库,Pos1加1,每一次出库从Pos2开始加。成本核算栈、队列的使用() 加权平均 读取 Pos1、Pos2 入库 出库 Num1 Num1 Price1 Price1 Pos1 Numi Pos1 Numi Pricei Pricei Numn Numn Pricen PricenPos1 与 Pos2相等,入库时先取得库存数量与价格,与入库数量与价格加权平均后存回。出库时直接取库存数量与价格,减出库数量后存回。成本核算栈、队列的使用() 先进后出 读取 Pos1、
41、Pos2 入库 出库 Num1 Num1 Price1 Price1 Pos2 Numi Pos2 Numi Pricei Pricei Numn Numn Pricen Pricen入库时Pos2加1,出库是从Pos2开始减.成本核算栈、队列的使用()存储过程例()ap_PushWhProduct.txt动态 Execute 语句sp_executesql 比 EXECUTE 更通用输出参数使用Output, 如:set sqlstr = Nselect orgnum = + numFldO + from whproductwhere wh_id = +convert(nvarchar(6)
42、, whid)+and pro_id = +convert(nvarchar(10),proid) exec sp_executesql sqlstr,NOrgnum numeric(9,2) output,Orgnum output 函数是由一个或多个 Transact-SQL 语句组成的子程序,可用于封装代码以便重新使用标量函数:标量函数返回在 RETURNS 子句中定义的类型的单个数据值内嵌表值函数:内嵌表值函数没有函数主体,表是单个 SELECT 语句的结果集多语句表值函数:多语句表值函数在 BEGIN.END 块中定义的函数主体包含 TRANSACT-SQL 语句,这些语句可生成行并将行插入将返回的表中 用户定义函数函数定义CREATE FUNCTION fnDocCount (itemNo int) RETURNS intAS BEGIN return (select count(*) from content where itemid = itemNo)END函数使用select dbo.fnDocCount(20)标量函数(例)CREATE FUNCTION fnRetWh (partname n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- PETS英语等级考试模拟试题及详细参考答案
- 2026年河道修防工(中级)职业技能考试题库及答案
- 海水预处理操作工安全操作规程
- 肾损伤保守治疗影像复查周期规范共识
- 2025-2026学年云南省曲靖市初中数学九年级期末上册自测高频题(详细参考解析)
- Oracle数据库机考实操试题(含详细答案解析)
- OD机试真题(技术岗)含详细答案解析
- 轨道交通消防系统升级改造方案
- 2026年不动产登记代理人《不动产权利理论与方法》题库及答案
- OA系统面试题及详细参考答案(实操版)
- 室外道路景观工程施工方案范例
- QGDW11221-2023低压综合配电箱技术规范(参考文本)
- MATLAB8.X程序设计及典型应用第七章
- 选煤厂机电管理课件
- 水钻打孔协议书
- 毕业设计(论文)-干玉米脱粒机设计
- 《壮药养生膏方生产技术规范》(征求意见稿)编制说明
- T/SSR 705-2024空调器用全铝微通道热交换器腐蚀性能评价值及试验方法
- 【课件】代数式的值课件2024-2025学年人教版数学七年级上册
- 新闻记者职业资格《新闻基础知识》考试题库(含答案)
- DL∕T 1657-2016 活性焦干法脱硫技术规范
评论
0/150
提交评论