数据库与程序设计_第1页
数据库与程序设计_第2页
数据库与程序设计_第3页
数据库与程序设计_第4页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.数据库与程序设计数据库操作一、创建数据库(page81 )【重点程序page84 】创建数据库采用 create database 语句,用来定义数据库名,确定数据库文件和数据库日志文件的属性(名称、位置、大小、最大容量、增长特性等) 。CREATE DATABASE数据库名ON PRIMARY(NAME= 文件名 ,FILENAME=' 系统路径 +文件名 .ndf',SIZE= 文件大小 ,MAXSIZE= 文件的最大容量 ,FILEGROWTH= 每次增容时增加的容量大小)LOG ON(NAME= 文件名 ,FILENAME=' 系统路径 +文件名 .ldf&#

2、39;,SIZE= 文件大小 ,MAXSIZE= 文件的最大容量 ,FILEGROWTH= 每次增容时增加的容量大小)GO二、修改数据库(page85 )1.增加数据库文件ALTER DATABASE数据库名ADD FILE(NAME= 文件名,FILENAME=' 系统路径 +文件名 .ndf',SIZE= 文件大小 ,MAXSIZE= 文件的最大容量 ,FILEGROWTH= 每次增容时增加的容量大小)GO2.增加辅助日志文件ALTER DATABASE数据库名ADD LOG FILE(NAME= 文件名,FILENAME=' 系统路径 +文件名 .ldf'

3、,SIZE= 文件大小 ,MAXSIZE= 文件的最大容量 ,1/17.FILEGROWTH= 每次增容时增加的容量大小)GO3.删除数据库文件ALTER DATABASE数据库名REMOVE FILE文件名GO4.修改文件USE 数据库名GOALTER DATABASE数据库名MODIFY FILE( 修改的程序语言 )三、重命名数据库(page89 )ALTER DATABASE数据库名MODIFY NAME= 修改后的数据库名或者EXEC sp_renamedb' 数据库名 ','修改后的数据库名 '四、删除数据库(page89 )数据表基本操作一、创建数

4、据表(page90 )【重点程序page94 】1.创建数据表USE 数据库名GOCREATE TABLE表名(列名+数据类型 +是否空值 +约束 )2.查看结构EXEC sp_help表名二、修改数据表(page96 )1.修改表中某列USE 数据库名GOALTER TABLE表名ALTER COLUMN修改的内容2.添加一列2/17.USE 数据库名GOALTER TABLE表名ADD 添加的内容3.删除某一列USE 数据库名GOALTER TABLE表名DROP COLUMN列名三、删除数据表(page98 )USE 数据库名GODROP TABLE表名数据表的基本操作一、添加记录(pa

5、ge99 )【重点程序page100 】1.插入一条记录USE 数据库名GOINSERT INTO表名VALUES( 插入的数值)2.插入子查询的结果USE 数据库GOINSERT INTO添加的位置SELECT选择的数据二、修改记录(page102 )USE 数据库名GOUPDATE表名SET 列名 +用于取代相应属性的表达式值WHERE修改条件三、删除记录(page103 )USE 数据库名3/17.GODELETE FROM表名WHERE指定删除条件数据库完整性的实现一、数据完整性(page104 )数据完整性是指数据的正确性、有效性和相容性,目的是为了防止错误的数据进入数据库。1.实体

6、完整性,也称行完整性。要求表中的所有行有一个唯一的标识符,这种标识符一般称为主键值。主键值能否被修改或表中的数据是否能够被全部删除都要依赖于主键表和其他表之间要求的完整性。2.参照完整性。参照完整性是保证参照表(外键所在的表)与被参照表(主键所在的表)中数据的一致性。 如果被参照表中的一行被一个外键参考, 那么这一行数据便不能直接被删除, 用户也不能直接修改主键值。3.域完整性,也称为列完整性。指定一个数据集对某一个列是否有效和确定是否允许空值。域完整性通常是经过使用有效性检查来实现的, 并且还可以通过限制数据的类型、 格式或者可能取值范围来实现。二、约束( page105 )1.PRIMAR

7、Y KEY约束( page106 )主键约束作为表的一个属性, 可以唯一标识表中的记录。 在输入数据时, 主键列不能为空且不能有重复值。每个表都应该有且只有一个主键。(1)建立 PRIMARY KEY约束USE 数据库名GOALTER TABLE表名ADD CONSTRAINT PK_列名 PRIMARY KEY( 列名 )(2)删除 PRIMARY KEY约束USE 数据库名GOALTER TABLE表名DROP CONSTRAINT PK_列名2.FOREIGN KEY约束( page107 )外键约束标识表之间的关系, 可以定义为一个列或多个列, 这些列参照同一个表或另外的一个表中的 P

