已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章,数据库的实现,回顾,在需求分析阶段,设计数据库的一般步骤为?实体的映射关系有哪些?请简要说明三大范式的含义?,目标,掌握建库的SQL语句掌握建表的SQL语句掌握加约束的SQL语句掌握创建安全帐户的SQL语句,回顾数据库的基础知识,数据库文件的组成:主数据文件:*.mdf次要数据文件:*.ndf日志文件:*.ldf数据库的其他属性:文件存放位置,分配的初始空间,属于哪个文件组文件增长:可以按百分比或实际大小指定增长速度文件容量设置:可以指定文件增长的最大值或不受限,创建数据库,CREATEDATABASE数据库名ONPRIMARY(,n)LOGON(,n),T-SQL创建数据库的语法:,主文件组,可选参数,默认,创建数据库示例1,CREATEDATABASEstuDBONPRIMARY-默认就属于PRIMARY主文件组,可省略(NAME=stuDB_data,-主数据文件的逻辑名FILENAME=D:projectstuDB_data.mdf,-主数据文件的物理名SIZE=5mb,-主数据文件初始大小MAXSIZE=100mb,-主数据文件增长的最大值FILEGROWTH=15%-主数据文件的增长率)LOGON(NAME=stuDB_log,FILENAME=D:projectstuDB_log.ldf,SIZE=2mb,FILEGROWTH=1MB)GO,数据文件的具体描述,日志文件的具体描述,演示创建数据库1:一个数据文件和一个日志文件,创建数据库示例2,CREATEDATABASEemployeesON(/*-主数据文件的具体描述-*/NAME=employee1,FILENAME=D:projectemployee1_Data.mdf,SIZE=10,FILEGROWTH=10%),(/*-次要数据文件的具体描述-*/NAME=employee2,FILENAME=D:projectemployee2_Data.ndf,SIZE=20,MAXSIZE=100,FILEGROWTH=1),LOGON(/*-日志文件1的具体描述-*/NAME=employeelog1,FILENAME=D:projectemployeelog1_Log.ldf,SIZE=10,FILEGROWTH=1),(/*-日志文件2的具体描述-*/NAME=employeelog2,FILENAME=D:projectemployeelog2_Log.ldf,SIZE=10,MAXSIZE=50,FILEGROWTH=1)GO,演示创建数据库2:多个数据文件和多个日志文件,删除数据库,如果SQLServer中已存在数据库stuDB,运行下列语句,会出现什么问题?,CREATEDATABASEstuDBON(.)LOGON(.)GO,演示:再次运行示例1,USEmaster-设置当前数据库为master,以便访问sysdatabases表GOIFEXISTS(SELECT*FROMsysdatabasesWHEREname=stuDB)DROPDATABASEstuDBCREATEDATABASEstuDBON(.)LOGON()GO,删除数据库,删除数据库的语法:,DROPDATABASE数据库名,EXISTS()语句:检测是否存在stuDB数据库如果存在stuDB数据库,则删除,回顾表的基础知识,建表的基本步骤:确定表中有哪些列确定每列的数据类型给表添加各种约束创建各表之间的关系SQLServer中的数据类型,整型数据:intsmallint浮点数据:floatnumeric,字符数据固定长度:char(6)可变长度:varchar(10)unicode编码:nchar(10),布尔数据(真/假)bit:1/0,货币数据money,日期数据datetime,创建表,建表的语法,CREATETABLE表名(字段1数据类型列的特征,字段2数据类型列的特征,.),列的特征:包括该列是是否为空(NULL)、是否是标识列(自动编号)、是否有默认值、是否为主键等。,建表示例1,USEstuDB-将当前数据库设置为stuDBGOCREATETABLEstuInfo/*-创建学员信息表-*/(stuNameVARCHAR(20)NOTNULL,-姓名,非空(必填)stuNoCHAR(6)NOTNULL,-学号,非空(必填)stuAgeINTNOTNULL,-年龄,INT类型默认为4个字节stuIDNUMERIC(18,0),-身份证号stuSeatSMALLINTIDENTITY(1,1),-座位号,自动编号stuAddressTEXT-住址,允许为空,即可选输入)GO,NUMERIC(18,0)代表18位数字,小数位数为0,演示:创建学员信息表stuInfo,IDENTITY(起始值,递增量),建表示例2,CREATETABLEstuMarks(ExamNoCHAR(7)NOTNULL,-考号stuNoCHAR(6)NOTNULL,-学号writtenExamINTNOTNULL,-笔试成绩LabExamINTNOTNULL-机试成绩)GO,演示:创建学员成绩表stuMarks,删除表,如果当前数据库中已存在stuInfo表,再次创建时系统将提示出错。如何解决呢?,删除表,删除表的语法:,DROPTABLE表名,USEstuDB-将当前数据库设置为stuDB,以便在stuDB数据库中建表GOIFEXISTS(SELECT*FROMsysobjectsWHEREname=stuInfo)DROPTABLEstuInfoCREATETABLEstuInfo/*-创建学员信息表-*/(.)GO,回顾SQLServer的约束,约束的目的:确保表中数据的完整型常用的约束类型:主键约束(PrimaryKeyConstraint):要求主键列数据唯一,并且不允许为空唯一约束(UniqueConstraint):要求该列唯一,允许为空,但只能出现一个空值。检查约束(CheckConstraint):某列取值范围限制、格式限制等,如有关年龄的约束默认约束(DefaultConstraint):某列的默认值,如我们的男性学员较多,性别默认为“男”外键约束(ForeignKeyConstraint):用于两表间建立关系,需要指定引用主表的那列,添加约束,添加约束的语法:,ALTERTABLE表名ADDCONSTRAINT约束名约束类型具体的约束说明,约束名的取名规则推荐采用:约束类型_约束字段主键(PrimaryKey)约束:如PK_stuNo唯一(UniqueKey)约束:如UQ_stuID默认(DefaultKey)约束:如DF_stuAddress检查(CheckKey)约束:如CK_stuAge外键(ForeignKey)约束:如FK_stuNo,添加约束示例,ALTERTABLEstuInfoADDCONSTRAINTPK_stuNoPRIMARYKEY(stuNo)ALTERTABLEstuInfoADDCONSTRAINTUQ_stuIDUNIQUE(stuID)ALTERTABLEstuInfoADDCONSTRAINTDF_stuAddressDEFAULT(地址不详)FORstuAddressALTERTABLEstuInfoADDCONSTRAINTCK_stuAgeCHECK(stuAgeBETWEEN15AND40)ALTERTABLEstuMarksADDCONSTRAINTFK_stuNoFOREIGNKEY(stuNo)REFERENCESstuInfo(stuNo)GO,演示:给学员信息表stuInfo添加约束,添加主键约束(stuNo作为主键),添加唯一约束(因为每人的身份证号全国唯一),添加默认约束(如果地址不填,默认为“地址不详”),添加检查check约束,要求年龄只能在1540岁之间,添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo),添加约束示例,演示:查看约束结果,删除约束,如果错误地添加了约束,我们还可以删除约束删除约束的语法,ALTERTABLE表名DROPCONSTRAINT约束名,例如:删除stuInfo表中地址默认约束ALTERTABLEstuInfoDROPCONSTRAINTDF_stuAddress,回顾SQLServer的安全模型,登录方式回顾,登录验证有两种方式:SQL身份验证:适合于非windows平台的用户或Internet用户,需要提供帐户和密码Windows身份验证:适合于windows平台用户,不需要提供密码,和windows集成验证登录帐户相应有两种:SQL帐户和Windows帐户,创建登录,添加Windows登录帐户EXECsp_grantloginjbtrainingS26301添加SQL登录帐户EXECsp_addloginzhangsan,1234,演示创建登录,EXEC表示调用存储过程,存储过程类似C语言的函数,内置的系统管理员帐户sa密码默认为空,建议修改密码,域名用户名,用户名,密码,创建登录,创建数据库用户,创建数据库用户需要调用系统存储过程sp_grantdbaccess,其用法为:,EXECsp_grantdbaccess登录帐户名,数据库用户名其中,“数据库用户“为可选参数,默认为登录帐户,即数据库用户默认和登录帐户同名。,USEstuDBGOEXECsp_grantdbaccessjbtrainingS26301,S26301DBUserEXECsp_grantdbaccesszhangsan,zhangsanDBUser,在stuDB数据库中添加两个用户,创建数据库用户,系统内置的数据库用户,dbo用户表示数据库的所有者(DBOwner)无法删除dbo用户,此用户始终出现在每个数据库中guest用户适用于没有数据库用户的登录帐号访问每个数据库可有也可删除,向数据库用户授权,deleteFROMEmployees,SELECT*FROMEmployees,权限的类型,授权的语法为:GRANT权限ON表名TO数据库用户,USEstuDBGO/*-为zhangsanDBUser分配对表stuInfo的select,insert,update权限-*/GRANTselect,insert,updateONstuInfoTOzhangsanDBUser/*-为S26301DBUser分配建表的权限-*/GRANTcreatetableTOS2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区科普共建协议书
- 社区房产协议书模板
- 磷化前处理合同范本
- 电泳质量协议书范本
- 民族成份变更申请书模板
- 石子场加工合同范本
- 租赁合同内保密协议
- 笔记本制作合同范本
- 租机械押金合同范本
- 石廊亭购销合同范本
- 催泪喷射器的使用课件
- 2025江苏海安市城建开发投资集团有限公司招聘笔试及综合笔试历年参考题库附带答案详解
- 印刷周期管理办法
- 2025年中国北京市幼儿园行业市场前景预测及投资价值评估分析报告
- BSCI社会责任验厂培训课件
- 国家开放大学《园林树木学》形考任务1-4参考答案
- (完整)公共基础知识题库及答案
- LY/T 3419-2024自然教育评估规范
- 2025年读者出版传媒股份有限公司招聘笔试参考题库含答案解析
- Unit5 we're family单元整体(说课稿)-2024-2025学年外研版(三起)(2024)英语三年级上册
- 创伤性凝血病救治
评论
0/150
提交评论