您好,欢迎访问三七文档
6月26日地理数据库14:00浦三213徐璐11GIS地理数据库一、选择(1’*15)二、填空(1’*20)三、程序设计(12个)这重点感觉对选择填空没啥用额~~~看自己修养吧额第一章:1、数据库的特点(选择)2、数据库的模式:(三级)外模式:对数据库视图层的描述.一个数据库有多个外模式.一个应用程序只能使用一个外模式.用子模式描述语言(子模式DDL)定义模式:对数据库逻辑层的描述(逻辑层:数据库中存储什么数据以及数据间存在什么样的关系,即数据库的全局视图)一个数据库只有一个模式.内模式:对数据库物理层的描述.(物理层:数据实际上是怎样存储的,即数据库的内部视图)用内模式描述语言(内模式DDL)定义.一个数据库只有一个内模式.3、数据模型:概念数据模型:对现实世界进行抽象形成的和计算机无关的数据结构.抽象层次:高层.作用:数据库设计人员和用户之间进行交流的工具。特点:强调其语义表达能力,概念简单清晰,易于用户理解.实例:实体-联系模型E-R(Entity-Relationship)将现实世界抽象为一组实体及实体之间的联系。实体-----矩形表示.联系-----菱形表示.属性-----椭圆表示.结构数据模型:信息:对现实世界进行抽象形成的和计算机相关的数据结构.抽象层次:底层作用:数据库设计人员和计算机之间进行交流的工具.特点(三要素):强调数据在计算机中的表示和处理.实例:关系模型,层次模型,网状模型,对象模型,对象关系模型,….4、数据库语言:数据定义语言DDL:用于定义数据库模式(含约束).(creat,drop(删除表),alter,declare)数据操纵语言DML:用于查询和更新数据库实例.(select,delete(删除数据),update,insert)数据控制语言DCL:(GRANT,REVOKE,COMMIT,ROLLBACK)5、数据库系统:●数据库DB●数据库管理系统DBMS●数据库系统DBS第二章6月26日地理数据库14:00浦三213徐璐11GIS主键和外键:主键和外键的字段名称不一定要相同,类型一样即可。定义主键和外键主要是为了维护关系数据库的完整性,总结一下:主键是能确定一条记录的唯一标识,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键,比如,一条记录包括身份证号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。EX:学生表(学号,姓名,性别,班级)其中每个学生的学号是唯一的,学号就是一个主键用户表(用户名、密码、登录级别)其中用户名是唯一的,用户名就是一个主键上机记录表(卡号,学号,姓名、序列号)上机记录表中单一一个属性无法唯一标识一条记录,学号和姓名的组合才可以唯一标识一条记录,所以学号和姓名的属性组是一个主键上机记录表中的序列号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键2、数据库的基本特点是()。A.(1)数据可以共享(或数据结构化)(2)数据独立性(3)数据冗余大,易移植(4)统一管理和控制B.(1)数据可以共享(或数据结构化)(2)数据独立性(3)数据冗余小,易扩充(4)统一管理和控制C.(1)数据可以共享(或数据结构化)(2)数据互换性(3)数据冗余小,易扩充(4)统一管理和控制D.(1)数据非结构化(2)数据独立性(3)数据冗余小,易扩充(4)统一管理和控制第三章1、构成关系模型(数据模型)的三个要素:静态数据结构动态操作关系操作:常见的关系代数方法:选择(行)、投影(列)、连接完整性约束实体完整性——主键(不可能重复)实体是可区分的,即具有唯一性标识。每个关系必须有一个主码。主码不能取Null值。参照完整性——外键关系r的参照关系s的外码FK(r)的取值有两种:Null值;关系s的某个主码的取值。用户自定义——用户针对具体的应用环境定义的完整性约束条件。第五章1、T-SQL语言的变量定义1)局部变量局部变量是用户自定义的变量,它的作用范围仅在定义它的程序内部。局部变量名以“@”开头,用DECLARE命令进行定义,语法格式如下:DECLARE@变量名变量类型[,@变量名变量类型]2)、全局变量不是由用户的程序定义的,是在服务器级定义的系统内部使用的变量,任何程序均可以随时使用。引用全局变量必须以标记符“@@”开头。6月26日地理数据库14:00浦三213徐璐11GIS2、存储过程的定义存储过程是一组为了完成特定功能的SQL语句的集合,它经编译后存储在数据库中,用户通过指定的调用方法执行之。存储过程具有名称,参数及返回值,并且可以嵌套调用。有系统存储过程和用户自定义存储过程。第七章1、SqlCommand提供了4个执行方法:ExecuteNonQuery()、ExecuteScalar()、ExecuteReader()、ExecuteXmlReader()。2、系统内置的存储过程:Sp_help查看数帮助函数Sp_helpdb查看数据库帮助信息函数getdata获得当前时间的函数设计题:1、通配符用于进行字符匹配,通常有以下四种:_(下划线):匹配任意单个字符。%(百分号):匹配任意长度(包括0)的字符串。[]:匹配[]中的任意一个字符。[^]:不匹配[]中的任意一个字符。【例】--查询名字中第个二字为‘古’的教职工的基本信息select*from教师表where姓名like'_古%'【例】查询学生信息表中姓‘陈’,姓名列包含两个字的学生的基本情况select*from学生表where姓名like'陈_'2、排序:ORDERBY列名[ASC|DESC][,列名[ASC|DESC]]…【例】、查询全体学生情况,查询结果按所在班级名升序排列,同一班级中的学生按年龄降序排列(orderby)select*from学生表orderby班级asc,年龄asc【例】、统计每个部门老师的平均工资,按照平均工资作降序排列select系别,avg(工资)平均工资from教师表groupby系别orderbyavg(工资)desc3、分组:GROUPBY分组依据列或表达式[HAVING组选择条件表达式]【例】统计教师人数超过4人的部门名称和对应的人数(groupby……having……和count函数)select系别,COUNT(*)from教师表groupby系别havingCOUNT(*)44、删除行或者列【例】、删除Teachers表中教师姓名为“张佳”的教师的记录。DELETEFROM教师表where姓名='张佳';【例】、删除读者表Patron中的E_Mail列。ALTERTABLEPatronDROPCOLUMNE_Mail;5、简单查询6月26日地理数据库14:00浦三213徐璐11GIS【例】、查询学生的详细记录select*from学生表6、【例】将学生表中“王菲”的性别调整为“男”UPDATE学生表SET性别='男'where姓名='王菲';【例】再向学生表添加一条记录,记录的值可以任意取。INSERTINTO学生表(学号,姓名,性别,班级)VALUES('405103','陈丹','女','软件003');【例】在学生表中“王菲”由“软件002”调到“软件003”,入学成绩在原来的基础上增加50。UPDATE学生表SET班级='软件003',入学成绩=入学成绩*1.05where姓名='王菲';7、注意and与or的优先级:OR的优先级要低于AND,因此要注意括号的使用。【例】查询电信学院和工商学院所有1991年出生的读者的姓名和性别。SELECTName,GenderFROMPatronWHERE(Department='电信学院'ORDepartment='工商学院')ANDYEAR(BirthDate)=1991;8、条件查询【例】查询来自“宁波”学生的学号、姓名、家庭地址select学号,姓名,家庭住址from学生表where家庭住址like'浙江宁波'9、【例】查询所选课程平均成绩前三名的那些学生的姓名selectTOP3姓名,AVG(成绩)平均成绩from选课成绩表join学生表on学生表.学号=选课成绩表.学生编号groupby姓名orderbyAVG(成绩)10、复合条件连接【例】查询选修课程学生的学号、姓名、所选课程号、取得的成绩(innerjoin)select学生编号,姓名,课程编号,成绩from选课成绩表,学生表where学生编号=学号两种方法:Select*fromAjoinBonA._=B._whereSelect*fromA,BwhereA._=B._and11、存储过程:【例】创建存储过程proc_avg,根据姓名来查询此人所有课程平均成绩,用变量返回平均成绩,该存储过程包含一个输入参数,一个返回值。CREATEprocedureproc_avg6月26日地理数据库14:00浦三213徐璐11GIS@姓名varchar(20)='%',@成绩floatoutputasbeginsetnocounton;selectAVG(成绩)from选课成绩表join学生表on学号=学生编号where姓名=@姓名end12、【例】在“课程表”中创建一个触发器,禁止添加、更新、删除操作。createtriggerTon课程表forupdate,insert,deleteasbeginprint'禁止操作'rollbacktransactionend
本文标题:地理数据库
链接地址:https://www.777doc.com/doc-2523787 .html