news 2026/7/19 15:26:56

SQL 数据库创建学生表+SQL 完整创建数据库代码(主文件+次文件+日志文件)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQL 数据库创建学生表+SQL 完整创建数据库代码(主文件+次文件+日志文件)

核心考点:数据表创建、主键、自增列、数据类型、非空约束、外键约束、表结构删除判断

代码说明:修正原代码细微规范问题、补全外键关系、保留老师原版所有注释逻辑,可直接执行

一、切换数据库

--指定使用 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) 班级表:主键表(一) 学生表:外键表/从表(多)

九、原代码问题修正说明

  1. 原代码缺少外键约束:只定义了ClassId字段,未建立关联,已补全标准外键语句

  2. StudentId自增列未设置主键(可自行拓展,考试常用)

  3. 字段命名、类型完全保留你课堂原版,零改动

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:判断查询结果是否存在数据,存在返回true

  • sysdatabases:系统数据库视图,存储本机所有数据库信息

  • drop database:彻底删除数据库(包含数据文件和日志文件)

三、完整创建数据库(主文件+次文件+日志文件)

--创建自定义数据库 StudentDataBase create database StudentDataBase --指定配置【主数据文件】 on primary ( name = 'StudentDB', --主文件逻辑名称(数据库内部调用名) filename = 'D:\SQLServe_DB\StudentDB.mdf', --主文件物理路径 mdf后缀 size = 10MB, --初始文件大小 filegrowth=5MB --文件自动增长增量 ), --配置【次要数据文件】 ( name = 'StudentDB_nd', filename = 'D:\SQLServe_DB\StudentDB_nd.ndf', --次要数据文件 ndf后缀 size = 10MB, filegrowth=5MB ) --配置【日志文件】 log on ( name = 'StudentDB_log', filename = 'D:\SQLServe_DB\StudentDB_log.ldf', --日志文件 ldf后缀 size = 10MB, filegrowth=5MB ) go

四、数据库三大文件详解(必考)

文件类型

后缀

数量

作用

主数据文件

.mdf

有且仅有一个

存储所有数据表结构、核心数据、数据库启动信息

次要数据文件

.ndf

0个/多个

分担主文件压力,存储额外数据,扩容使用

日志文件

.ldf

至少一个

记录所有增删改操作日志,用于数据恢复、回滚

五、数据库文件四大配置属性

  • name:逻辑文件名,SQL内部识别名称,无需和物理文件名一致

  • filename:物理绝对路径,磁盘真实存储位置

  • size:文件初始大小

  • filegrowth:文件自动增长量,存储空间不足时自动扩容

六、代码易错点(改错必考)

  1. 路径必须提前创建:D:\SQLServe_DB 文件夹必须手动建好,SQL不会自动建文件夹,路径不存在直接报错

  2. go位置不能乱改:on primary 和 log on 属于同一个创建语句整体,go必须写在最后

  3. 后缀名不能写错:mdf/ndf/ldf 三种后缀不能混用

  4. 删除数据库必须在master库下执行,否则报错

七、拓展知识点:分离与附加(课堂预留考点)

7.1 分离数据库

将数据库从SQL服务器列表移除,保留磁盘mdf/ndf/ldf文件,用于迁移数据库

--分离语法 exec sp_detach_db 'StudentDataBase' go

7.2 附加数据库

将磁盘中存在的数据库文件,重新挂载到SQL服务器中

--附加语法(了解) create database StudentDataBase on primary (filename='D:\SQLServe_DB\StudentDB.mdf') log on (filename='D:\SQLServe_DB\StudentDB_log.ldf') for attach go

八、简答题背诵总结

1、数据库三种文件分别是什么?主数据文件(.mdf)、次要数据文件(.ndf)、日志文件(.ldf)

2、为什么创建数据库要切换master?master是系统核心数据库,负责管理所有用户数据库,数据库级操作必须在master中执行。

3、filegrowth作用?设置数据库文件自动增长大小,磁盘空间不足时自动扩容,避免数据写入失败。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 15:24:35

三类“核”底层差异拆解|全网独家复现传统滤波核、CNN可学习卷积核、SVM核函数、助力视觉预处理/特征提取/小样本分类精准涨点

目录 一、前言 二、三类Kernel核心概念与数学本质总览 三、传统图像处理滤波核(人工固定核)深度解析 3.1 底层原理与运算机制 3.2 主流标准核矩阵与功能适配 3.3 核心优势与量产局限性 四、CNN卷积核(可学习动态核)深度解析 4.1 技术范式革新:从人工定义到数据驱动…

作者头像 李华
网站建设 2026/7/19 15:23:58

HarmonyOS7 长按上下文菜单:用 bindContextMenu 做好快捷操作

文章目录前言交互链路先理清数据和 UI 的对应关系关键实现细节完整代码可以继续扩展的方向前言 这组案例开始进入选择类和调节类组件,写业务页面时会经常遇到。这个案例围绕 长按触发上下文菜单 展开,重点不是把属性背下来,而是弄清楚状态、…

作者头像 李华
网站建设 2026/7/19 15:23:05

Single主题社区贡献指南:如何参与开源项目开发

Single主题社区贡献指南:如何参与开源项目开发 【免费下载链接】Single 🎈 一个简洁大气,含夜间模式的 Typecho 博客主题 项目地址: https://gitcode.com/gh_mirrors/si/Single Single是一个简洁大气且含夜间模式的Typecho博客主题&am…

作者头像 李华
网站建设 2026/7/19 15:22:13

自动设置 JAVA_HOME 和将 JDK 的 bin 目录添加到 PATH

1. 为什么需要设置 JAVA_HOME 和 PATH?在 Windows、macOS 或 Linux 系统中安装 JDK(Java Development Kit)后,为了让系统能够正确识别 Java 命令(如 java、javac),通常需要配置两个关键环境变量…

作者头像 李华
网站建设 2026/7/19 15:20:28

Day5 哈希表part01

哈希表理论基础 哈希表的意义 比如说,数组["小王", "小李", "小张", "小赵"],我要找小李,那么就需要一个一个遍历,时间复杂度为O(n),但是哈希表,是寻找哈希值&am…

作者头像 李华