版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQLServer2008数据库设计
高级案例教程项目一共分为两个任务项目一了解数据库的开发环境了解数据库技术的应用区分数据库相关的几个概念掌握SQLServer2008的安装方法掌握SQLServer2008常用工具的使用方法理论指导一、数据库技术的实际应用二、数据库、数据库管理系统、数据库应用系统
及数据库系统三、初识SQLServer2008一、数据库技术的实际应用图1-1超市收款结算图1-1超市收款结算每个商品的条形码都是唯一的,扫码设备读取条形码后,会根据条形码从数据库中读取出该商品的相关信息。二、数据库、数据库管理系统、数据库应用系统及数据库系统数据库系统一般由数据库、数据库管理系统(及其开发工具)、数据库应用系统、数据库管理员和用户构成。三、初识SQLServer2008(一)SQLServerRDBMS的发展1988年:SQLServer1.0诞生1992年:SQLServer4.2桌面数据库系统问世1993年:推出SQLServerforWindowsNT3.11994年:微软与Sybase在数据库开发方面的合作中止1995年:SQLServer6.0发布,随后推出SQLServer6.51998年:SQLServer7.0发布2000年:SQLServer2000发布2005年:SQLServer2005发布2008年:SQLServer2008发布(二)SQLServer2008的不同版本及配置要求不同版本:SQLServer2008企业版SQLServer2008标准版SQLServer2008开发版SQLServer2008工作组版SQLServer2008网络版SQLServer2008ExpressSQLServerCompact不同版本SQLServer2008对硬件的要求在安装SQLServer2008前需要安装以下组件:MicrosoftWindows.NETFramework3.5SP1MicrosoftWindowsInstaller4.5或更高版本MicrosoftWindowsSQLServerNativeClientSQLServer2008主要版本与主流操作系统的兼容情况:任务实践任务一
安装SQLServer2008任务二
熟悉SQLServer2008管理和开发工具任务一
安装SQLServer2008步骤1双击运行软件介质中的setup.exe程序,会出现一个命令行
窗口,接下来将弹出一个对话框,如下图所示。步骤2接下来系统将显示如下图所示安装界面。步骤3单击安装窗口左侧的“安装”链接,打开“安装”画面,
选择第一项。步骤4系统会首先安装程序支持规则,如下图所示。步骤5单击“确定”按钮,打开“产品密钥”画面,如图1-10所示。
本次安装选择的是评估版,所以不必输入产品密钥。步骤6单击“下一步”按钮,选择“我接受许可条款”复选框,
如下图所示。步骤7单击“下一步”按钮,在出现的“安装程序支持文件”
画面中单击“安装”按钮,如图所示。步骤8在随后出现的“安装程序支持规则”画面中单击“下一步”
按钮,将出现下图所示的画面,选择需要安装的功能组件。步骤9 单击“下一次”按钮,系统将显示“配置实例”画面。若是
首次安装SQLServer,应选择“默认实例”项,否则,应选择
“命名实例”单选钮,并指定实例名与实例ID,如图所示。单击此按钮,可指定实例根目录此处列出了已安装的SQLServer实例步骤10 单击“下一步”按钮后,计算机开始计算电脑的磁盘空间
是否可以进行安装,如图所示。确定可以进行安装后,
单击“下一步”按钮。步骤11 服务器配置页面如图所示,在这个页面中有两个选项卡“服务
账户”和“排序规则”。其中在“服务账户”选项卡中,可以
分别为各服务设置登录账户名、密码和启动类型。步骤12 “服务器配置”的“排序规则”选项卡如图所示,一般情况下
此项设置可不变,故可直接单击“下一步”按钮。步骤13 接下来将开始进行数据库引擎配置,下图所示为“账户设置”选项卡页面,在这里我们需要为数据库引擎选择身份验证模式并指定SQLServer管理员;“数据目录”选项卡页面可以设置数据的存储目录。(1)Windows身份验证模式:指Window的合法用户,若在其用户名下安装SQLServer,则可以直接建立连接,否则,需要在SQLServer中建立相应的帐户后,才能建立连接。这是最安全的身份验证模式。
(2)混合模式:指允许用户使用Windows身份验证或SQLServer身份验证(在连接服务器时,需要输入用户名和密码)进行连接。在非Windows操作系统(如Linux)和Internet环境下必须使用此模式。步骤14 单击“下一步”按钮,系统将显示图1-20所示分析服务配置
画面,在这里我们可以指定分析服务的账户并为分析服务相
关数据设置存储目录。步骤15 单击“下一步”按钮,系统将显示图1-21所示报表服务配置画面,用户可以根据个人需求选择不同的安装模式,这里选择“安装本机默认模式配置(I)”。步骤16 继续单击“下一步”按钮,系统将依次显示“错误和使用
情况报告”与“安装规则”画面。步骤17 再次单击“下一步”按钮,系统将显示图1-22所示“准备安
装”画面,单击“安装”按钮,将出现安装进度提示。安装
完成后,将显示如图1-23所示“完成”画面,单击“关闭”按钮即完成了本次安装。任务二
熟悉SQLServer2008管理和开发工具一、SQLServer配置管理器二、MicrosoftSQLServerManagementStudio一、SQLServer配置管理器SQLServer配置管理器用于管理与SQLServer相关联的服务、配置SQLServer使用的网络协议。步骤1 选择“开始”→“所有程序”→“SQLServer2008”→“配置工具”命令,启动SQLServer配置管理器,如图1-24所示。步骤2 启动SQLServer配置管理器后,单击SQLServerConfigurationManager左窗格中的“SQLServer服务”选项,在右窗格中将显示SQLServer中的服务。右击需要设置的服务,在弹出的快捷菜单中根据需要选择“启动”、“停止”、“暂停”或“重新启动”选项,如下图所示。步骤3 在SQLServer2008安装过程中我们已经对各服务设置了账户名以限定其权限,在实际使用过程中,如果需要更改服务的权限,可以在右窗格中右击需要更改权限的服务,在弹出的快捷菜单中选择“属性”选项,打开的服务属性对话框如图所示。步骤4 在默认显示的“登录”选项卡中选择新的登录身份后,
单击“确定”按钮,重新启动该服务后设置即可生效。步骤5如果需要更改服务的启动模式,可在打开的服务属性对话框中选择“服务”选项卡,单击启动模式右侧的按钮,选择新的启动模式后,单击“确定”按钮即可,如图所示。步骤6 若相应服务已经启动,但客户端访问服务器时仍存在问题,则可以查看是否未开启通信协议。为此,可展开SQLServerConfigurationManager左窗格中的“SQLServer网络配置”选项,单击“<实例名>的协议”(这里选择“MSSQLSERVER的协议”)选项,在右窗格中可以看到该实例所支持协议的开启状态,如图1-28所示。若想启用或禁用某协议,则可右击此协议,在弹出的快捷菜单中选择“启用”或“禁用”选项,重新启动服务后设置即可生效。步骤7 如果希望更改SQLServer客户端的通信协议配置,可展开SQLServerConfigurationManager左窗格中的“SQLServerNativeClient10.0配置”选项,单击“客户端协议”选项,在右窗格
中可以看到客户端协议的顺序和启用状况,如图所示。右击需要进行设置的协议,在弹出的快捷菜单中选择“启用”或“禁用”选项可以直接将该协议启用或禁用。步骤8 右击需要进行设置的协议,在弹出的快捷菜单中选择“顺序”选项,此时将打开如图所示的“客户端协议属性”对话框,在此对话框中可以通过启用或禁止协议,还可以通过调整协议的顺序。二、MicrosoftSQLServerManagementStudioSQLServerManagementStudio,简称为SSMS,它是SQLServer2008提供的一种集成环境,将各种图形化工具和多功能的脚本编辑器组合在一起,能够完成访问、配置、控制、管理SQLServer和开发数据库的所有工作。步骤1 启动SSMS之前首先要连接服务器,选择“开始”→“程序”→“SQLServer2008”→“SQLServerManagementStudio”命令,出现启动界面后将弹出“连接到服务器”对话框,在“服务器类型”中我们可以选择要连接到的服务,SQLServer能够提供多种服务,比如“数据库引擎”、“AnalysisServices”、“ReportingServices”等;在选择服务器名称时,默认显示本地服务器的名称,如果我们想要连接到某远程服务器上,只要在服务器名称右侧边框中输入或选取该计算机即可。步骤2 默认情况下,登录SQLServer服务器的身份验证模式为Windows身份验证,这表示Windows将完全负责对客户端进行身份验证,用户不必再重复提交登录名和密码。选择身份验证模式后,单击“连接”按钮。步骤3 数据库连接成功后,我们将看到SSMS的主界面,如图1-33所示。位于左窗格中的对象资源管理器展示了所连接的数据库引擎提供的数据库对象,这些数据库对象以树状结点的形式表示。步骤4 展开“数据库”结点,选中某个数据库再次展开,可以看到其中包含了设计数据库时常用的数据库对象,如数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规则和默认值等,如图所示。步骤5 数据库对象的构建还可以通过执行SQL脚本来实现。单击工具栏中的“新建查询”按钮,在右窗格中将打开一个查询窗口,同时在SSMS工具栏位置将出现一个与查询分析相关的工具栏,如上图所示(将鼠标移至工具上方,可查看其用途)。在查询窗口中输入SQL语句,然后单击工具栏中的“执行”按钮,可执行语句,执行结束后,窗口下方将显示执行结果,如下图所示。输入SQL语句显示执行结果0102030405新建班级新建作业成绩统计布置作业学生扫码做小提示:生成的班级二维码,放在下一页ppt中即可。放入二维码后,记得取消“隐藏幻灯片”哦~扫码布置本课作业↑↑↑扫码布置作业wenjingketang课后作业请同学们扫一扫进入班级做作业引用配套微课,学生线上看,系统自动记成绩;大作业一键收发,在线判分扫码申请免费开通→线上建课wenjingketang扫码填写问卷定制更实用的教学资源对课件有修改、优化建议平台使用遇到问题想免费使用平台、免费建课扫码加小旌好友为您提供专属服务哦SQLServer2008数据库设计
高级案例教程项目二共分为两个任务项目二
设计学生选课系统数据库了解C/S与B/S模式的区别熟悉数据库设计步骤熟悉SQLServer2008中表结构和数据类型掌握需求分析和数据库表的设计方法理论指导一、C/S与B/S模式应用系统架构二、数据库设计步骤三、表结构和系统数据类型一、C/S与B/S模式应用系统架构图1-1超市收款结算
C/S(Client/Server)结构,即客户机和服务器结构。在这种模式下,服务器上安装服务器程序(Server),作为客户机的计算机都要安装客户程序(Client)。用户与客户程序直接打交道,客户程序发出请求,服务器程序接收并且处理客户程序提出的请求,然后将结果返回。
B/S(Browser/Server)结构,即浏览器和服务器结构,是Web兴起后的一种网络结构模式。这种结构也称为三层客户/服务器模式,如图所示,第一层为浏览器,第二层为Web服务器,第三层为数据库服务器。这两种结构的优劣:C/S结构的软件需要针对不同的操作系统开发不同的版本,并且用户需要安装客户端程序后才能使用服务,但是访问安全、快捷、准确;B/S结构不用安装任何专门的软件,只要安装浏览器即可,节省投资、跨地域广。二、数据库设计步骤数据库应用系统其开发过程分为两个不同的部分:后台数据库设计和前台界面设计、编码。根据目前常用的规范式设计方法,数据库设计可以分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行及维护6个阶段,如图所示。三、表结构和系统数据类型(一)表结构表中的一行称为记录主键用来唯一标识记录行若表中字段或字段的组合并非主键,但却是另一个表的主键,则称此字段或字段的组合为本表的外键表中的一列称为字段(二)系统数据类型任务实践任务一系统功能模块设计任务二数据库表结构设计任务一系统功能模块设计管理人员:包括学生信息、教师信息、专业信息、班级信息、必修课程和公选课程的添加及维护;选课时间的控制、班级课程的排课和选修课程的排课。教师:查看学校为自己安排的教学工作、录入和查看学生的成绩。学生:选修全校的公选课以及所在专业的专业选修课,并能查看自己的考试成绩。除此之外,学生、教师和管理人员登录系统后都可以更改各自的密码。功能分析:任务二
数据库表结构设计学生选课系统共设计了14个表,各表结构如下:(1)admin存储管理员信息,其结构如下表所示。存储系统配置信息,其结构如表所示。(2)config(3)teacherInfo存储教师信息,其结构如表所示。(4)studentInfo存储学生信息,其结构如表所示。(5)collegeInfo存储学院信息,其结构如表所示。(6)specialFieldInfo存储不同学院所开设的专业信息,其结构如表所示。(7)classInfo存储班级信息,其结构如表所示。(8)classCourseInfo存储专业的必修课课程信息,其结构如表所示。(9)classCourseTeach存储班级必修课的上课信息,其结构如表所示。(10)publicCourseInfo存储选修课课程信息,其结构如表所示。(11)publicCourseTeach存储选修课程的上课信息,其结构如表所示。(12)scoreInfo存储学生成绩信息,其结构如表所示。(13)schoolBuildingInfo存储学校教学楼信息,其结构如表所示。(14)classRoomInfo存储教室信息,其结构如表所示,教务人员为课程安排教室时将参照该表中的教室号和座位数。0102030405新建班级新建作业成绩统计布置作业学生扫码做小提示:生成的班级二维码,放在下一页ppt中即可。放入二维码后,记得取消“隐藏幻灯片”哦~扫码布置本课作业↑↑↑扫码布置作业wenjingketang扫码填写问卷定制更实用的教学资源对课件有修改、优化建议平台使用遇到问题想免费使用平台、免费建课扫码加小旌好友为您提供专属服务哦SQLServer2008数据库设计
高级案例教程项目三共分为三个任务项目三
新建数据库和表了解SQLServer2008中数据库的存储结构掌握使用SSMS创建、修改及删除数据库、表和关系的方法熟悉T-SQL语言并熟练编写管理数据库和表的语句理解SQLServer2008中的数据完整性机制理论指导一、SQLServer2008中数据库存储结构二、创建数据库和表的方法三、用户、角色和架构图1-1超市收款结算一、SQLServer2008中数据库存储结构物理存储结构是指SQLServer2008中数据库对象在磁盘上的存储方式,逻辑存储结构是指操作系统和SQLServer2008所展示的存储方式。(一)物理存储结构页是SQLServer中存储数据的最基本单位,当表需要空间存放数据时,SQLServer以页为单位分配空间给表,每页的大小为8KB。标头96字节,存储页码、页类型、页的可用空间等信息。每存放一个记录,页尾就会再用两个字节来存放代表记录位置的行偏移及其他信息。当数据库需要空间存储表、索引等数据库对象时,SQLServer会以区为单位分配空间。区是八个物理上连续的页的集合,SQLServer有两种类型的区:混合区:区中八页的每页可由不同的对象所有。例如区中有两页由A表使用,有一页由B索引使用,当建立新的表或索引时,SQLServer会查找此区中尚未使用的页来存放。统一区:区中的所有八页只能由单个对象使用。当混合区中的表和索引大小增长到八页时,它们就会被存放到专供自己使用的统一区中,以提高访问效率。(二)逻辑存储结构1.系统数据库和用户数据库系统数据库在安装好SQLServer2008软件后就已经存在;用户数据库是指由用户建立的数据库。
master数据库是SQLServer2008的总控数据库,用于记录系统配置信息、跟踪用户数据库、管理系统资源分配以及响应SQL语句等。
model数据库作为SQLServer2008的原型数据库,是系统创建所有数据库的模板。系统数据库还包括mssqlsystemresource,是一个隐藏的数据库,系统数据库的节点下看不到。
msdb数据库是一个供系统使用的数据库,用于记录SQLServerAgent的相关信息。
tempdb数据库用于保存所有的临时表和临时存储过程。tempdb数据库在SQLServer2008每次重启时依据model数据库进行重建。
mssqlsystemresource通常被简称为resource数据库,它是一个只读数据库,存放与SQLServer2008本身相关的系统对象。2.数据库文件数据库文件是用来存储数据库数据和数据库对象的文件,一般存放在数据库安装目录或指定目录的Data文件夹下面,由数据库文件和事务日志文件组成。(1)数据库文件主数据库文件(PrimaryDatabaseFile)辅助数据库文件(SecondaryDatabaseFile)一个数据库只能有一个主数据库文件,其扩展名为.mdf。一个数据库可以没有也可以同时拥有多个辅助数据库文件,其扩展名为.ndf。(2)事务日志文件主文件组:建立数据库时默认会产生的文件群,包含主数据库文件。用户定义的文件组:由用户自己建立的文件组。默认文件组:默认文件组不是指不同于主文件组和用户定义的文件组之外的另一种文件组,而是指数据库目前默认使用的文件组。二、创建数据库和表的方法可以通过SSMS中的命令或SQL语句两种方式来实现。实现方法将在任务实践和知识拓展中进行介绍。三、用户、角色和架构SQLServer2008拥有强大的安全机制,而这主要是通过用户、角色和架构来实现的。任务实践任务一创建“学生选课系统”数据库任务二创建studentInfo表任务三创建studentInfo表与scoreInfo表间的关系任务一创建“学生选课系统”数据库在创建数据库之前,需要考虑以下几个问题:数据库名称数据库文件的初始大小及增长方式主要包括数据和索引两部分数据库的存储位置任务实施步骤1打开SSMS工具,连接到服务器后,在左窗格对象资源管理器中展开其树形目录,右击“数据库”文件夹,在弹出的快捷菜单中选择“新建数据库”选项,如图所示。步骤2打开的“新建数据库”对话框将默认显示“常规”选项页,填写数据库的名称将随之生成同名的主数据库文件和事务日志文件。设置数据库文件及日志文件的初始大小和增长方式然后单击“确定”按钮,如图所示。步骤3接着单击“新建数据库”对话框中的“确定”按钮,回到SSMS主窗口,在左窗格对象资源管理器中可以看到,“数据库”选项下增加了我们刚刚建立的“CourseSelect”数据库,如图3-9所示。若对象资源管理器中暂时没有显示新建的数据库,可以尝试单击对象资源管理器工具栏中的“刷新”按钮。步骤4 增加新的数据文件:在SSMS中右击需要修改的数据库,选择“属性”选项,进入“数据库属性”窗口,单击左窗格中的“文件”选项,然后单击右窗格下方的“添加”按钮,在“数据库文件”栏中将出现新添加的数据库文件即可,如图所示。步骤5如果想要重命名或删除数据库,可在SSMS中右击相应数据库,在弹出的快捷菜单中选择“重命名”或“删除”选项。任务二
创建studentInfo表此外,由于在admin和teacherInfo表中均存在密码列,这里我们自定义一种密码数据类型来方便创建其他表时使用。studentInfo表中,studentPassword字段用于存储学生的密码,系统最初为所有学生分配相同的密码(如666666),学生进行更改时设置要求输入不小于6位的密码。这里,我们需要创建一个默认值和一个规则来实现上述要求。任务情境任务实施首先创建password数据类型的默认值为“666666”,规则为长度不能小于6位,然后将默认值和规则绑定到该数据类型,最后创建studentInfo表时应用此数据类型。步骤1打开SSMS后,单击工具栏中的“新建查询”按钮,并在工具栏中选择“CourseSelect”数据库。在右窗格的查询窗口中输入左图中T-SQL语句(含义为创建默认值对象password,其值为“666666”),单击“执行”按钮。命令运行成功后,右窗格的“消息”选项卡中将提示“命令已成功完成”。同时在左窗格资源管理器“CourseSelect”→“可编程性”→“默认值”文件夹下面可以看到新建的对象dbo.password,如右图所示。步骤2 创建规则与默认值相似,在查询查询窗口中输入T-SQL语句“CREATERULEpasswordLength_ruleASLEN(@password)>=6”(密码长度大于或等于6位),然后单击“执行”按钮。命令运行成功后,在左窗格资源管理器“CourseSelect”→“可编程性”→“规则”文件夹下面可以看到新建的文件。步骤3 下面创建password数据类型,在左窗格对象资源管理器中依次展开“CourseSelect”→“可编程性”→“类型”文件夹,右击“用户定义数据类型”对象,在弹出的快捷菜单中选择“新建用户定义数据类型”选项,如左图所示。在“新建用户定义数据类型”对话框中输入自定义数据类型的名字password及所依据的系统数据类型varchar和长度32,如右图所示。步骤4 下面将默认值和规则绑定到password数据类型。单击对话框中默认值右侧的按钮,打开“选择对象”对话框,在该对话框中单击“浏览”按钮打开“查找对象”对话框,勾选之前创建的默认值,然后单击两次“确定”按钮,如图所示。按同样方式绑定规则。最后回到“新建用户定义数据类型”对话框中,单击“确定”按钮,即完成数据类型的创建。步骤5 下面我们开始创建studentInfo表。如左图所示,在左窗格对象资源管理器中右击“CourseSelect”结点下的“表”对象,在弹出的快捷菜单中选择“新建表”选项,在右窗格中依次输入studentInfo表的列名并为其选择正确的数据类型(注意studentPassword列选择自定义的password数据类型),然后单击studentNumber列前的灰色方块选中该列,随后单击工具栏中的按钮,将此列设为表的主键,如右图所示。步骤6 表中信息填写完成后,单击工具栏中的“保存”按钮,将弹出“选择名称”对话框。如图所示,输入表的名字后单击“确定”按钮,即完成表的创建。步骤7 向新创建的表中输入几条测试数据以验证之前创建的默认值和规则。如左图所示,在左窗格对象资源管理器中依次展开“CourseSelect”→“表”结点,右击“dbo.studentInfo”文件夹,在弹出的快捷菜单中选择“编辑前200行”选项,然后在右窗格输入测试数据:输入学号信息并按回车键,该条记录将自动添加密码“666666”;将密码改为3位后,系统将提示出错,如右图所示。任务三
创建studentInfo表与scoreInfo表间的关系任务情境将14个表创建完成后,为保证参照完整性,还需要创建表与表之间的外键关系。任务实施步骤1打开SSMS后,单击左窗格资源管理器“CourseSelect”文件下的“数据库关系图”对象,在弹出的快捷菜单中选择“新建数据库关系图”选项,如图所示。步骤2弹出的“添加表”对话框,按住【Shift】键选中已经建立的14张表,然后单击“添加”按钮,如右图所示。步骤3默认情况下,这14张表在SSMS右窗格中将以缩略图,我们仅以创建studentInfo和scoreInfo表之间的外键关系为例进行讲解。选中scoreInfo表中的studentNumber列,然后参照图中所示拖拽鼠标至studentInfo表中的studentNumber列,当光标箭头旁边出现“+”号时,松开鼠标。步骤4如图3-21所示,系统将连续打开两个对话框,此时我们只能操作“表和列”对话框,确认建立关系的主外键中的表和列正确,单击“确定”按钮,接下来我们就可以操作“外键关系”对话框了。步骤5如左图所示,展开该对话框中“INSERT和UPDATE规范”结点,单击“更新规则”右侧的按钮,选择“级联”选项。按同样的方式设置“删除”规则也为“级联”。右图显示了创建完成的外键关系。知识拓展一、修改表结构及设置标识列二、使用T-SQL语句创建数据库和表三、数据完整性一、修改表结构及设置标识列修改表结构右击该表,在弹出的快捷菜单中选择“设计”选项,在SSMS右窗格中可进行修改。增加或删除列行列名和数据类型的更改默认情况下,若增加或删除列,应先删除表再重新建立。这里先更改数据库的默认设置。选择“工具”→“选项”菜单,在弹出的“选项”对话框左窗格中展开“Designers”结点,选择“表设计和数据库设计器”选项,去掉右窗格中“阻止保存要求重新创建表的更改”前的框选符号,单击“确定”按钮。接下来右击表中某列,在弹出的快捷菜单中选择“插入列”或“删除列”选项,然后编辑新添加的列,最后保存表即可,如图所示。设置标识列步骤1 在表结构可编辑的状态下,选中所需设置的列,展开下方“列属性”选项卡中“标识规范”结点,如图所示。步骤2将“标识规范”和“(是标识)”右侧单元格中数据设为“是”,然后填写“标识增量”和“标识种子”后,最后单击“保存”按钮。二、使用T-SQL语句创建数据库和表(一)T-SQL语句T-SQL语句分为四大类:数据定义语句(DDL)、数据操作语句(DML)、数据控制语句(DCL)和一些附加的语言元素。数据定义语句(DDL):用来定义和管理数据库对象。常用命令关键字包括CREATE、ALTER和DROP等。数据操作语句(DML):用于查询和更新数据。常用命令关键字包括SELECT、INSERT、UPDATE和DELETE等。数据控制语句(DCL):用于设置数据库操作对象的权限。常用命令关键字包括GRANT、REVOKE和DENY等。T-SQL语法约定(二)创建、修改及删除数据库语句创建数据库语句其中:<filespec>::={(NAME=logical_file_name,FILENAME='os_file_name'[,SIZE=size[KB|MB|GB|TB]][,MAXSIZE={max_size[KB|MB|GB|TB]|UNLIMITED}][,FILEGROWTH=growth_increment[KB|MB|GB|TB|%]])[,…n]}<filegroup>::={FILEGROUPfilegroup_name[DEFAULT]<filespec>[,…n]}CREATEDATABASEdatabase_name[ON[PRIMARY][<filespec>[,…n][,<filegroup>[,…n]][LOGON{<filespec>[,…n]}]][COLLATEcollation_name]]修改数据库语句
ALTERDATABASEdatabase{ADDFILE<filespec>[,...n][TOFILEGROUPfilegroup_name]|ADDLOGFILE<filespec>[,...n]|REMOVEFILElogical_file_name|ADDFILEGROUPfilegroup_name|REMOVEFILEGROUPfilegroup_name|MODIFYFILE<filespec>|MODIFYNAME=new_dbname|MODIFYFILEGROUPfilegroup_name{DEFAULT|NAME=new_filegroup_name}}[;]
删除数据库语句DROPDATABASEdatabase_name[,…n]database_name指要删除的数据库名称。使用该语句可以同时删除多个数据库,不同的数据库名称之间用“,”隔开。(三)创建、修改及删除表语句创建表语句CREATETABLE<表名>(<列名1><数据类型>[列选项],<列名1><数据类型>[列选项],[,…n]|<计算列列名>AS<计算表达式>[PERSISTED[NOTNULL]]…[表选项])修改表语句ALTERTABLE<表名>ALTERCOLUMN<列名><新数据类型>[NULL|NOTNULL]|ADD{ <列名><新数据类型><列选项> |<计算列列名>AS<计算表达式>[PERSISTED[NOTNULL]] |<表选项>}[,…n]|DROP{ COLUMN<列名> |<约束名>}|其他删除表语句DROPTABLE<表名>三、数据完整性数据完整性是指数据的正确性、有效性和一致性,它包括:域完整性实体完整性参照完整性用户自定义完整性0102030405新建班级新建作业成绩统计布置作业学生扫码做小提示:生成的班级二维码,放在下一页ppt中即可。放入二维码后,记得取消“隐藏幻灯片”哦~扫码布置本课作业↑↑↑扫码布置作业wenjingketang扫码填写问卷定制更实用的教学资源对课件有修改、优化建议平台使用遇到问题想免费使用平台、免费建课扫码加小旌好友为您提供专属服务哦SQLServer2008数据库设计
高级案例教程项目四共分为四个任务项目四
操作数据库数据熟悉插入、更新和删除数据语句掌握导入导出数据的方法理解系统中插入、更新和删除功能的实现方法理论指导一、操作数据库数据二、插入数据语句三、更新数据语句四、删除数据语句一、操作数据库数据对数据库中数据进行插入、更新和删除操作,DBA(数据库管理员)和用户实现的方式不同:通过SSMS或执行T-SQL语句都可以DBA:用户操作浏览器中呈现的页面,程序记录用户在前台界面中的操作与相关数据,通过执行T-SQL语句操作服务器端的数据。用户:通过SSMS界面添加、修改和删除数据的方法项目三任务二中已经介绍了添加数据的方法。
修改数据:进入表编辑状态后,直接在单元格中删除旧值,输入新数据后按【Enter】键即可。
删除数据:选中需要删除的记录,然后在其上单击鼠标右键,在弹出的快捷菜单中选择“删除”选项即可。二、插入数据语句INSERT语句INSERT[TOP(expression)[PERCENT]][INTO]<表名或视图名>[(<列名1>,<列名2>,<列名3>…)]{VALUES(<列值1>,<列值2>,<列值3>…)|<结果集>|DEFAULTVALUES}向studentInfo表中插入两条学生信息USECourseSelectGOINSERTINTOstudentInfoVALUES('0420011033','张三','04200110',DEFAULT,'女','党员',NULL,'1986-1-1',NULL,NULL),('0420011034','李四','04200110',DEFAULT,'男','团员',NULL,'1985-1-1',NULL,NULL)三、更新数据语句UPDATE[TOP(expression)[PERCENT]]<表名或视图名>SET列名={expression|DEFAULT|NULL}[,…n][WHERE<条件>][;]USECourseSelectGOUPDATEstudentInfoSETstudentPassword='0420011033'WHEREstudentNumber='0420011033'更新学生信息表中的数据四、删除数据语句DELETE[TOP(expression)[PERCENT]][FROM]<表名或视图名>[WHERE<条件>][;]删除89年入学的学生信息USECourseSelectGODELETEFROMstudentInfoWEHREstudentNumberLIKE'89%'任务实践任务一
后台导入导出数据任务二
在VS中搭建系统框架任务三实现“管理员”>“学生信息添加”功能任务四
实现“管理员”>“维护学生信息”功能任务一
后台导入导出数据任务情境系统运行需要基础数据,教务处以Excel表格形式保存着学生、教师信息和教学安排等内容。通过SQLServer2008的导入导出数据功能就可以高效地完成数据转移工作,不必一条一条地输入。进行数据导入时,可以将数据作为一个独立的表导入,也可以将数据追加到数据库现有的表中。同时,SQLServer2008提供对源数据的筛选机制,可以导入经过T-SQL语句筛选后符合条件的数据。任务一
后台导入导出数据任务情境系统运行需要基础数据,教务处以Excel表格形式保存着学生、教师信息和教学安排等内容。通过SQLServer2008的导入导出数据功能就可以高效地完成数据转移工作,不必一条一条地输入。进行数据导入时,可以将数据作为一个独立的表导入,也可以将数据追加到数据库现有的表中。同时,SQLServer2008提供对源数据的筛选机制,可以导入经过T-SQL语句筛选后符合条件的数据。任务实施步骤1 展开资源管理器中的树形结构,在“CourseSelect”数据库文件夹上单击鼠标右键,在弹出的快捷菜单中选择“任务”→“导入数据”选项,如图所示。步骤2 在弹出的“SQLServer导入导出向导”对话框中单击“下一步”按钮。步骤3 跟随向导进入“选择数据源”画面,如图所示。单击“数据源”右侧的按钮,根据导入文件类型选择数据源的类型,这里选择“MicrosoftExcel”。然后填写Excel文件的路径和版本。若导入的Excel表格中的首行是列的名称,则勾选“首行包含列名称”复选框,然后单击“下一步”按钮。步骤4 如图所示,在弹出的“选择目标”对话框选择目标数据源为MicrosoftOLEProviderforSQLServer,接着选择相应的服务器名称、身份验证方式和数据库名称,然后单击“下一步”按钮。步骤5在弹出的窗口中选择“复制一个或多个或视图的数据”选项,如图所示,然后单击“下一步”按钮。步骤6在弹出的“选择源表和源视图”对话框中选择源和目标,这里源表为Sheet1$,目标表为dbo.studentInfo,如图左所示。然后单击“编辑映射”按钮,弹出的“列映射”对话框如右图所示,将源表和目标表中的列一一对应后,单击“确定”按钮。步骤7在回到的对话框中单击“下一步”按钮,然后在弹出的“查看数据类型映射”画面中单击“下一步”按钮,如图所示。步骤8 在弹出的“保存并运行包”对话框中勾选“立即运行”复选框,然后单击“下一步”按钮,如图所示。步骤9接着打开如左图所示的“完成该向导”对话框,单击“完成”按钮,系统将开始执行复制数据的操作。执行成功后将弹出如右图所示的“执行成功”提示对话框,单击该对话框中的“关闭”按钮,即完成本次数据导入操作。步骤10 打开CourseSelect数据库,查看“studentInfo”表中的数据是否被正确导入。任务二
在VS中搭建系统框架任务情境在实现系统的插入、更新和删除数据功能之前,我们首先要在VisualStudio中搭建系统框架并完成前台页面的设计工作。任务实施步骤1 启动VisualStudio2010,选择“文件”→“新建”→“网站”菜单,单击“新建网站”对话框左窗格中“VisualC#”选项,选择右窗格中的“ASP.NET网站”选项,并填写网站存放的位置,如图所示。步骤2 单击“确定”按钮,VS右窗格中将显示站点文件夹的内容,左窗格中显示了站点默认文件Default.aspx的内容,如图4-12所示。步骤3 读者可以根据自己的需要添加新的文件,这里我们需要在根目录下添加App_Code文件夹来存放公共代码。如图所示,右击解决方案的根目录,在弹出的快捷菜单中选择“添加ASP.NET文件夹”→“App_Code”选项。步骤4 为了方便文件的管理和调用,这里我们在根节点下添加admin、student和teacher文件夹存储相应类型用户的页面,且在admin文件夹中再新建一个Image文件夹以存放学生和老师的照片;添加images文件夹用于存储页面中使用的公共背景图片。添加这些文件夹时,选择右键菜单中的“新建文件夹”选项即可。步骤5 系统的登录页面login.aspx、修改密码页面ChangePassword.aspx和首页页面desk.aspx是用户的公共页面,可以直接添加在根目录下。要添加这些文件,可右击站点根文件夹,选择右键菜单中的“添加新项”选项,然后在弹出的“添加新项”对话框中选择“VisualC#”模板下的“Web窗体”。填写名称后,勾选“将代码放在单独的文件中”复选框,单击“添加”按钮,如图所示。步骤6 根据规划,在各文件夹中添加页面,作者搭建的系统框架如图所示。页面规划结束后,右击App_Data文件夹,在弹出的快捷菜单中选择“添加现有项”选项,将项目之前建好的CourseSelect数据库添加到此文件夹中。步骤7 对于页面设计方面的知识,这里不再进行介绍,读者可参照资料包中的系统源码。任务三实现“管理员”>“学生信息添加”功能任务情境教务处工作人员会经常需要添加或删除一些学生信息。下面我们先来看看如何利用程序来实现添加学生信息的功能。步骤1 打开admin文件夹中用于添加学生信息的页面(本系统中为studentInfoAdd.aspx),开始前台页面的设计工作,通过单击.aspx页面下方的按钮可以切换工作模式。在设计模式下,单击VS工具栏中的“工具箱”按钮,在打开的工具箱中选择合适的组件,将其直接拖拽到.aspx页面中,并放在合适的位置。对于各组件的使用方法这里不再进行详细讲述,读者可参照页面设计类的相关书籍,这里我们直接给出设计效果,如图所示。步骤2 页面设计完成后,开始在studentInfoAdd.aspx.cs文件中编码以实现页面的功能。这里只给出关键代码。单击“上传”按钮后将执行代码【4-1】。(代码略)步骤3 用户填写学生信息后,单击“添加”按钮将执行代码【4-2】,如下所示。代码【4-2】实现学生信息添加功能。protectedvoidBtn_Add_Click(objectsender,EventArgse){ /*判断用户是否填写学生学号和姓名*/ if(this.StudentNumber.Text=="") {Response.Write("<script>alert('请输入学生学号!');</script>");return;}if(this.StudentName.Text==""){Response.Write("<script>alert('请输入学生姓名!');</script>");return;}/*获取用户填写信息*/ stringstudentNumber=this.StudentNumber.Text; stringstudentName=this.StudentName.Text; stringstudentClassNumber=studentNumber.Substring(0,8);/*直接将学号的前8位存为班级编号*/stringstudentPassword=this.StudentPassword.Text;stringstudentSex=this.StudentSex.SelectedValue;stringstudentState=this.StudentState.SelectedValue;stringstudentPhoto=this.PhotoAddress.Text;DateTimestudentBirthday=Convert.ToDateTime(this.StudentBirthday.Text);stringstudentAddress=this.StudentAddress.Text;stringstudentMemo=this.StudentMemo.Text;/*插入学生信息的SQL语句*/stringsqlstr="insertintostudentInfovalues('"+studentNumber+"','"+studentName+"','"+studentClassNumber+"','"+studentPassword+"','"+studentSex+"','"+studentState+"','"+studentPhoto+"','"+studentBirthday+"','"+studentAddress+"','"+studentMemo+"')";字符串sqlstr存储插入学生信息的语句。其中,字符串要由""括起,各字符串间通过“+”号连接。另外,SQL语句中的字符串要由'括起。/*创建Connection对象*/MySqlConnectiondbObj=newMySqlConnection();SqlConnectionsqlcon=dbObj.GetConnection();SqlCommandsqlcom=newSqlCommand(sqlstr,sqlcon);/*创建Command对象*/sqlcon.Open(); /*打开数据库连接*/sqlcom.ExecuteNonQuery(); /*执行SQL语句*/sqlcon.Close(); /*关闭数据库连接*/Response.Write("<script>alert('学生信息添加成功!');location.href='studentInfoAdd.aspx';</script>");}步骤4 单击“取消”按钮后,重新载入添加学生信息的页面,执行代码如下所示。protectedvoidBtn_Cancle_Click(objectsender,EventArgse){Response.Redirect("studentInfoAdd.aspx");}步骤5 保存编码后的文件,在浏览器中查看studentInfoAdd.aspx页面,测试页面功能并在数据库中查看数据是否正确添加。任务四实现“管理员”>“维护学生信息”功能任务情境有时学生的信息会发生更改,需要管理员进行更新或删除。系统中单击“维护学生信息”按钮后,页面右侧将链接studentInfoManage.aspx页面,在此页面中可以删除学生信息,单击“进入”可链接至studentInfoDetail.aspx页面进行学生信息的更新。任务实施步骤1 studentInfoManage.aspx的页面效果如图所示,可通过添加GridView控件并绑定数据库数据的方式实现,在项目五任务二中将进行详细介绍。步骤2 单击“删除”按钮后执行代码【4-3】,如下所示。protectedvoidBtn_Delete_Click(objectsender,EventArgse){intselectCount=0;
//要删除的任务总数stringstudentNumbers=""; //保存要删除的学号信息集合stringstudentNumber; //保存某行记录的学号foreach(GridViewRowgrinGridView1.Rows){CheckBoxchk=(CheckBox)gr.Cells[0].FindControl("CB_Select");if(chk.Checked) //如果要删除该学生信息{studentNumber=GridView1.DataKeys[gr.RowIndex].Values[0].ToString();//取得要删除的记录编号if(0==selectCount)studentNumbers="'"+studentNumber+"'";elsestudentNumbers=studentNumbers+",'"+studentNumber+"'";selectCount++;}}if(0==selectCount)//如果用户没有选择记录Response.Write("<script>alert('对不起,你没有选择记录!');</script>");Else//如果选择了记录就删除学生的相关信息{/*删除学生信息T-SQL语句*/stringsqlstr="deletefromstudentInfowherestudentNumberin("+studentNumbers+")";MySqlConnectiondbObj=newMySqlConnection();SqlConnectionsqlcon=dbObj.GetConnection();SqlCommandsqlcom=newSqlCommand(sqlstr,sqlcon);sqlcon.Open();sqlcom.ExecuteNonQuery();sqlcon.Close();Response.Write("<script>alert('信息删除成功!');location.href='studentInfoManage.aspx';</script>");}}步骤3单击“进入”文字链,将跳转至studentInfoDetail.aspx页面,如图所示。步骤4单击“更新”按钮后执行代码【4-4】,如下所示。protectedvoidBtn_Update_Click(objectsender,EventArgse){stringstudentAddress=this.StudentAddress.Text;DateTimestudentBirthday=Convert.ToDateTime(this.StudentBirthday.Text);stringstudentMemo=this.StudentMemo.Text;stringstudentName=this.StudentName.Text;stringstudentPassword=this.StudentPassword.Text;stringstudentPhoto=this.PhotoAddress.Text;stringstudentSex=this.StudentSex.SelectedValue;stringstudentState=this.StudentState.SelectedValue;stringstudentNumber=Request.QueryString["studentNumber"];/*编写更新学生信息的SQL语句*/stringsqlstr="updatestudentInfosetstudentName='"+studentName+"',studentPassword='"+studentPassword+"',studentSex='"+studentSex+"',studentState='"+studentState+"',studentPhoto='"+studentPhoto+"',studentBirthday='"+studentBirthday+"',studentAddress='"+studentAddress+"',studentMemo='"+studentMemo+"'wherestudentNumber='"+studentNumber+"'";MySqlConnectiondbObj=newMySqlConnection();SqlConnectionsqlcon=dbObj.GetConnection();SqlCommandsqlcom=newSqlCommand(sqlstr,sqlcon);sqlcon.Open();sqlcom.ExecuteNonQuery();sqlcon.Close();Response.Write("<script>alert('学生信息更新成功!');location.href='studentInfoManage.aspx';</script>");}知识拓展通过bcp命令进行数据导入bcp是SQLServer中负责导入导出数据的一个命令行工具,并且能以并行的方式高效地导入导出大批量的数据。除可以在控制台执行外,还可以通过调用SQLServer系统存储过程xp_cmdshell以执行T-SQL语句的方式实现。语法格式如下:bcp{[[数据库名.][拥有者].]{表名|视图名}|"查询语句"}{in|out|queryout|format}数据文件的完整路径[-c][-t间隔符][-T][-S服务器名[\实例名]][-U登录id][-P密码]将文本文件“e:\学生信息表.txt”导入到“XSCJ”数据库的“学生信息表”中。bcpXSCJ.dbo.学生信息表ine:\学生信息表.txt-t"|"-T-c0102030405新建班级新建作业成绩统计布置作业学生扫码做小提示:生成的班级二维码,放在下一页ppt中即可。放入二维码后,记得取消“隐藏幻灯片”哦~扫码布置本课作业↑↑↑扫码布置作业wenjingketang扫码填写问卷定制更实用的教学资源对课件有修改、优化建议平台使用遇到问题想免费使用平台、免费建课扫码加小旌好友为您提供专属服务哦SQLServer2008数据库设计
高级案例教程项目五共分为四个任务项目五
查询数据库数据熟悉SELECT语句结构,掌握其编写方法掌握视图的创建方法掌握索引的创建方法理解系统中查询功能的实现方式理论指导一、SELECT语句二、视图三、索引一、SELECT语句SELECT语句用于从表或视图中选取数据,其语句格式如下:SELECT[ALL|DISTINCT]
[TOPexpression[PERCENT]]
<select_list>
[INTOnew_table]
[FROM{<table_source>}[,...n]]
[WHERE<search_condition>]
[GROUPBY[ALL]group_by_expression[,...n]]
[HAVING<search_condition>][ORDERBYorder_expression[ASC|DESC]]
[COMPUTE
{{AVG|COUNT|MAX|MIN|SUM}(expression)}[,...n]
[BYexpression[,...n]]](一)SELECT语句的基本用法1.查询表中的全部列SELECT*FROM学生信息表2.查询指定的列SELECT姓名,职称FROM教师信息表3.查询结果显示为经过计算的列值SELECT学号,姓名,year(getdate())-year(出生日期)FROM学生信息表4.改变查询结果中的列标题SELECT学号,姓名,year(getdate())-year(出生日期)AS年龄FROM学生信息表5.查询结果显示为经过逻辑判断的值SELECT学号,课程号,成绩=CASE WHEN成绩ISNULLTHEN'未参加考试'WHEN成绩<60THEN'不及格'WHEN成绩>=60AND成绩<=80THEN'及格'ELSE'优秀'ENDFROM学生成绩表6.指定查询结果集中记录的显示范围控制结果集中记录显示范围的语句格式如下:SELECT[ALL|DISTINCT]
[TOPexpression[PERCENT]]
<select_list>SELECTDISTINCT学号FROM学生成绩表SELECTDISTINCTTOP10学号FROM学生成绩表(二)WHERE子句条件查询1.比较运算<表达式>{比较运算符}<表达式>SELECT学号,课程号FROM学生成绩表WHERE成绩<602.多重条件当WHERE子句中需要添加多个条件时,可以通过连接词NOT、AND、OR进行条件的组合。SELECT教师编号,姓名FROM教师信息表WHERE性别='女'ANDyear(getdate())-year(出生日期)>453.确定范围<表达式>[NOT]BETWEEN<表达式1>AND<表达式2>SELECT学号,姓名FROM学生信息表WHEREyear(出生日期)BETWEENyear(getdate())-22ANDyear(getdate())-204.确定集合使用IN关键字可以指定一个值表,值表中列出所有可能的值,当与值表中的任一个值匹配时,即返回TRUE,否则返回FALSE;NOTIN关键字的含义正好相反。<表达式>[NOT]IN(<表达式>[,…])SELECT教师编号,姓名,职称FROM教师信息表WHERE职称IN('教授','副教授')5.空值查询<表达式>IS[NOT]NULLSELECT课程号,课程名FROM课程信息表WHERE教师编号ISNULL6.字符匹配<列名>[NOT]LIKE<字符串常量>SELECT学号,姓名FROM学生信息表WHERE姓名LIKE'王__'AND学号LIKE'002[0-9]'SELECT*FROM课程信息表WHERE课程名LIKE'计算机\_%信_'ESCAPE'\'7.子查询当一个查询是另一个查询的条件时,称之为子查询。子查询和外部查询之间通过WHERE和连接谓词相连,连接谓词中常见的运算符如表所示。使用IN的子查询确定外部查询中指定列的值是否与子查询列表中的值匹配。WHERE表达式[NOT]IN(子查询)SELECT姓名FROM教师信息表WHERE教师编号IN(SELECT教师编号FROM课程信息表WHERE课程号='005')使用比较运算符及ANY或ALL的子查询(1)单独使用运算符的子查询WHERE表达式比较运算符(子查询)(2)使用ANY或ALL修饰的比较运算符的子查询使用EXISTS的子查询EXISTS子查询用于确定外部查询中指定行是否存在于子查询列表中。使用EXISTS的子查询实际上不产生任何数据,只返回TRUE或FALSE值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西晋中学市榆次区重点达标名校2026年初三下第二次月考数学试题含解析
- 山东省潍坊联考2026年初三下学期期初测试物理试题含解析
- 湖北省武汉市外国语校2026届初三下学期阶段性测评(期中)语文试题含解析
- 四川省高县2026届初三中考冲刺第二次考试英语试题试卷含解析
- 江西省九江市九江有色金属冶炼厂职工子弟校2026年中考适应性月考卷(四)英语试题含解析
- 江苏省无锡市锡山区天一实验校2026届初三大练习(一)英语试题含解析
- 挖机出租合同范本
- 急性昏迷应急预案(3篇)
- 第三单元 勇担社会责任
- 610 皮带式给料机
- 六年级下册语文试题-“快乐读书吧”练习题|部编版(含答案)
- 第三方社会稳定风险评估技术规范
- 道德经中德文对照版
- 血液透析的医疗质量管理与持续改进
- 抖音快手短视频创业项目融资商业计划书模板(完整版)
- keba教程科控编程手册
- 《安徒生童话》推荐导读课教学设计
- 《机械制图(第六版)》教案(完整资料)
- 猪常见重大疫病防控
- 苏教版六年级科学下册单元测试卷及答案(全册)
- 火电工程项目建设程序和内容课件
评论
0/150
提交评论