SQL2008入门教程-SQL语句
2014-03-24 11:30
387 查看
1.表操作
CREATE TABLE Contract ( ContractID varchar (10) NOT NULL , CompanyID varchar (10) NOT NULL , ContractName varchar (30) NULL , ContractVolume numeric(18, 2) NULL, SignDate Datetime NULL ) CREATE TABLE #MyTempQuery --临时表,存储在tempdb中, ( ContractID Varchar(10) PRIMARY KEY, ContractVolume Numeric(18, 0) ) ALTER TABLE Contract --增加新的字段 ADD CompanyID VARCHAR(20) NULL ALTER TABLE Contract --改变数据类型 ALTER COLUMN ContractVolume money DROP TABLE Contract --删除表Contract /*DROP TABLE 不能用于除去由 FOREIGN KEY 约束引用的表。必须先除去引用的 FOREIGN KEY 约束或引用的表。除去表时,表上的规则或默认值将解除绑定,任何与表关联的约束或触发器将自动除去。 */
2.查询操作
Select TOP 50 ContractName as 合同名称, --只显示满足要求的前50条记录 ContractVolume as 合同总金额 From Contract SELECT DISTINCT CompanyID --DISTINCT 去掉重复的列 FROM Contract /*查询每个合同的合同明细金额之和,合同表与合同明细表是主子表的关系。合同明细表有三个字段分别是:ContractID、ContractDetailID、Volume。 合同表的字段是[ContractID] ,[ContractName] ,[ContractVolume] ,[SignDate] ,[CompanyID] ,[ContractMemo]*/ SELECT a.ContractID ,sum(Volume) FROM Contract a --别名,便于书写 LEFT JOIN ContractDetail b --左外连接 ON a.ContractID=b.ContractID GROUP BY a.ContractID --按照ContractID分组求每个分组的和,即相同的ID的Volume求和 SELECT ContractID,ContractName,ContractVolume,SignDate FROM Contract WHERE SignDate>’2002-01-01’ --where 条件 SELECT ContractID,ContractName,ContractVolume,SignDate FROM Contract,Company WHERE Contract.CompanyID=Company.CompanyID AND CompanyName='北京怡神工贸公司' AND ContractVolume>1000000 SELECT ContractID,ContractName,ContractVolume,SignDate FROM Contract WHERE ContractVolume<100000 OR (SignDate>’2002-05-01’ AND SignDate<’2002-08-01’) /*查询与各公司签定的所有合同的总金额之和,在此需要聚合函数SUM,SQL语句如下:*/ SELECT CompanyName,SUM(ContractVolume) FROM Contract,Company WHERE Contract.CompanyID=Company.CompanyID GROUP BY CompanyName /*查询各合同的合同明细金额的最小值,需要用到函数MIN,SQL语句如下:*/ SELECT ContractName,MIN(Volume) FROM Contract,ContractDetail WHERE Contract.ContractID=ContractDetail.ContractID GROUP BY ContractName /*查询每个单位每个合同明细金额之和,要求该合同为2002年1月1日之后签名册定的合同,SQL语句如下:*/ SELECT CompanyName,ContractName,SUM(Volume) FROM Contract,ContractDetail,Company WHERE Contract.ContractID=ContractDetail.ContractID AND Contract.CompanyID=Company.CompanyID GROUP BY CompanyName,ContractName,SignDate HAVING SignDate>’2002-01-01’ /*HAVING 与 WHERE 类似,可用来决定选择哪个记录。在使用 GROUP BY对这些记录分组后,HAVING 会决定应显示的记录。在 HAVING 子句中不能使用 text、image 和 ntext 数据类型。*/ --如果要将数据以排序时的顺序显示出来,就必须使用 ORDER BY。ORDER BY 使用两个保留字ASC和DESC,ASC按递增的顺序排序,DESC按递减的顺序排序,缺省的排序次序是递增排序 (A 至 Z,0 至9)。在 ORDER BY 子句中不能使用 ntext、text 和 image 列。空值被视为最低的可能值。 --查询每个单位每个合同明细金额之和,要求该合同为2002年1月1日之后签名册定的合同,并且按单位名称和签定日期升序排序,SQL语句如下: SELECT CompanyName,ContractName,SUM(Volume) FROM Contract,ContractDetail,Company WHERE Contract.ContractID=ContractDetail.ContractID AND Contract.CompanyID=Company.CompanyID GROUP BY CompanyName,ContractName,SignDate HAVING SignDate>’2002-01-01’ ORDER BY CompanyName,SignDate
相关文章推荐
- asp经典入门教程 在ASP中使用SQL 语句第1/2页
- asp经典入门教程 在ASP中使用SQL 语句第1/2页
- 【下载】最易入门SQL语句教程.pdf
- sql语句进阶教程(学习sql这一篇就够了)
- SQL基础教程学习(二)开始学习SQL语句
- mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
- MyBatis 入门到精通(二) SQL语句映射XML文件 .
- SQL语句教程-------SQL语法
- MyBatis 入门到精通(二) SQL语句映射XML文件
- Oracle数据库入门——sql语句和函数详解
- linux之SQL语句简明教程---IN
- SQL语句教程(05) IN
- Day57-Oracle01 - oracle体系结构、sql语句分类和结构、基本查询、函数入门
- linux之SQL语句简明教程---表格连接
- 无师自通C#.NET和SQL编程入门免费视频教程大全(由吉日嘎拉精心录制,可以改变一个人职业生涯的入门教程)
- Proc *C/C++入门之常用嵌入式SQL语句
- 云星数据---Scala实战系列(精品版)】:Scala入门教程037-Scala实战源码-Scala match语句02 条件守卫
- SQL语句教程(http://sql.1keydata.com/cn/)
- Android开发教程之--sql语句
- linux之SQL语句简明教程---TRIM