8、RIMARY KEY 约束或 UNIQUE 约束列。(1)建立 FOREIGN KEY约束USE 数据库名GOALTER TABLE表名ADD CONSTRAINT FK_表名 _列名FOREIGN KEY( 列名 ) REFERENCES( 参照的列名)(2)删除 FOREIGN KEY约束4/17.USE 数据库名GOALTER TABLE表名DROP CONSTRAINT FK_表名 _列名3.UNIQUE 约束唯一值约束规定表中某一列或多个列不能有相同的两行两行以上的数据存在。 这种约束用来强制实体完整性。(1)建立 UNIQUEUSE 数据库名约束GOALTER TABLE表名ADD

9、 CONSTRAINT IX_表名_列名UNIQUE( 列名 )(2)删除 UNIQUE 约束USE 数据库名GOALTER TABLE表名DROP CONSTRAINT IX_表名_列名4.CHECK约束条件约束通过指定的逻辑表达式来限制列的取值范围,只有当逻辑表达式为真时, 才满足列的取值要求。干约束用来加强域完整性。可以为每列指定多个CHECK 约束。(1)建立 CHECK 约束USE 数据库名GOALTER TABLE表名ADD CONSTRAINT CK_表名 _列名 CHECK( 约束条件 )(2)删除 CHECK 约束USE 数据库名GOALTER TABLE表名DROP CON

10、STRAINT CK_表名 _列名三、默认( page112 )1.创建 DEFAULT 约束USE 数据库名GOALTER TABLE表名ADD CONSTRAINT DF_表名 _列名DEFAULT 默认值FOR 列名2.使用默认值USE 数据库名GOCREATE DEFAULT DF_ 列名 AS 默认值3.绑定默认值5/17.USE 数据库名GOEXEC sp_bindefault 'DF_列名 ','表名 .列名 '4.删除默认值USE 数据库名GODROP DEFAULT DF_ 表名 _ 列名四、规则( page114 )1.创建规则并绑定到列US

11、E 数据库名GOCREATE RULE要创建的规则名称AS 指定规则的条件GOsp_bindrule'R_ 列名 ','表名 .列名 '2.删除规则USE 数据库名GODROP RULE R_ 列名索引一、索引的分类(page117 )1.按索引的顺序和表中记录的物理存储顺序是否相同。(1)聚集索引(2)非聚集索引2.按索引值是否唯一(1)唯一索引(2)非唯一索引二、创建索引(page117 )【重点程序page119 】USE 数据库名GOCREATE UNIQUECLUSTEREDNONCLUSTERED INDEX IX_ 表名 _列名ON 表名 (列名

12、)6/17.三、管理索引(page120 )1.查看索引USE 数据库名GOEXEC sp_helpindex表名2.重命名索引USE 数据库名GOEXEC sp_rename' 表名 .IX_ 表名 _列名 ','IX_ 表名 _列名 ','index'3.删除索引USE 数据库名GODROP INDEX表名 .IX_ 表名 _列名数据管理一、基本查询(page127 )【重点程序page128 】各参数说明如下:ALL :返回结果集中的所有行,是系统默认值。DISTINCT :指明结果集中如果有值相同的行,则指显示其中的一行。TOP<n

13、> :指明仅返回结果集中的前n 行。PERCENT<n>:指明仅返回结果集中的前百分之n 行。1.查询指定的数据列(1)查询全部列USE 数据库名GOSELECT * FROM表名(2)查询指定的列USE 数据库名GOSELECT 列名 ,列名 FROM (3)消除取值重复的行 USE 数据库名表名GOSELECT DISTINCT列名 FROM 表名2.改变列标题USE 数据库名GOSELECT ' 列标题 '=列名,列名AS 列标题FROM 表名3.数据运算USE 数据库名7/17.GOSELECT列名 <运算符 > AS ' 列标题

14、'FROM表名二、条件查询(page130 )查询条件谓词比较=,>,<,>=,<=,!=,<>,!>,!<确定范围BETWEEN AND, NOT BETWEEN AND确定集合IN, NOT IN字符匹配LIKE, NOT LIKE空值IS NULL, IS NOT NULL多重条件AND, OR, NOT(1)比较大小USE 数据库名GOSELECT列名 FROM表名WHERE条件范围(2)限定范围USE 数据库名GOSELECT列名 FROM表名WHERE列名 NOT BETWEEN数值 AND 数值(3)限定集合USE 数据库名

15、GOSELECT列名 FROM表名WHERE列名 NOT IN ( 集合条件 )(4)字符匹配USE 数据库名GOSELECT列名 FROM表名WHERE列名 NOT LIKE '< 匹配串 >'(5)空值USE 数据库名GOSELECT列名 FROM表名WHERE列名 IS NOT NULL(6)多重条件USE 数据库名GOSELECT列名 FROM表名WHERE条件 ANDORNOT条件8/17.三、排序( page134 )1.查询结果排序USE 数据库名GOSELECT列名 FROM表名WHERE条件ORDER BY列名 ,列名 ASCDESC2.选取查询结

