核心考点数据表创建、主键、自增列、数据类型、非空约束、外键约束、表结构删除判断代码说明修正原代码细微规范问题、补全外键关系、保留老师原版所有注释逻辑可直接执行一、切换数据库--指定使用 StudentDataBase 数据库 use StudentDataBase go二、判断并删除已存在学生表--如果系统表中存在Students表先删除防止重复创建报错 if exists(select * from sysobjects where name Students) drop table Students go知识点sysobjects是SQL系统表存储当前库所有表、视图、存储过程对象信息三、创建学生表 Students完整版逐列释义--创建学生表 create table Students ( --学生编号int整型、自增列 --identity(起始值,递增量) 从1000开始每次1 StudentId int identity(1000,1), --学生姓名可变长度字符最大20字符不能为空 --varchar动态字符节省空间一个汉字占2个字符 StudentName varchar(20) not null, --性别固定长度字符固定占2位不能为空 --char固定长度内容不足自动补空格 Gernder char(2) not null, --出生日期日期时间类型 Birthday datetime not null, --身份证号数值类型共18位、0位小数纯数字身份证适配 StudentIDCard numeric(18,0) not null, --年龄整型、允许为空 Age int, --手机号动态字符允许为空 Phone varchar(20), --学生地址动态长字符最大500字符 StudentAddress varchar(500), --班级编号外键字段关联班级表不能为空 ClassId int not null ) go四、创建班级表 Class主键表--创建班级主表主键表 create table Class ( --班级编号本表主键唯一标识、非空、不重复 ClassId int primary key, --班级名称可变字符不能为空 ClassName varchar(20) not null ) go五、补全外键约束考试核心原代码缺失外键概念从表(Students)的ClassId 关联 主表(Class)的ClassId保证数据完整性防止乱填班级编号--给学生表添加外键约束 --学生表ClassId 引用 班级表ClassId alter table Students add constraint FK_Students_ClassId foreign key (ClassId) references Class(ClassId) go约束命名规范FK_从表名_字段名可读性最强考试标准写法六、数据类型考点总结背诵int整型存数字、年龄、编号char(n)固定长度字符长度固定适合性别、固定位数编码varchar(n)可变长度字符节省空间适合姓名、地址、手机号datetime标准日期时间类型存年月日时分秒numeric(总长度,小数位数)精准数值本例 numeric(18,0) 18位纯数字七、约束知识点汇总identity(a,b)自增约束只插入不赋值数据库自动生成编号not null非空约束该字段必须赋值不允许空值primary key主键约束唯一、非空、数据表唯一标识foreign key外键约束关联两张表保证数据一致性八、表关系说明一对多关系 一个班级(Class) 包含 多个学生(Students) 班级表主键表一 学生表外键表/从表多九、原代码问题修正说明原代码缺少外键约束只定义了ClassId字段未建立关联已补全标准外键语句StudentId自增列未设置主键可自行拓展考试常用字段命名、类型完全保留你课堂原版零改动SQL 完整创建数据库代码主文件次文件日志文件考试重点数据库删除判断、主文件/次要数据文件/日志文件区别、数据库四大属性、文件后缀名运行前提必须提前手动创建文件夹D:\SQLServe_DB\否则路径不存在直接报错代码完整性先删后建、双数据文件单日志文件标准教学满分格式一、切换系统数据库 master--操作数据库创建/删除必须在master系统库下执行 use master go知识点用户自定义数据库的创建、删除、分离、附加操作必须依托 master 系统数据库不能在自建库中操作。二、判断数据库存在并删除--sysdatabases系统视图记录当前服务器所有数据库 --判断是否存在名为 StudentDataBase 的数据库存在则删除 if exists (select * from sysdatabases where name StudentDataBase) drop database StudentDataBase go核心关键字释义背诵exists判断查询结果是否存在数据存在返回truesysdatabases系统数据库视图存储本机所有数据库信息drop database彻底删除数据库包含数据文件和日志文件三、完整创建数据库主文件次文件日志文件--创建自定义数据库 StudentDataBase create database StudentDataBase --指定配置【主数据文件】 on primary ( name StudentDB, --主文件逻辑名称数据库内部调用名 filename D:\SQLServe_DB\StudentDB.mdf, --主文件物理路径 mdf后缀 size 10MB, --初始文件大小 filegrowth5MB --文件自动增长增量 ), --配置【次要数据文件】 ( name StudentDB_nd, filename D:\SQLServe_DB\StudentDB_nd.ndf, --次要数据文件 ndf后缀 size 10MB, filegrowth5MB ) --配置【日志文件】 log on ( name StudentDB_log, filename D:\SQLServe_DB\StudentDB_log.ldf, --日志文件 ldf后缀 size 10MB, filegrowth5MB ) go四、数据库三大文件详解必考文件类型后缀数量作用主数据文件.mdf有且仅有一个存储所有数据表结构、核心数据、数据库启动信息次要数据文件.ndf0个/多个分担主文件压力存储额外数据扩容使用日志文件.ldf至少一个记录所有增删改操作日志用于数据恢复、回滚五、数据库文件四大配置属性name逻辑文件名SQL内部识别名称无需和物理文件名一致filename物理绝对路径磁盘真实存储位置size文件初始大小filegrowth文件自动增长量存储空间不足时自动扩容六、代码易错点改错必考路径必须提前创建D:\SQLServe_DB 文件夹必须手动建好SQL不会自动建文件夹路径不存在直接报错go位置不能乱改on primary 和 log on 属于同一个创建语句整体go必须写在最后后缀名不能写错mdf/ndf/ldf 三种后缀不能混用删除数据库必须在master库下执行否则报错七、拓展知识点分离与附加课堂预留考点7.1 分离数据库将数据库从SQL服务器列表移除保留磁盘mdf/ndf/ldf文件用于迁移数据库--分离语法 exec sp_detach_db StudentDataBase go7.2 附加数据库将磁盘中存在的数据库文件重新挂载到SQL服务器中--附加语法了解 create database StudentDataBase on primary (filenameD:\SQLServe_DB\StudentDB.mdf) log on (filenameD:\SQLServe_DB\StudentDB_log.ldf) for attach go八、简答题背诵总结1、数据库三种文件分别是什么主数据文件(.mdf)、次要数据文件(.ndf)、日志文件(.ldf)2、为什么创建数据库要切换mastermaster是系统核心数据库负责管理所有用户数据库数据库级操作必须在master中执行。3、filegrowth作用设置数据库文件自动增长大小磁盘空间不足时自动扩容避免数据写入失败。