已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 数据库的实现 回顾 在需求分析阶段 设计数据库的一般步骤为 实体的映射关系有哪些 请简要说明三大范式的含义 目标 掌握建库的SQL语句掌握建表的SQL语句掌握加约束的SQL语句掌握创建安全帐户的SQL语句 回顾数据库的基础知识 数据库文件的组成 主数据文件 mdf次要数据文件 ndf日志文件 ldf数据库的其他属性 文件存放位置 分配的初始空间 属于哪个文件组文件增长 可以按百分比或实际大小指定增长速度文件容量设置 可以指定文件增长的最大值或不受限 创建数据库 CREATEDATABASE数据库名ON PRIMARY n LOGON n T SQL创建数据库的语法 主文件组 可选参数 默认 创建数据库示例1 CREATEDATABASEstuDBONPRIMARY 默认就属于PRIMARY主文件组 可省略 NAME stuDB data 主数据文件的逻辑名FILENAME D project stuDB data mdf 主数据文件的物理名SIZE 5mb 主数据文件初始大小MAXSIZE 100mb 主数据文件增长的最大值FILEGROWTH 15 主数据文件的增长率 LOGON NAME stuDB log FILENAME D project stuDB log ldf SIZE 2mb FILEGROWTH 1MB GO 数据文件的具体描述 日志文件的具体描述 演示创建数据库1 一个数据文件和一个日志文件 创建数据库示例2 CREATEDATABASEemployeesON 主数据文件的具体描述 NAME employee1 FILENAME D project employee1 Data mdf SIZE 10 FILEGROWTH 10 次要数据文件的具体描述 NAME employee2 FILENAME D project employee2 Data ndf SIZE 20 MAXSIZE 100 FILEGROWTH 1 LOGON 日志文件1的具体描述 NAME employeelog1 FILENAME D project employeelog1 Log ldf SIZE 10 FILEGROWTH 1 日志文件2的具体描述 NAME employeelog2 FILENAME D project employeelog2 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约束 要求年龄只能在15 40岁之间 添加外键约束 主表stuInfo和从表stuMarks建立关系 关联字段为stuNo 添加约束示例 演示 查看约束结果 删除约束 如果错误地添加了约束 我们还可以删除约束删除约束的语法 ALTERTABLE表名DROPCONSTRAINT约束名 例如 删除stuInfo表中地址默认约束ALTERTABLEstuInfoDROPCONSTRAINTDF stuAddress 回顾SQLServer的安全模型 登录方式回顾 登录验证有两种方式 SQL身份验证 适合于非windows平台的用户或Internet用户 需要提供帐户和密码Windows身份验证 适合于windows平台用户 不需要提供密码 和windows集成验证登录帐户相应有两种 SQL帐户和Windows帐户 创建登录 添加Windows登录帐户EXECsp grantlogin jbtraining S26301 添加SQL登录帐户EXECsp addlogin zhangsan 1234 演示创建登录 EXEC表示调用存储过程 存储过程类似C语言的函数 内置的系统管理员帐户sa密码默认为空 建议修改密码 域名 用户名 用户名 密码 创建登录 创建数据库用户 创建数据库用户需要调用系统存储过程sp grantdbaccess 其用法为 EXECsp grantdbaccess 登录帐户名 数据库用户名 其中 数据库用户 为可选参数 默认为登录帐户 即数据库用户默认和登录帐户同名 USEstuDBGOEXECsp grantdbaccess jbtraining S26301 S26301DBUser EXECsp grantdbaccess zhangsan zhangsanDBUser 在stuDB数据库中添加两个用户 创建数据库用户 系统内置的数据库用户 dbo用户表示数据库的所有者 DBOwner 无法删除dbo用户 此用户始终出现在每个数据库中guest用户适用于没有数据库用户的登录帐号访问每个数据库可有也可删除 向数据库用户授权 deleteFROMEmployees SELECT FROMEmployees 权限的类型 授权的语法为 GRANT权限 ON表名 TO数据库用户 USEstuDBGO 为zhangsanDBUser分配对表stuInfo的select insert update权限 GRANTselect insert updateONstuInfoTOzhangsanDBUser 为S26301DBUser分配建表的权限 GRANTcreatetableTOS26301
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年住宅销售合同样本
- 2024年农产品电商平台服务框架合同
- 2024年合作供应商:护栏选购合同
- 影视传媒艺人合同模板
- 劳动合同模板个体
- 承包酒席合同模板
- 业务提成合同模板模板
- 2024年人工智能医疗诊断系统开发合同
- 供销保底销售合同模板
- 团队境外旅游合同模板
- 网站服务合同域名续费与维护
- 单喇叭互通立交设计主要技术问题分析
- 实验幼儿园陪餐记录表
- 灯具材料样本确认单
- 《钳工技能训练》实训教案
- 新加坡科技创新体系架构及对我市科技发展的启示
- 中国卡丁车锦标赛暨中国青少年卡丁车锦标赛【比赛规则】
- 安全教育培训记录运输车辆安全技术要求
- Minitab操作教程
- 岩浆矿床实习报告(四川攀枝花钒钛磁铁矿矿床)
- 燃气管道-流量-流速-口径计算公式
评论
0/150
提交评论