16、果的前几行数据USE 数据库名GOSELECT TOP<n>列名 FROM表名WHERE条件ORDER BY列名 ,列名 ASCDESC四、查询输出(page135 )1.存储到基本表中USE 数据库名GOSELECT列名 INTO 基本表 FROM表名WHERE条件2.存储到临时表中USE 数据库名GOSELECT列名 INTO # 临时表FROM 表名WHERE条件五、聚合查询(page136 )1.SELECT 子句中的聚合在 SELECT 子句中可以使用聚合函数进行运算,运算结果作为新列出现在结果集中。在聚合运算的表达式中可以包括列名、常量以及由算式运算符连接起来的函数。函

17、数功能COUNT(DISTINCT|ALL*)统计记录个数COUNT(DISTINCT|ALL< 列名 >)统计一列中值的个数SUM(DISTINCT|ALL<列名 >)计算一列值的总和(此列必须是数值型)AVG(DISTINCT|ALL<列名 >)计算一列值的平均值(此列必须是数值型)MAX(DISTINCT|ALL<列名 >)求一列值中的最大值MIN(DISTINCT|ALL<列名 >)求一列值中的最小值USE 数据库名GOSELECT函数 (列名 ) AS ' 列标题 ' FROM表名9/17.2.COMPUTE

18、 子句中的集合在 SELECT 子句中出现聚合函数时,结果集中的数据全是聚合值,没有明细值。 COMPUTE 子句不仅可以使用聚合函数计算聚合值, 而且可以依然保持原有的明细值; 新的聚合值作为附加的汇总列出现在结果集的最后。需要注意的是, COMPUTE 子句中不允许使用 DISTINCT 关键字。六、分组查询(page138 )GROUP BY 子句对查询结果按照一定条件进行分组,分组子句通常与 SQL Server 提供的聚合函数一起使用。对查询结果分组的目的是为了细化聚合函数的作用对象, 如果未对查询结果分组,则聚合函数将作用于整个查询结果, 分组后聚合函数将作用于每一个组, 每一个组

19、都有一个函数值。 SELECT 语句后的输出列只能是聚合函数和分组列。1.使用 GROUP BY子句SELECT列名 FROM表名GROUP BY列名2.使用 WITH 选项(1)使用 CUBE 操作符SELECT列名 FROM表名GROUP BY列名 WITH CUBE(2)使用 ROLLUP 操作符SELECT列名 FROM表名GROUP BY列名 WITH ROLLUP3.使用 HAVING 子句SELECT列名 FROM表名GROUP BY列名HAVING子句指定筛选条件七、连接查询(page140 )一个查询同时涉及两个或者两个以上的表, 并且每一个表中的数据往往作为一个单独的列出现

20、在结果中,则需要用到连接查询。连接查询操作类型:INNER :内连接,指定返回两个表中所有匹配的行,此项是默认值。LEFTOUTER :左外连接,返回连接查询左边的表中的相应记录,在右表中对应于左表中无记录的部分用 NULL 表示。RIGHTOUTER :右外连接,返回连接查询两个表中所有的相应记录,在左表中对应于右表中无记录的部分用 NULL 表示。FULLOUTER :完全外联结,返回连接查询两个表中所有的相应记录,对应于无记录的部分用 NULL 表示。JOIN :指示制定的连接操作应在制定的表源或视图之间执行。1.交叉连接(1)用谓词表示交叉连接SELECT表名 .列名,表名.列名FRO

21、M表名,表名(2)用 SELECTJOIN 关键字表示交叉连接表名 .列名,表名 .列名 FROM表名CROSS JOIN表名2.内连接10/17.用谓词表示等值连接SELECT表名 .列名,表名 .列名 FROM表名,表名WHERE表名 .列名 =表名 .列名用 JOIN 关键字表示等值连接SELECT表名 .列名,表名 .列名FROM表名 INNER JOIN表名ON表名.列名=表名 .列名3.外连接左外连接SELECT表名 .列名,表名.列名FROMWHERE表名 LEFT OUTER JOIN条件表名ON表名 .列名 =表名 .列名右外连接SELECT表名 .列名,表名.列名FROMW

