数据库技术复习一、数据库基础知识几个重要概念数据库三要素数据库分类(关系数据库)数据库系统三级模式结构数据库的应用返回目录一、数据库基础知识1.几个重要概念数据(Data)数据库(DB)p14数据库管理系统(DBMS)p16数据库系统(DBS)p15数据库用户(DBA)一、数据库基础知识2.数据库三要素数据结构数据操作数据的约束条件一、数据库基础知识3.数据库分类(关系数据库)层次数据库网状数据库关系数据库关系:二维表,实体间的联系基本概念:元组、属性、关键字、域一、数据库基础知识4.数据库三级模式结构外模式模式内模式一、数据库基础知识5.数据库系统的应用C/SB/S返回二、SqlServer2005简介SqlServer2005概述SqlServer2005核心管理工具介绍返回目录二、SQLServer2005简介Client应用程序ServerSQLServer2005请求响应1.SqlServer2005概述基于C/S体系结构的关系型数据库管理系统,使用Transact-SQL语句在Server和Client之间传送请求二、SQLServer2005简介2.SqlServer2005核心管理工具介绍SQLServerManagementStudio是其核心的管理工具,可以用来配置数据库系统、建立或删除数据库对象、设置或取消用户的访问权限等。重要窗口:对象资源管理器窗口和查询窗口返回三、数据库的设计数据库设计步骤构建E-R模型数据库设计的规范化返回目录三、数据库的设计1.数据库设计步骤三、数据库的设计2.构建E-R模型Entity—Relationship描述实体与实体间的关系三个基本概念实体关系属性学生系部管理被管理者管理者N1三、数据库设计3.数据库设计的规范化数据库设计时存在的问题:数据冗余数据表更新异常(数据不一致)2.规范化第一范式、第二范式、第三范式返回四、T-Sql语言SQL语言简介SQL语言特点SQL语言内容常量、变量函数运算符流程控制语句返回目录四、T-Sql语言1.SQL语言简介SQL(StructuredQueryLanguage)结构化查询语言。2.SQL语言特点综合统一高度非过程化语言简洁,易学易用核心动词四、T-Sql语言3.SQL语言包含4个部分:数据定义语言(DDL)例如:CREATE、ALTER、DROP。数据操作语言(DML)例如:INSERT、UPDATE、DELETE。数据查询语言(DQL)例如:SELECT语句。数据控制语言(DCL)例如:GRANT、REVOKE、ROLLBACK。四、T-Sql语言4.常量和变量常量⑴.字符串、日期时间常量用单引号‘’标示;⑵.日期常量的格式‘yyyy-mm-ddhh:mm:ssam|pm’;⑶.货币常量前缀$380.2。变量⑴.局部变量⑵.全局变量四、T-Sql语言变量⑴.局部变量由一个@符号开始声明:Declare局部变量名数据类型[,…n]声明时它被初始化为Null赋值:Set/Select局部变量名=表达式输出:Select局部变量名[,…n]四、T-Sql语言⑵.全局变量名字由@@符号开始。两者的区别?注意:命名规则①只能以字母、汉字或是“_”开头②不能与关键字重名③不能包含空格,*,&等特殊符号四、T-Sql语言5.函数日期函数系统日期时间GETDATE()日期加DATEADD(格式串,数值,日期)日期差DATEDIFF(格式串,日期1,日期2)四、T-Sql语言字符串函数ASCII码ASCII(字符表达式)字符CHAR(数字表达式)长度LEN(字符表达式)左截取LEFT(字符表达式,整数)右截取RIGHT(字符表达式,整数)中间截取SUBSTRING(字符表达式,起始点,n)四、T-Sql语言数学函数CEILING(数字表达式)取整函数≥FLOOR(数字表达式)取整函数≤ROUND(数字表达式,小数位数)四舍五入集合函数(聚合函数)名称最大最小求和平均计数函数MAXMINSUMAVGCOUNT四、T-Sql语言6.运算符算数运算符加(+)、减(-)、乘(*)、除(/)和取余(%)赋值运算符等号(=)比较运算符大于()、大于等于(=)、等于(=)、不等于()、小于()、小于等于(=)结果:正确(TRUE)、错误(FALSE)、Unknown四、T-Sql语言逻辑运算符结果:正确(TRUE)、错误(FALSE)运算符含义AND而且OR或者NOT否定IN在…之内LIKE匹配(像)BETWEENAND在…之间EXISTS存在ALL所有(都)ANY任一SOME有些四、T-Sql语言字符串运算符连接(+)运算符的优先级算数字符串比较逻辑赋值运算符具体见P184页四、T-Sql语言7.流程控制语句Print语句Print‘字符串’|局部变量|全局变量复合语句Begin……EndIfElse语句If逻辑表达式T-sql语句1[ElseT-sq语句2]注释语句/*……*/和——返回五、数据库SqlServer2005系统数据库数据库文件类型T-SQl创建数据库T-SQl修改数据库T-SQl删除数据库数据库的备份和恢复返回目录五、数据库1.SqlServer2005系统数据库Master记录了SQLServer系统级的信息Model是所有数据库的模板Msdb被SQLServer代理用于安排报警、作业调度以及记录操作员等活动Tempdb用于存放所有连接到系统的用户临时表和临时存储过程以及SQLServer产生的其他临时性的对象五、数据库2.数据库文件类型主文件(*.mdf)每个数据库都必须有一个主文件(有且只有一个)。次要文件(*.ndf)一个数据库可以没有也可以有多个次要文件。事务日志文件(*.ldf)包含用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。五、数据库3.T-SQl创建数据库CreateDatabaseCreateDatabase数据库名【On|LogOn(Name=逻辑文件名,Filename=‘物理文件名’,Size=初始文件大小,Maxsize=文件最大值或标明不受限Unlimited,Filegrowth=文件自动增量)】五、数据库4.T-SQl修改数据库AlterDatabaseAddFile增加数据文件ModifyFile修改数据文件RemoveFile删除数据文件AddLogFile增加日志文件ModifyLogFile修改日志文件RemoveLogFile删除日志文件五、数据库5.删除数据库DropDatabase数据库名[,……n]6.数据库的备份和恢复备份:完整备份、差异备份、事务日志备份、文件和文件组备份(单独进行)恢复模式:简单、完整、大容量日志返回六、数据表——T-SQl创建数据表修改数据表删除数据表返回目录六、数据表1.创建数据表CreateTableCreateTable表名(列名1数据类型[列限定],列名2数据类型[列限定],……n)六、数据表2.修改数据表AlterTable添加列AlterTable表名Add列名数据类型[,……n]修改列AlterTable表名AlterColumn列名数据类型删除列AlterTable表名DropColumn列名[,……n]六、数据表3.修改数据表DropTable数据表名[,……]返回七、数据操作插入数据修改数据删除数据返回目录七、数据操作1.插入数据insert[into]表名[(列名,……)]Values(值,……)注意插入值一定要与数据表定义的数据类型一致,采用默认值时写Default,如果是空值写Null插入值的数量和顺序与字段名列表中的一致七、数据操作2.修改数据Update表名Set列名=新值[,列名2=新值2,……n][Where条件]3.删除数据Delete[from]表名[Where条件]七、数据操作注意更新的值一定要与数据表定义的数据类型一致,采用默认值时写Default,如果是空值写Null插入值的数量和顺序与字段名列表中的一致返回八、数据完整性数据完整性的定义数据完整性的分类数据完整性的实施方法使用约束实现完整性约束返回目录八、数据完整性1.数据完整性的定义用于保证数据库中数据的正确性、一致性和可靠性。2.数据完整性的分类实体完整性域完整性参照完整性用户定义完整性八、数据完整性3.数据完整性的实施方法声明数据完整性在对象定义中来实现,包括各种约束、默认、规则。过程数据完整性利用脚本语言来实现,包括触发器、存储过程。八、数据完整性4.使用约束[NOT]NULL([非]空)约束PRIMARYKEY(主键)约束DEFAULT(默认)约束UNIQUE(唯一性)约束CHECK(检查)约束FOREIGNKEY(外键)约束实体完整性域完整性参照完整性八、数据完整性创建【学生信息表】,包括如下列学号nchar(8)主键姓名nvarchar(5)不允许为空性别nchar(1)只取‘男’或‘女’民族nvarchar(10)默认‘汉族’身份证号nvarchar(20)要求必须唯一班级编号nchar(6)外键为班级信息表‘编号’列级联更新PrimaryKeyNotNullCheck(性别=‘男’or性别=‘女’)Default‘汉族’UniqueReferences班级信息表(编号)OnUpdateCascade返回九、数据查询Select语句的分类Select语句的语法格式返回目录九、数据查询1.Select语句的分类无源查询Select常量|变量|函数|表达式[as别名][,…n]有源查询九、数据查询2.Select语句的语法格式SELECT[DISTINCT]字段列表[INTO目标数据表]FROM源数据表[,...n][WHERE条件表达式][GROUPBY分组表达式[HAVING搜索表达式]][ORDERBY排序表达式[ASC]|[DESC]][COMPUTE行聚合函数名(表达式)[,...n][BY表达式[,...n]]]分组查询统计查询连接查询结果排序结果去掉重复记录结果保存条件查询九、数据查询条件查询Select[Distinct]字段列表From源数据表Where条件表达式汇总查询聚合函数查询结果排序OrderBy排序表达式[Asc]|[Desc]查询结果保存Into目标数据表九、数据查询分组查询[GroupBy分组表达式[,...n][Having搜索表达式]]注意:Having子句和Where子句同样是条件语句,如果查询条件需要在分组之前被应用,则使用Where子句。统计查询Compute行聚合函数名(统计表达式)[,...n][BY表达式[,...n]]九、数据查询连接查询Select字段列表From数据表1[,...n]Where数据表1.字段=数据表2.字段…子查询Select字段1[,...n]From数据表Where条件表达式(Select字段1[,...n]From数据表Where条件表达式)返回十、存储过程存储过程概念存储过程分类创建存储过程执行存储过程修改存储过程删除存储过程返回目录十、存储过程1.存储过程概念是存储在SQLServer服务器中的一组预编译过的T-SQL语句,用来完成某项特定功能。2.存储过程分类系统存储过程和用户定义存储过程十、存储过程3.创建存储过程CreateProcedureCreatePro[cedure]存储过程名[@参数类型[Output][,…n]]AsBeginT-sql语句End十、存储过程4.执行存储过程Exec[ute]存储过程名[参数值|@变量名[output]][,……n]5.修改存储过程AlterProcedure6.删除存储过程DropProcedure存储过程名[,……n]返回十一、触发器