sql复习资料
- 格式:doc
- 大小:54.00 KB
- 文档页数:1
SQL复习提要第一篇:SQL复习提要一、数据库创建1、Create语句:用来创建新的数据库对象;Create database database name2、alter语句:用来修饰已有对象的结构;Alter database database name3、drop语句:用来删除已有的数据库对象;4、insert语句:用来在数据表或视图中插入一行数据;二、表与表数据操作在表sxb中增加1个新列为奖学金等级,然后删除该列 USE psxcj goalter table xsbadd 奖学金等级 tinyint NULL goalter table xsbdrop column 奖学金等级select *from kcb select *from xsb select *from cjb查询全体的学生的详细记录 Select * from Student 查询全体学生的姓名与学号 Select Sname Sno from Student 查询全体学生的姓名及其年龄Select Sname,YEAR(getdate()-year(sbirthday))as ageFrom Student--单表查询查询计算机系全体学生的信息 /*语句块*/select * from xsbwhere 专业='计算机'--查询姓“张”的学生的学号和姓名select 学号,姓名from xsb where 姓名 like '张%'--查询xsb中备注信息为空的学生信息 select * from xsb where 备注 isnull--查询成绩在90分以上的学生信息 select distinct 学号 from cjbwhere 成绩>=90--查询同时选修了课程101和102的学生记录select 学号from cjbwhere 课程号='101' or 课程号='102' group by 学号having count(*)=2select * from cjbselect count(学号)选修人数,课程号 from cjbgroup by 课程号--查询选修了两门以上的课程的学生学号和课程数select 学号,count(课程号)as 选修门数 from cjb group by 学号having count(*)>=2--查询选修课程数大于或等于2的学生学号,平均成绩和选修课门数,并按平均成绩降序排序select 学号,avg(成绩),count(*)as 选修门数 from cjb group by 学号 having count(*)>=2 order by avg(成绩)desc--查询姓“张”的前两个学生的学号和姓名 Top 2--多表查询查询选修了(数据库原理)的计算机系的学生学号和姓名Select 学号,姓名 from xsb,kcb,cjbwhere xsb.学号=cjb.学号 and kcb.课程号=cjb.课程号 and 课程名='计算机基础' and 专业='计算机'--查询学生的学号、姓名、选修课程的名称和成绩 select xsb.学号, 姓名,课程名,成绩from xsb,cjb,kcb where xsb.学号=cjb.学号and cjb.课程号=kcb.课程号--查询选修了课程的学生姓名--select *from kcbselect distinct 姓名 from xsb,cjb where xsb.学号=cjb.学号--查询所有学生的信息和所选修的课程--select xsb.*,[kcb.]课程名 from xsb left outer join cjb on xsb.学号=cjb.学号left join kcb on cjb.课程号=kcb.课程号--查询已被选修的课程的情况和所有课程的名字--Select cjb*,课程名 from xsb left join cjbOn xsb.学号=cjb.学号--查找计算机系的学生选修课程数大于2的学生的姓名、平均成绩和选课门数,并按平均成绩降序排列select xsb.姓名,avg(成绩)as平均成绩,count(*)as 选课门数from xsb,cjbwhere xsb.学号=cjb.学号and 专业='计算机'group bycjb.学号,姓名having count(*)>2 order byavg(成绩)desc--嵌套查询和组合查询----1.统计选修了【数据库原理】课程的学生学生select 课程号 from kcb where 课程名='数据库原理'select count(*)fromcjbwhere 课程号 in(select 课程号 from kcb where 课程名='数据库原理')2.查询没有选修【数据库原理】课程的学生信息select * from xsb where 学号 not in(select 学号 from cjb where 课程号 in (select 课程号 from kcb where 课程名='数据库原理'))3.查询其他系中比计算机系学生年龄都小的学生select *from xsbwhere 出生时间'计算机'--4.查询被081101学生或081102学生所选修的课程的课程号(用UNION组合查询与IN条件查询两种方法实现)并集select 课程号 from cjbwhere学号='081101' unionselect 课程号 from cjbwhere学号='081102'--5.查询081101学生和081102学生同时选修的课程的课程号(用INTERSECT组合查询与EXISTS嵌套子查询两种方法实现)(自连接)select 课程号 from cjbcjb1where exists(select * from cjb cjb2where cjb1.课程号=cjb2.课程号 andcjb2.学号='081102')and 学号='081101'select 课程号 from cjb where 学号='081101' intersectselect 课程号from cjbwhere学号='081102'--6.查询被081101学生选修,但没有被081102学生所选修的课程的课程号(用EXCEPT组合查询与NOT EXISTS嵌套子查询两种方法实现)select 课程号 from cjb where 学号='081101' exceptselect 课程号 from cjbwhere学号='081102'create procedure proc_cjcxbasselect xsb.学号,姓名,课程名,成绩 from xsb,kcb,cjbwhere xsb.学号=cjb.学号 and cjb.课程号=kcb.课程号--7、查询选修了101课程的学生姓名 select 姓名from xsbwhere EXISTS(select *from cjbwhere xsb.学号=cjb.学号 and 课程号='101')--存储过程--创建查询create procedure proc_cjcx asselect xsb.学号,姓名,课程名,成绩 from xsb,kcb,cjbwhere xsb.学号=cjb.学号 and cjb.课程号=kcb.课程号execute proc_cjcx alte修改查询r--输入学好查询学生的学号,姓名,课程名,成绩alter procedure proc_cjcx@xh char(6)='%' asselect xsb.学号,姓名,课程名,成绩 from xsb,kcb,cjbwhere xsb.学号=cjb.学号 and cjb.课程号=kcb.课程号andxsb.学号 like rtrim(@xh)execute proc_cjcx '081101'--存储过程select * from kcbcreate proc proc_kcbinsert@kch char(3),@kcm char(16),@kkxq tinyint,@xs tinyint,@xftinyint asinsert into kcbvalues(@kch,@kcm,@kkxq,@xs,@xf)proc_kcbinsert '405','server程序设计',4,72,4 查找单科最高成绩select xsb.学号,姓名,课程名,成绩from xsb,cjb,kcbwhere xsb.学号=cjb.学号 and kcb.课程号=cjb.课程号and exists(select *from cjb,(select 课程号,max(成绩)as 最高分 from cjb group by课程号)as tempwhere cjb.课程号=temp.课程号and cjb.成绩=temp.最高分)(相关子查询)select xsb.学号,姓名,课程名,成绩from xsb,cjb,kcb(select 课程号,max(成绩)as 最高分from cjb group by课程号)as tempwhere xsb.学号=cjb.学号 and kcb.课程号=cjb.课程号 and cjb.课程号=temp.课程号 and cjb.成绩=temp.最高分触发器Create trig trig_cheakgrods on cjb For updateAs Declare @..........创建视图创建学生平均成绩的视图create view view_选修课平均成绩as(select xsb.学号,姓名,avg(成绩)as平均成绩 from cjb, xsbwhere xsb.学号=cjb.学号group by xsb.学号,姓名)需要查找该表的结果语句如下:select * from view_选修课平均成绩修改选修课平均成绩视图,显示所有学生的学号,姓名,平均成绩alter view view_选修课平均成绩as(select xsb.学号,姓名,avg(成绩)as平均成绩from xsb left join cjbon xsb.学号=cjb.学号group by xsb.学号,姓名)查询学生的姓名,性别,平均成绩select xsb.学号,xsb.姓名,性别,平均成绩from xsb, view_选修课平均成绩where xsb.学号=view_选修课平均成绩.学号更新选修课成绩表视图update view_选修课平均成绩 set平均成绩=80 where 姓名='王林'删除选修课平均成绩视图、drop view view_选修课平均成绩插入insert into xsb(学号,姓名)values('100511','张四')--备份数据库backup database Pxscjto disk='E:1PxscjDiff.bak'with differentialinsert into xsb(学号,姓名)values('100512','李四')--备份数据库日志文件 backup log Pxscjto disk='E:1Pxscjlog.bak'use masterdrop database Pxscjuse Pxscjselect * from xsb--用语句还原数据库 restore database Pxscj from disk='E:1PxscjDiff.bak'--还原第三次备份的数据库 restore database Pxscj fromdisk='c:ProgramFilesMicrosoftServerMSSQL.1MSSQLBackupPxscj.bak' with norecovery select * from xsb--还原第三次备份的日志文件 restore log Pxscjfrom disk='E:1Pxscjlog.bak'--差异备份backup database Pxscjto disk='E:SQL-serverPxscjDiff.bak' with differentialinsert xsb(学号,姓名)values('100512','王五')backup log Pxscjto disk='E:SQL-serverPxscjlog.bak'--删除Pxscj use masterdrop database PxscjSQL第二篇:高等数学复习提要高等数学复习提纲第一章函数与极限复习重点:1、求极限1)四则运算法则注意:四则运算法则适用的函数个数是有限个;四则运算法则的条件是充分条件有理分式函数求极限公式:⎧a0mm-1 xxxam⎪ba+a+Λ+amm-101m-1n+nnn a0x+a1x+Λ+am-1x+am⎪0xxxx=lim=⎨0limnn-1∞bxn+bxn-1+Λ+bx+bx→∞x→bxxxn01n-1n⎪∞b+b+Λ+b+01n-1nn nn ⎪xxxx⎩2)两个重要极限n=mm<nm>nlimsinxsin0=1()x→0x01x101lim(1+x)=lim(1+)x=e ((1+0))x→0x→∞x3)两个准则准则一:若(1)yn≤xn≤zn∀n∈N则{xn}有极限,且limxn=an→∞(2)limyn=limzn=an→∞n→∞准则二:单调有界数列必有极限单调递增有上界的数列其极限为最小的上界(上确界)单调递减有下界的数列其极限为最大的下界(下确界)4)无穷小量a.无穷小量的定义,注意其是变量,谈及无穷小量时一定要注明自变量的变化趋势。
SQL复习资料整理SQL(Structured Query Language)结构化查询语言,是一种专门用于管理和操作关系型数据库的编程语言。
在数据库领域中,SQL可以用来存储、修改、删除和检索关系型数据库中的数据。
因此,学习和掌握SQL是非常重要的。
本文将为您整理一些SQL复习资料,帮助您更好地学习和掌握SQL语言。
SQL基础知识在学习SQL之前,您应该首先了解SQL的基础知识,包括以下几个方面:1.SQL的历史和发展2.SQL的标准化3.关系型数据库概念4.SQL的核心语句和数据类型SQL核心语句SQL的核心语句包括数据查询语句(SELECT)、数据添加语句(INSERT)、数据更新语句(UPDATE)、数据删除语句(DELETE)。
以下是每个语句的基本用法:SELECT语句SELECT语句用于从表中检索数据。
它的基本语法如下:SELECT column1, column2, ... FROM table_name;你还可以在SELECT语句中使用WHERE子句来过滤检索结果,如下所示:SELECT column1, column2, ... FROM table_name WHERE condition;其中,condition是一个条件表达式,用于过滤检索结果。
INSERT语句INSERT语句用于将数据添加到表中。
它的基本语法如下:INSERT INTO table_name (column1, column2, ...) VALUES (value1, value 2, ...);其中,column1、column2是表的列名,value1、value2是要插入的值。
UPDATE语句UPDATE语句用于更新表中的数据。
它的基本语法如下:UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;其中,condition是要更新的数据所匹配的条件。
(一)SQL概述1.SQL的基本概况1)含义:SQL是structured query languge的缩写,它是关系数据库的标准数据语言,所有的关系数据库管理系统都支持。
2)功能:数据查询、数据操作和数据定义2.特点1)一体化:包括数据定义、查询和操作等方面功能,可以完成数据库活动中的全部工作;2)高度非过程化:只需告诉计算机用户“做什么”,SQL便可自动完成全部工作;3)非常简洁:只有为数不多的几条命令组成;4)它可以直接以命令方式使用,也可以嵌入到程序设计语言中以程序方式使用。
3.主要短语及其含义1)select-说明要查询的数据2)from-说明查询的数据来自哪些表,可对单表或多表进行查询3)where-说明查询条件,即选择元组的条件4)group by-用于对查询进行分组,可用它对数据进行分组汇总5)having-必须跟group by短语一起使用,用来限定分组必须满足的条件6)order by-用来对查询的结果进行排序.简单查询1)适用范围:即单表查询,查询的字段信息和查询条件都来自于同一张表2)语法格式:select 字段名1,…字段名n from 表名 where 条件式3)查询细节:ü distinct 去掉查询结果中的重复值ü若查询某张表的全部字段,则可把select后的字段名全部用通配符*代替即可ü union并运算可把两个select语句的查询结果合并成一个查询结果(要求是两个查询结果要具有相同的字段个数,并且对应字段的值要出自同一个值域,即具有相同的数据类型和取值范围)ü查询去向:into array 数组名——将查询结果存放于数组中into cursor 临时表文件名——将查询结果存放于临时只读文件,关闭时自动删除into dbf/table 自由表文件名——将查询结果存放于永久表中to file 文本文件名——将查询结果存放于文本文件中2.简单的联接查询1)适用范围:查询的字段信息或条件来自于多张表2)语法格式:select 字段名1,…字段名n from 表名1,…表名n where 联接条件and 其他条件3.嵌套查询1)适用范围:查询的字段信息出自于同一张表,而查询条件出自于其他表2)语法格式:select 字段名1,…字段名n from 表名1 where 外部关键字 in (select 外部关键字 from 表名2 where 条件)3)查询细节:ü几个特殊的运算符:between…and…用于查询满足某个值域范围内的记录;like用于查询与指定字段值相匹配的记录(like后所指定的字段值一定是个字符型数据;通配符%表示0个或多个字符,“_”只表示一个字符)ü排序:order by 字段名1 asce/desc,…字段名n asce/desc注意:系统默认升序,asce可省略,允许按一个或多个字段对查询结果排序ü简单计算查询:count()-计数 sum()-求和,所指字段是N型 avg()-求平均数,所指字段是N型 max()-求最大值,所指字段是N型min()-求最小值,所指字段是N型ü分组与计算查询:group by 字段名1,…字段名n having 条件表达式(注意:having 必须和group by一起使用,因为它是对分组后的结果进一步进行筛选,having条件和where 条件不矛盾,在select语句查询中是先用where子句限定元组,然后进行分组,最后再用having子句限定分组结果)ü利用空值查询:is null/is not nullü内外层互相嵌套查询:内层查询的条件需要外层查询提供值,而外层查询的条件需要内层查询的结果ü使用量词和谓词的查询:表达式运算符 any/some/all(select子查询)——其中any和some表任意一个,all 表示全部[not] exists(select子查询)——exists表示存在ü虚字段:即原表中并无此字段,是通过函数或者表达式计算所得出的字段名;其格式为:表达式/函数 as 虚字段名ü显示部分结果:top 表达式[percent] order by 字段名1,…字段名n注意:不使用percent时,在1-32767之间取值,说明显示前几条记录使用percent时,则在0.01-99.99之间取值,说明显示前百分之几的记录并且top短语要与order by短语同时使用才有效4.内联接查询:超级联接查询的一种1)适用范围:查询的字段名或查询条件来自于多张表2)语法格式:select 字段名1,…字段名n from 表名1 inner join 表名2 on 联接条件 where 条件(三)SQL的操作功能1.插入功能1)标准格式:insert into 表名(字段名1,…字段名n)values(字段值1,…字段值n)注意:此命令格式表示向表中插入记录,当插入的不是完整的记录时必须指明字段2)特殊格式:insert into 表名 from array 数组名注意:此命令格式表示从指定的数组向表中插入记录2.更新功能1)格式:update 表名 set 字段名1=表达式1,…字段名n=表达式n where 条件式注意:使用where表示更新满足条件的记录,不使用where则更新全部记录2)注意update命令与replace命令的区别:² update可对一表和多表操作,replace只能对当前一表操作² update用where接条件表达式,replace用for接条件表达式² update用=接表达式,replace用with接表达式² update用set接字段名,replace的字段名前不加set² update不用where子句就可更新全部记录,replace有all无for条件才是更新全部记录3.删除功能1)格式:delete from 表名 where 条件注意:此命令表示逻辑删除表中相应的记录,有where条件时表示逻辑删除表中满足条件的记录2)本格式可用于一表与多表,而delete for条件则只可用于当前表(四)SQL的定义功能1.表的定义,即建立表1)格式:create table 表名(字段名1 字段类型(宽度),…字段名n 字段类型(宽度))2)注意:2.表的删除1)格式:drop table 表文件名2)注意:3.表结构的修改1)添加/删除表中字段:alter table 表名 add/drop column 字段名字段类型(宽度)注意:只能一次添加一个字段,并且如果是删除字段则不需要写宽度2)修改字段类型及宽度:alter table 表名 alter 字段名新类型(新宽度)3)更新字段名:alter table 表名 rename column 原字段名 to 新字段名4)修改字段有效性:alter table 表名 alter column 字段名[null/not null][set default 表达式][set check 逻辑表达式[error 字符表达式]]alter table 表名 alter column 字段名[drop default][drop check]5)添加/删除表中表中索引:alter table 表名 add primary key/unique字段名 tag 索引名注意:primary key是主索引;unique是候选索引。
题型:填空(10’),单选(10’),判断(10’),简答题(30’),程序设计(40’):表中数据操作(30’)5-6章程序修改(10’)视图1.数据库系统(DBS)包括数据库(DB/database),数据库管理系统(DBMS),数据库管理员(BDA)。
2.数据库是长期存储在计算机内、有组织的、可共享的、统一管理的相关数据的集合。
3.数据模型分为层次模型,网状模型,关系模型。
4.实体联系模型主要要素:实体(矩形框表示),联系(菱形框表示),属性(椭圆形表示)。
5.联系的类型:“一对一(1:1)”,“一对多(1:n)”,“多对多(n:n)”。
6.关系范式:第一范式(基本),第二范式,第三范式(必须满足),BC范式,第四范式,第五范式。
7.SQL是标准的关系数据库操作语言。
8.SQL语言包括数据查询语言(Data Retrieval)、数据操作语言(DML)、数据定义语言(DDL)、数据控制语言(DCL)和事务控制语言(Transaction Control)。
9.系统数据库:master 、model 、msdb 、tempdb 。
10.数据文件包括:①主数据文件(.mdf , 数据库中只能含有一个);②次数据文件(.ndf ,可以有0~n个)。
11.SQL Server 遵循先写日志(.ldf)后操作。
12.视图被定义后便存储在数据中,通过视图看到的数据只是存放在基表中的数据。
党对通过视图看到的数据修改时,相应的基表的数据已发生变化。
当对基表的数据发生变化时,变化也尝自动反映在视图中。
13.视图的优点:①集中用户使用的数据;②屏蔽数据库的复杂性。
14.索引的类型:①聚集索引;②非聚集索引。
15.数据完整性分为4种类型:实体完整性、域完整性、引用完整性和用户自定义完整性。
16.主键约束(PRIMARY KEY)是在表中定义一个主键来唯一确定表中的每一行记录。
主键可以定义在单列上,也可以在多列上。
1.数据处理三个阶段: 人工管理阶段,文件系统阶段和数据库系统阶段2.数据库系统的组成: DBS是指在计算机系统中引入数据库后的系统构成,有计算机硬件、操作系统、DBMS、DB、应用程序和用户、以及数据库开发和管理人员等组成.3.数据模型中的基本概念以及实体的联系数据模型是数据库系统的核心和基础,任何DBMS都支持一种数据模型.任何一种数据模型都规定了一种数据结构,也即信息世界中的实体和实体间联系的表示方法.数据结构描述了系统的静态特性,是数据模型最本质的内容.数据模型还必须规定对其中数据可以执行的操作及操作规则.数据操作描述了系统的动态特性.对数据库的操作主要有数据维护和数据检索两大类,包括操作名、含义、规则等.数据模型还必须提供定义完整性约束条件的手段,并在操作中自动检查之.4.DBMS所支持的主要数据模型层次模型,网状模型,关系模型,面向对象模型. 关系模型占统治地位5.关系模型的组成:数据结构,数据操作和完整性约束.6.三类完整性约束:实体完整性,参照完整性,用户定义的完整性7.数据库系统中数据的三级模式结构:外模式,模式,内模式.9. DBMS的主要功能:1)数据库的定义、建立和维护功能。
2)数据存取功能。
3)数据库运行管理功能。
10. 数据库设计的一般策略:自顶向下合自底向上。
11. 数据库设计的步骤:1)用户需求分析。
2)信息分析和定义(概念设计),包括:视图模型化,视图分析和记总。
3)设计实现(逻辑设计),包括:模式初始设计、子模式设计、应用程序设计、模式评价、模式求精。
4)物理设计。
12. 数据库设计的主流方法:1)E-R模型加规范化关系的方法。
2)数据元素图加规范化关系的方法。
13. 5个阶段主要目标:数据库结构设计五个阶段:需求描述与分析、概念结构设计、逻辑结构设计、物理结构设计、数据库调试评价与维护。
主要目标:满足数据库中数据处理的要求,将数据和功能两方面的需求分析、设计和实现在各个阶段同时进行,相互参照和补充。
《SQL Server数据库》复习提要一、名词解释逻辑数据库、物理数据库、主数据文件、辅助数据文件、日志文件、文件组、视图、游标、索引、数据独立性、选择、投影、连接、默认约束、检查约束、触发器、完全数据库备份、差异备份、关系数据库、候选关键字、空值(NULL)、行集函数、聚合函数、外模式、模式、内模式、第1范式、第2范式二、填空题1. SQL Sever 2005主要有五个版本:标准版、企业版、开发版、工作组版和精简版。
2. SQL Sever 2005 数据库的数据文件扩展名;辅助数据文件扩展名;日志文件扩展名为。
3.维护数据的触发器可分为、和三种类型。
4.执行触发器时,系统创建了两个特殊的逻辑表、。
5.数据库需备份的内容可分为和两部分。
6.数据库管理系统分、和三种类型。
7.在SQL Server 中,有两类游标可以用于应程序中:和。
8.T—SQL 语言主要由、和。
三部分组成。
9.对两个相关联的表(主表与从表)进行和时,通过参照完整性保证它们之间的数据的。
10.定义表间的参照关系时,先定义,再对从表定义。
11.SQL Sever 2005 支持三种类型的复制:、和。
12.SQL Sever 2005 有三个默认的用户帐号:、和。
13.T-SQL 语言提供了三种系统内置函数:、和。
14. 逻辑文件名是数据库创建后在所有语句中引用文件时所使用的名字;操作系统文件名是在创建物理文件时使用的路径和文件名。
三.是非题1. 安装SQL Server 2005时,系统将自动创建5个数据库。
即 master 、model 、msdb 、 tempdb和资源系统数据库,这些数据库都属于系统数据库。
()2.用“对象资源管理器”和“查询分析器”都可对数据库表进行查询。
()3. 当表的字段类型为数值型时,标识及标识种子才有效。
()4. 当表的字段类型为字符型时,标识及标识种子才有效。
()5. 当表建成后,仍然可以改变数据文件和日志文件的存储位置。
一、单选题1.根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(___)A.只存在一对多的实体关系,以图形方式来表示。
B.以二维表格结构来保存数据,在关系表中不允许有重复行存在。
C.能体现一对多、多对多的关系,但不能体现一对一的关系。
D.关系模型数据库是数据库发展的最初阶段。
答案[B]2、在“连接”组中有两种连接认证方式,其中在(___)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。
A、Windows身份验证B、SQL Server 身份验证C、以超级用户身份登录时D、其他方式登录时答案[B]3、关系数据库中,主键是(___),当运用Transact-SQL语句创建主键时,可以是(__)。
⑴ A、为标识表中唯一的实体 B、创建唯一的索引,允许空值C、只允许以表中第一字段建立D、允许有多个主键的⑵ A、create table table1(column1 char(13) not null primary key,column2 int not on primary key;B、alter table table1 with nocheck addconstraint [PK_table1] primary key nonclustered ( column1) on primary;C、alter table table1 column1 primary key ;答案[ A C]4、视图是一种常用的数据对象,可以简化数据库操作,当使用多个数据表来建立视图时,不允许在该语句中包括(___)等关键字。
A、ORDER BY,COMPUTEB、ORDER BY,COMPUTE,COMPUTR BYC、ORDER BY,COMPUTE BY,GROUP BYD、GROUP BY,COMPUTE BY答案[B ]5、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(_1_),使用关键字(_2_)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(_3__),如果在SELECT语句中使用聚合函数时,可以在后面使用(_4_)。
关系型数据库及SQL语言复习重点第一章:数据库基础知识1.计算机化数据库的优点2.数据库模型三种:a)层次模型: 一个父代可以有多个子代,一个子代只能有一个父代b)网状模型: 数据存储在集合结构中,一个父代可以有多个子代,一个子代也可有多个父代c)关系模型: 以表的形式存储数据,实体互相独立,但之间又有关系3.关系型数据库:IBM的科学家Codd发明关系型数据库,被称为关系型数据库之父4.DBMS = 数据库+访问数据库的程序5.RDBMS:关系型数据库管理系统6.三大数据完整性:a)实体完整性:用主键来实现, 保证数据的唯一性、非空b)引用完整性:用外键来实现,保证数据的一致性c)域的完整性:通过数据类型、数据取值范围、数据格式来实现,保证数据的有效性7.表:存贮数据的容器,由二维行(记录)、列(字段、属性)组成8.SQL(Structural Query Language)语言的分类:遵循ANSI/ISO SQL-92 的国际标准a)DDL(Data Definition Language) 数据定义语言: Create, Alter, Drop, AddConstraintb)DML(Data Manipulation Language) 数据操作语言: Insert, Update, Delete,Truncatec)DQL(Data Query Language) 数据查询语言: Select from, Where, Group by, Orderby, Compute By, Having, inner join, outer join, union, like, in between, any, all, exists, etc.d)DCL(Data Control Language) 数据控制语言: 用于管理对数据库和数据库对象的权限,如Grant, Revokee)CCL(Common Command Language) 通用命令语言: 用来在数据库中进行高效率的搜索第二章:使用Access1.Access是一个小型单机版的关系型数据库管理系统2.1个Access数据库只有一个文件,后缀mdb3.Access数据库有七个对象:表、查询、窗体、报表、页、宏、模块4.Access提供的数据类型,其中文本型数据类型默认的字段长度为505.在Access里实现:a)实体完整性:主键b)引用完整性:外键,建立关系(实施参照完整性)c)域完整性:数据类型、输入掩码、默认值、有效性规则6.导入、导出数据:可以从其他Access数据库、Excel、DBbase、Outlook、Html、Lotus、文本(Txt)、ODBC等导入、导出数据7.设置数据库密码8.压缩和修复数据库第三章:SQL Server数据库的管理1.SQL Server 2000的特征2.SQL Server 2000的安装及软硬件要求3.4.5.数据库类型:系统数据库和用户数据库系统数据库:master,model,msdb,tempdb∙master:它记录所有的登录帐户和系统配置设置。
1、数据库系统的核心是数据库管理系统2、数据库系统的特点:数据结构化,由DBMS统一管理和控制,独立性高3、概念模型是现实世界的第一层抽象,最著名的是E-R模型4、数据的物理独立性用户的应用程序与存储在磁盘上数据库的数据时相互独立的5、要保证数据库的逻辑数据独立性需要改变的是模式与外模式直接的映像。
模式与内模式直接的映像能修改物理数据独立性6、关系数据模型的基本数据结构式关系7、R∩S等价于S-(R-S)8、GRANT UPDATE (QTY) ON S PJ TO 李勇不需要加双引号9、关系规范化的插入操作异常是指应该插入的数据未被插入10、关系数据库设计中,设计关系模式是在数据库设计中的逻辑阶段的任务11、在E-R模型中,如果有3个不同的实体型,3个m:n联系,根据E-R模型转换为关系模型的规则,转换后关系的数目为( C 6 )。
12、事物的隔离性:一个事物的内部操作及其使用的数据对并发的其他事物是隔离的13、数据库恢复中,转储的冗余数据是指日志文件和数据库后背副本14、关系数据模型由关系数据结构关系操作和关系完整性约束三部分组成15、一般情况下,关系R和S使用自然连接时,要求R和S有一个或多个共有属性16、关系模式R(A,B,C,D)中,存在函数依赖关系{A→B,A→C,A→D,(B,C)→A},则侯选码是 A和(B,C) ,R∈ AB NF。
17、E-R图的冲突主要有属性冲突命名冲突和结构冲突18、事务是数据库管理系统的基本单位是用户定义数据库操作序列19、可串行性是并发事物正确性的准则。
我的理解是事物按不同的次序并发执行后的结果相同20、试述视图的作用?(1)视图能够简化用户的操作。
(1分)(2)视图使用户能以多种角度看待同一数据。
(1分)(3)视图对重构数据库提供了一定程度的逻辑独立性。
(1分)(4)视图能够对机密数据提供安全保护。
(1分)二:1、数据的逻辑独立性是指模式改变外模式和应用程序不变2、数据库的三级模式结构中,描述全体数据的全局逻辑结构和特征的是模式3、关系数据模型的缺点有存取路径相对用户透明需查询优化4、自然连接要求有共有的属性5、SQL语言有数据定义DDL 数据操纵DLL 数据控制的功能从E-R模型关系向关系模型转换时,一个M:N联系转换为关系模式时,该关系模式的关键字是(M端实体关键字与N端实体关键字组合)。
第一章数据库技术发展的三个阶段人工管理阶段、文件系统阶段、数据库系统阶段数据库的基本概念Data Base 数据库是为了实现一定的目的、按某种规则组织起来的“数据”的“集合”,简而言之,它是有结构的数据集合。
数据库系统的三级模式结构(考)外模式、模式、内模式外模式/模式映射保证逻辑独立性模式/内模式映射保证物理独立性数据模型的要素及其特点层次模型、网状模型、关系模型要素:数据结构:数据操作:关系代数、关系演算、具有关系代数和关系演算双重特点的语言(SQL)完整性约束:实体完整性、参照完整性和用户定义的完整性关系的特点:1、每列数据项不可再分解2、同一个关系中,不能出现相同的属性名3、同一个关系中,不能有完全相同的元组4、所有元组格式相同,长度相同;属性类型相同5、行列顺序无关紧要关系的完整性(插入):实体完整性、参照完整性关系的完整性(删除):参照完整性规则关系的完整性(修改)=删除+插入实体之间的关系:(1)一对一关系(2)一对多关系(3)多对多关系常见数据库:foxpro 、access、sql server、mybase 、oracle第二章SQL Server 2008 新特性:可信、高效率、智能SQL(结构化查询语言):数据定义语言(DDL)CREATE、DROP、ALTER数据操作语言(DML)SELECT、INSERT、UPDATE、DELETE 数据控制语言(DCL)GRANT、REVOKE特点:一体化、高度非过程化、以同一种语法格式提供两种使用方式、语言简捷,易学易用SQL标识符1.标识符的首字母必须是以下两种情况之一:所有在统一码(Unicode)2.0标准规定的字符,包括26个英文字母a-z和A-Z,以及其他一些语言字符,如汉字。
下划线“_”、“@”或“#”。
2.后续字符:除首字母约定外,还有数字字符及“$”。
3.不允许是T-SQL的保留字4.不允许嵌入空格或其他特殊字符(@、#、##、@@)常规标识符:符合标识符的格式规则分隔标识符:使用了双引号(“”)或方括号([])等分隔符号,既可以遵守标识符命名规则,也可以不遵守标识符命名规则。
1 SQL常用数据库对象:表、视图、索引、约束、存储过程2 SQL的主要数据存储单位:页和区3 SQL 使用文件的三类文件:主数据文件(mdf)、辅助数据文件(ndf)、日志文件(ldf)4 用户自定义文件组使用关键字:FILEGROUP5 4个可见的系统数据库:master 、model 、msdb 、tempdb6 创建数据库:CREA TE DA TABASE7 删除数据库:DROP DA TABASE8 修改表结构:ALTER TABLE (ADD 增加新列;DROP 删除约束或列;MODIFY 修改)9 插入记录:INSERT (V ALUE 需要插入的数据清单;DEFAULT 指定为该列默认值;NULL 指定为空值)10 删除记录:DELETE11 修改记录:UPDA TA12 SELECT 语句是T-SQL 的核心13 聚合函数:A VG:平均值MAX:最大值MIN:最小值SUM:求和COUNT:求组中项数14 WHERE 语句模式匹配:% :代表0个或多个字符_ :代表单个字符[ ] :指定范围[ ^ ] :指范围外]15 范围比较两个关键词:BETWEEN 和IN16 创建自定义数据类型:CREA TE TYPE [schema_name] type_name AS TABLE17 字符串连接运算符“+”18 日期函数:GETDA TE () ; YEAR(date) ; MONTH(date) ; DAY(date)19 创建索引:CREA TE INDEX20 重建索引:ALTER INDEX21 删除索引:DROP INDEX22 创建存储过程:CREA TE PROCEDURE23 事务的两种类型:系统提供的事务和用户定义的事务24开始事务:BEGIN TRANSACTION结束事务:COMMIT TRANSCA TION撤销事务:ROLLBACK TRANSACTION回滚事务:ROLLBACK TRANSACTIONbigint:-2^63~2^63-1;int: -2^31~2^31-1;smallint: -2^15~2^15-1;tinyint:0~255;char,varchar:1~8000;nchar,nvarchar:1~4000;左外连接(LEFT OUTER JOIN):结果表中除了包括满足连接条件的行为,还包括左表的所有行;右外连接(RIGHT OUTER JOIN):结果表中除了包括满足连接条件的行为,还包括右表的所有行;完全外连接(FULL OUTER JOIN):结果表中除了包括满足连接条件的行为,还包括两个表的所有行;使用GROUP BY子句和聚合函数对数据进行分组后,可以使用HA VING子句对分组数据进行进一步的筛选。
HA VING 子句可以使用聚合函数,WHERE子句中不可以。
三种方式:子查询、连接、IN(‘’,’’,’’)逻辑运算符ORDER BY 成绩[ASC | DESC] GROUP BY xx,xxx WITH [CUBE | ROLLUP]字符串连接:SELECT (学号+’,’+姓名) AS 学号及姓名RAND()返回0~1之间的一个随机值,返回类型为float。
ABS()绝对值。
LEFT(课程名,4)返回从字符串左边开始指定个数的字符,返回值为varchar。
REPLICATE(‘字符’,次数),例如:REPLICA TE(‘*’,3)就是***。
SUBSTRING(expression,start,length)返回expression中指定的部分数据。
用户定义函数:CREA TE FUNCTION average(@cnum char(20)) RETURNS int AS BEGIN ……END用EXEC执行聚集索引和非聚集索引:都是用B树(BTREE)方式组织。
一个表最多一个聚集索引,一个或多个非聚集索引。
创建主键就创建了聚集索引。
CREA TE UNIQUE NONCLUSTERED INDEX xxx ON xx实体完整性(行完整性),域完整性(列完整性),参照完整性(引用完整性)通过数据类型、CHECK约束、规则、DEFAULT定义和NOT NULL可以实现域完整性。
PRIMARY KEY约束与UNIQUE约束的主要区别:1.一个表只能有一个PRIMARY KEY约束,但可以有若干个UNIQUE 约束;2.PRIMARY KEY字段值不能为NULL,而UNIQUE字段值可以为NULL;3.一般在创建PRIMARY KEY约束时系统自动产生索引,默认类型为簇索引,在创建UNIQUE约束时,系统自动产生一个UNIQUE索引,默认类型为非簇索引。
PRIMARYKEY与UNIQUE约束的相同点:两者均不允许表中对应字段存在重复值。
事务的处理过程:BEGIN TRANSACTION mytran1;UPDA TE...;DELETE...;SA VE TRANSACTION S1;DELETE...;ROLLBACK TRANSACTION S1;INSERT...;COMMIT TRANSACTION。
FOR XML RAW元素名称为row、FOR XML RAW(‘course’)元素名称为course、FOR XML AUTO元素名称为表名。
CREA TE LOGIN 用户名WITH PASSWORD=’密码’ DEFAULT_DA TABASE=数据库最高权限:服务器sysadmin数据库db_ownerinserted\deletedBACKUP DA TABASE XX TO [DISK=’E:\tmpxx.bak’ | XXX]RESTORE DA TABASE XX FROM XXXCREA TE RULE WY_rule AS @WY BETWEEN 1 AND 20CREA TE FUNCTIONCREA TE TRIGGER XXXX ON XX [FOR INSERT,UPDA TE,DELETE|INSTEAD OF INSERT | AFTER DROP_TABLE] ALTER TABLE Employees5ADD Address char(30)CONSTRAINT AD_UK UNIQUE(Address)CREA TE PROCEDURE DepChaASBEGINUPDA TE EmployeesSET DepartmentID='3'WHERE WorkYear>6END【画三角形】DECLARE @A int /*循环参数,也是三角形的行数*/DECLARE @B int /*三角形第一行离左边框的空格数*/DECLARE @C int /*星号的个数*/SET @A=1SET @B=10SET @C=1WHILE @A<=8BEGINPRINT SPACE(@B)+replicate('*',@C)+SPACE(@B)SET @A=@A+1SET @B=@B-1SET @C=@C+2END【阶乘】CREA TE FUNCTION JC(@a int)RETURNS bigint ASBEGINDECLARE @sum bigintDECLARE @i intSET @sum=1SET @i=2WHILE(@i<=20)BEGINSET @sum=@i*@sumSET @i=@i+1ENDRETURN @sumEND【完整性】对于YGGL数据库,表Employees的EmployeeID列与表Salary的EmployeeID列应满足参照完整性规则,请用触发器实现两个表间的参照完整性。
CREA TE TRIGGER SalaryIns ON dbo.SalaryFOR INSERT,UPDA TEASBEGINIF((SELECT EmployeeID FROM inserted) NOT IN(SELECT EmployeeID FROM Employees))ROLLBACKENDGOCREA TE TRIGGER EmployeesUpdate ON dbo.EmployeesFOR UPDA TEASBEGINUPDA TE SalarySET EmployeeID=(SELECT EmployeeID FROM inserted)WHERE EmployeeID=(SELECT EmployeeID FROM deleted)ENDGOCREA TE TRIGGER EmployeesDelete ON dbo.EmployeesFOR DELETEASBEGINDELETE FROM SalaryWHERE EmployeeID=(SELECT EmployeeID FROM deleted)END 【例2.8】假设已经创建了例2.5中的数据库TEST,它只有一个主数据文件,其逻辑文件名为TEST1_DATA,大小为5MB,最大为50MB,增长方式为按10%增长。
要求:修改数据库TEST1现有数据文件TEST1_DATA的属性,将主数据文件的最大大小改为100MB,增长方式改为按每次5MB增长。
ALTER DA TABASE TEST1MODIFY FILE(NAME=TEST1_DA TA,MAXSIZE=100MB,FILEGROWTH=5MB)【例3.17】从表XSB中生成计算机专业的学生表,包括学号、姓名、专业,要求新表中的数据位结果集中前5行。
用CREA TE语句建立表XSB1:CREA TE TABLE XSB1(num char(6) NOT NULL PRIMARY KEY,name char(8) NOT NULL,speiality char(10) NULL)用INSERT语句向XSB1表中插入数据:INSERT TOP(5) INTO XSB1SELECT 学号,姓名,专业FROM XSBWHERE 专业=’计算机’【例4.28】查找为选修离散数学的学生情况。
SELECT *FROM XSBWHERE 学号NOT IN(SELECT 学号FROM CJBWHERE 课程号IN(SELECT 课程号FROM KCBWHERE 课程名=’离散数学’))【例4.74】计算数字1~10的阶乘。
WITH MyCTE(n,njc)AS (SELECT n=1,njc=1UNION ALLSELECT n=n+1,njc=njc*(n+1)FROM MyCTEWHERE n<10)【例5.19】使用第一种格式的CASE语句,根据性别值输出“男”或“女”。