22、HERE表名 RIGHT OUTER JOIN条件表名ON表名.列名=表名 .列名八、嵌套查询(page145 )1.单值嵌套查询子查询的返回结果是一个值的嵌套查询称为单值嵌套查询。 当能确切知道子查询返回的是单值时,可以用 >,<,=,>=,<=,!=,<> 等比较运算符将一个表达式的值与子查询返回的值进行比较运算。SELECT列名,列名FROM表名WHERE列名 ='查询名称 ' AND 列名列名 ='查询名称 ')比较运算符 (SELECT函数(列名)FROM表名WHERE2.多值嵌套查询子查询的返回结果是一列值的嵌套查

23、询。(1)使用 NOTIN 运算符SELECT列名,列名,列名FROM表名WHERE列名 NOT IN(SELECT列名 FROM表名 WHERE条件 )(2)利用谓词 ANY 或 ALLSELECT列名,列名,列名FROM 表名WHERE列名 比较运算符 ALL/ANY(SELECT列名 FROM表名 WHERE条件)3.使用谓词 EXISTS 的子查询SELECT列名 FROM 表名WHERE EXISTS (SELECT列名 FROM 表名 WHERE条件)九、组合查询(page148 )两个查询语句之间可以进行集合运算。 其中 UNION 运算符表示并集运算, EXCEPT 运算符表示

24、差运算, INTERSECT 表示交运算。1.并运算(UNIONALL 用来将多个查询结果集合并起来, 如果不加 ALL ,系统自动去掉重复的记录,加上 ALL 系统会自动保留全部记录。 )SELECT列名,列名 FROM 表名 WHERE 条件 11/17.UNIONSELECT列名,列名FROM表名 WHERE条件2.差运算(从左查询中返回右查询中没有找到的非重复值)SELECT列名,列名FROM表名 WHERE条件EXCEPTSELECT列名,列名FROM表名 WHERE条件3.交运算(返回左右两个查询语句都包含的所有非重复值)SELECT列名,列名FROM表名 WHERE条件INTER

25、SECTSELECT列名,列名FROM表名 WHERE条件视图及其应用一、视图的概述(page150 )1.视图的含义视图一经定义之后, 就可以像基本表一样被查询、添加、修改和删除。 当对通过视图看到的数据进行添加、修改和删除时, 相应的基本表中的数据也会发生变化; 同时,当基本表的数据变化时,也会自动反映到视图之中。2.使用视图的优点数据保密简化用户权限的管理集中用户使用的数据简化查询操作保证数据的逻辑独立性二、创建视图(page151 )【重点程序page154 】USE 数据库名GOCREATE VIEW VW_ 视图名称(列标题,列标题,列标题)ASSELECT列名,列名,列名FROM

26、表名WHERE条件GO三、维护视图(page154 )【重点程序page155 】1.查看视图信息USE 数据库名GOEXEC sp_helptext VW_视图名称12/17.GO2.修改视图的定义ALTER VIEW VW_ 视图名称ASSELECT列名 AS 列标题,列名AS 列标题,列名AS 列标题FROM表名WHERE条件3.视图的重命名USE 数据库名GOEXEC sp_rename VW_视图名称, VW_ 修改后的视图名称4.视图的删除USE 数据库名GODROP VIEW VW_ 视图名称四、视图数据操作(page157 )1.查询视图数据SELECT列名FROM VW_ 视

27、图名称WHERE条件2.更新视图数据插入数据USE 数据库名GOINSERT INTO VW_ 视图名称VALUES(' 数据值 ','数据值 ','数据值 ','数据值 ')修改数据UES 数据库名GOUPDATE VW_ 视图名称SET 修改的语句WHERE条件删除数据USE 数据库名GODELETE FROM VW_ 视图名称WHERE条件13/17.存储过程一、创建存储过程(page163 )【重点程序page165 】1.不适用参数,创建存储过程USE 数据库名GOCREATE RROC存储过程名称ASSELECT表名

28、.列名,表名 .列名,表名 .列名FROM表名,表名,表名WHERE条件GO2.执行存储过程USE 数据库名GOEXEC 存储过程名称GO3.使用参数,创建存储过程USE 数据库名GOCREATE PROC存储过程名称 (变量 数据类型, 变量 数据类型 )ASSELECT表名 .列名,表名 .列名,表名 .列名FROM表名,表名,表名WHERE含有变量的条件GO4.执行含有参数的存储过程USE 数据库名GOEXEC 存储过程名称'变量值 ','变量值 '5.使用默认参数,建立存储过程USE 数据库名GOCREATE RROC 存储过程名称 (变量 数据类型 ='变量值 ', 变量 数据类型 ='变量值 ') ASSELECT表名 .列名,表名 .列名,表名 .列名FROM表名,表名,表名WHERE含有变量的条件GO6.执行使用默认参数的存储过程USE 数据库名GOEXEC 存储过程名称14/17.GO7.使用返回参数【重点程序 page167 】二、存储过程管理(page168 )1.查看存储过程的源代码USE 数据库名GOEXEC sp_helpt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论