GDPU MySQL数据库 天码行空1 数据库的创建和基本操作
💖 必看
- MySQL 5.7
- 默认的 innodb 存储引擎
- Windows10 和 Centos7
一、实验目的
1.熟知机房用机安全规则。
2.通过上机操作,加深对数据库系统理论知识的理解;通过使用具体的DBMS,了解一种实际的数据库管理系统,并掌握其操作技术;通过对实际题目的上机实验,提高手动能力,提高分析问题和解决问题的能力。
3.先用ACCESS创建数据库,体会数据库的功能。[选作]
4.熟悉SQL Server企业版的安装过程。掌握SQL Server 相关服务的启动、退出。
5.熟悉SQL Server Management Studio环境,掌握数据库服务器的注册、配置、连接等操作。
6.掌握SQL图形用户界面创建、修改、删除数据库、表;根据要求用SQL SERVER 创建数据库。
7.了解表的结构特点;掌握在SSMS(SQL Server Management Studio)中修改表的定义。
注意:实验过程中创建的各种数据库及其他一切档案,建议同学们都保存好,以备接下来的实验课中继续使用。每次上课前,请也请带上之前实验课的数据备份。
二、实验内容及要求
1. MySQL基本操作
1.上网搜索能够正常安装的SQL Server的软件。有条件的同学,课后可在个人电脑上安装SQL Server。
2.了解数据库的相关概念。通过实践初步了解使用SQL Server Management的使用。
3.掌握SQL Server的启动、退出、暂停,组成配置,基本工具及常用操作。
4.请根据联机丛书查询如何“创建数据库”,内容包括:创建数据库前的准备工作,创建数据库的命令,以及数据库文件的组成。请把你的结果写在下面。(联机丛书机房可能没有安装,可以在自己机器上试试)
5.查看本机上有哪些数据库(包括系统数据库和用户数据库),请记录下来。
2. 用Management Studio创建数据库
1. 了解数据库的文件目录
(1)使用Management Studio创建数据库bookdb,各项参数采用默认设置。
- MySQL 使用
Navicat替代 Management Studio

(2)请完成“三、实验要求”中的“一”后,删除bookdb数据库,观察数据库服务器中是否还存在bookdb数据库。(“删除数据库”操作慎用,此处设置删除操作纯粹为了练习)。
2. 创建数据库EDUC
- 建表
🔔提示:学生表中的 Address 和 Class_id 设置允许为空,不然后续插入数据会失败


USE EDUC;
-- 检查并删除已存在的表
DROP TABLE IF EXISTS StudentGrade;
DROP TABLE IF EXISTS Student;
DROP TABLE IF EXISTS Course;-- 创建 Student 表
CREATE TABLE Student (Stu_id VARCHAR(10) NOT NULL,Stu_name VARCHAR(10) NOT NULL,Stu_sex VARCHAR(2) DEFAULT '男',Birthdate DATETIME,Address VARCHAR(100) DEFAULT NULL,Phone VARCHAR(8) DEFAULT NULL,Class_id VARCHAR(4) DEFAULT NULL,PRIMARY KEY (Stu_id)
);-- 创建 Course 表
CREATE TABLE Course (Course_id VARCHAR(4) NOT NULL,Course_name VARCHAR(20) NOT NULL,Course_hour INT DEFAULT 60,Introduce VARCHAR(200),PRIMARY KEY (Course_id)
);-- 创建 StudentGrade 表
CREATE TABLE StudentGrade (Stu_id VARCHAR(10) NOT NULL,Course_id VARCHAR(4) NOT NULL,Grade DECIMAL(9, 2),PRIMARY KEY (Stu_id, Course_id),FOREIGN KEY (Stu_id) REFERENCES Student(Stu_id),FOREIGN KEY (Course_id) REFERENCES Course(Course_id)
);
- 请在各表中添加数据。对于Student表,请输入如下数据,Course、StudentGrade自行输入合理数据。
-- 插入 Student 表数据
INSERT INTO Student (Stu_id, Stu_name, Stu_sex, Birthdate, Address, Phone, Class_id) VALUES
('1107505001', '刘晨', '男', '1990-01-16 00:00:00', '广药宿舍10栋203', '39352201', '0101'),
('1107505002', '王丽', '女', '1989-03-20 00:00:00', '广药宿舍8栋607', '39351023', '0101'),
('1107505003', '冯锋', '男', '1991-01-09 00:00:00', '广药宿舍10栋203', NULL, '0102'),
('1107505004', '张晓红', '女', '1990-08-21 00:00:00', '广药宿舍8栋607', '39353021', '0204'),
('1107505005', '张力', '男', NULL, '广药宿舍10栋203', NULL, '0103'),
('1107505006', '马凤励', '女', '1989-04-24 00:00:00', '广药宿舍8栋607', NULL, NULL);-- 插入 Course 表数据
INSERT INTO Course (Course_id, Course_name, Course_hour, Introduce) VALUES
('C001', '数据库原理', 60, '介绍数据库的基本概念和原理'),
('C002', '数据结构', 60, '介绍数据结构的基本概念和算法'),
('C003', '操作系统', 60, '介绍操作系统的基本概念和原理'),
('C004', '计算机网络', 60, '介绍计算机网络的基本概念和协议');-- 插入 StudentGrade 表数据
INSERT INTO StudentGrade (Stu_id, Course_id, Grade) VALUES
('1107505001', 'C001', 85.50),
('1107505001', 'C002', 92.00),
('1107505002', 'C001', 78.25),
('1107505002', 'C003', 84.75),
('1107505003', 'C002', 88.00),
('1107505003', 'C004', 90.00),
('1107505004', 'C003', 76.50),
('1107505004', 'C004', 82.25),
('1107505005', 'C001', 91.00),
('1107505006', 'C002', 85.75),
('1107505006', 'C003', 89.00);
3. 基于 EDUC 进行各种操作
-- 修改 Student 表中特定学生的地址
UPDATE Student
SET Address = '广药宿舍9栋304'
WHERE Stu_id = '1107505005';-- 删除学号为 '1107505003' 的学生信息-- 删除 StudentGrade 表中引用的学生记录(先删外键)DELETE FROM StudentGradeWHERE Stu_id = '1107505003';-- 然后删除 Student 表中的记录DELETE FROM StudentWHERE Stu_id = '1107505003';-- 修改列属性-- 将 Student 表中的 Stu_sex 字段设为不能为空ALTER TABLE StudentMODIFY Stu_sex VARCHAR(2) NOT NULL;-- 将 Student 表中的 Stu_name 字段类型从 VARCHAR(10) 改为 CHAR(12)ALTER TABLE StudentMODIFY Stu_name CHAR(12);-- 添加列-- 在 Course 表中添加一列 year,类型为 INT,字段设置为允许空ALTER TABLE CourseADD year INT NULL;-- 为 year 字段添加约束,确保 year 的字段值在 2006 到 2013 之间ALTER TABLE CourseADD CONSTRAINT CHK_Year CHECK (year BETWEEN 2006 AND 2013);-- 删除 Course 表中的 year 字段
ALTER TABLE Course
DROP COLUMN year;
三、实验要求
1. 数据库、表的创建及删除
1.将数据库bookdb的相关属性,填入下表:
👨🏫 MySQL 的文件目录结构
| 项目 | 内容 |
|---|---|
| 数据库所有者 | root |
| 数据库名称 | bookdb |
| 数据文件 | |
| 逻辑文件名 | bookdb |
| 文件组 | /var/lib/mysql/bookdb? |
| 物理文件名 (即数据库文件存放的物理路径) | /var/lib/mysql/bookdb |
| 文件初始大小 | |
| 数据文件最大值 (最大文件大小) | 64TB 和 系统限制 取较小值 |
| 数据文件增长量 | 64MB |
| 日志文件 | |
| 逻辑文件名 | ib_logfile0 |
| 物理文件名 (即日志文件存放的物理路径) | /var/lib/mysql/ib_logfile0 |
| 文件初始大小 | 50331648字节 ≈ 48MB |
| 数据文件最大值 (最大文件大小) | 512GB |
| 数据文件增长量 |
示例:
-
首先连接上数据库,然后执行命令

-
查询数据文件增长量
SHOW VARIABLES LIKE 'innodb_autoextend_increment';

| 项目 | 内容 |
|---|---|
| 数据库所有者 | 当前登录的MySQL用户(通过 SELECT USER(); 查询) |
| 数据库名称 | bookdb |
| 数据文件 | |
| 逻辑文件名 | bookdb |
| 文件组(表空间?) | 无 |
| 物理文件名 (即数据库文件存放的物理路径) | 通过 SHOW VARIABLES LIKE 'datadir'; 获得 |
| 文件初始大小 | 无 |
| 数据文件最大值 (最大文件大小) | 👨🏫 MySQL 官网文档 |
| 数据文件增长量 | 通过 SHOW VARIABLES LIKE 'innodb_autoextend_increment'; 获得,默认 64 MB |
| 日志文件 | |
| 逻辑文件名 | ib_logfile0(InnoDB 默认日志文件) |
| 物理文件名 (即日志文件存放的物理路径) | /var/lib/mysql/ib_logfile0 (InnoDB 默认日志文件) |
| 文件初始大小 | 通过 SHOW VARIABLES LIKE 'innodb_log_file_size'; 查询 |
| 数据文件最大值 (最大文件大小) | 👨🏫 MySQL 官网文档 |
| 数据文件增长量 |
四、实验小结
-
比较分析 ACCESS、SQL SERVER、ORACLE 数据库:
-
ACCESS:
- 特点: Microsoft Access 是一个桌面数据库管理系统,适合小型应用和单用户环境。它提供了一个用户友好的界面,易于学习和使用。Access 支持表、查询、报表和宏等数据库对象。
- 适用情况: 适用于小型企业、个人开发者或小型项目,其中数据量不是非常大,且对性能和并发要求不高。
-
SQL SERVER:
- 特点: Microsoft SQL Server 是一个企业级的数据库管理系统,支持大规模的数据存储、管理和分析。它提供了高级的数据安全性、可靠性和可扩展性。SQL Server 支持多种编程语言和应用程序接口。
- 适用情况: 适用于中到大型企业,需要处理大量数据和高并发访问的情况,以及需要复杂查询和数据分析的场景。
-
ORACLE:
- 特点: Oracle Database 是一个高性能、可靠性强的企业级数据库管理系统。它支持多种操作系统和硬件平台,提供高级的安全性、自动化管理工具和强大的数据仓库功能。
- 适用情况: 适用于大型企业和关键任务应用,需要处理大规模数据、高并发访问和复杂的事务处理。
-
-
常用的数据库管理系统及当下流行的:
- 常用的数据库管理系统: MySQL, PostgreSQL, IBM DB2, SQLite, Sybase 等。
- 当下比较流行的: 除了上述提到的 SQL Server 和 Oracle 外,还有 MySQL 和 PostgreSQL,它们因其开源、成本效益高和社区支持强大而受到广泛欢迎。
五、作业
-
数据模型的概念、作用和三个要素:
- 概念: 数据模型是现实世界数据特征的抽象,用于描述数据元素、数据元素之间的关系以及数据元素的属性和特性。
- 作用: 数据模型用于指导数据库的设计和实现,帮助组织和存储数据,以及支持数据的查询和更新。
- 三个要素: 实体、关系和属性。实体是现实世界中的对象;关系定义了实体之间的联系;属性是实体所具有的性质或特征。
-
数据库系统三级模式结构及优点:
- 三级模式结构: 外模式(子模式)、概念模式(逻辑模式)、内模式(存储模式)。
- 优点: 提高数据的逻辑独立性和物理独立性,使得数据结构的修改不影响应用程序;简化了用户和数据库的交互;提供了数据的逻辑抽象和物理抽象,便于数据的管理和维护。
-
术语解释:
- DDL (Data Definition Language): 用于定义和创建数据库结构的语言,如 CREATE、ALTER、DROP 等。
- DML (Data Manipulation Language): 用于操作和查询数据库中数据的语言,如 SELECT、INSERT、UPDATE、DELETE 等。
-
数据与程序的物理独立性和逻辑独立性:
- 物理独立性: 数据的存储方式和位置的改变不会影响到依赖于该数据的应用程序。
- 逻辑独立性: 数据的逻辑结构或模式的改变(如表的增加或删除)不会影响到应用程序。
-
DBA (Database Administrator) 的职责:
- 负责数据库的设计、实现、维护和管理。
- 确保数据的安全性、完整性和可用性。
- 监控数据库的性能,优化查询和存储过程。
- 备份和恢复数据,处理数据库故障。
- 管理用户权限和数据库访问控制。
相关文章:
GDPU MySQL数据库 天码行空1 数据库的创建和基本操作
💖 必看 MySQL 5.7默认的 innodb 存储引擎Windows10 和 Centos7 一、实验目的 1.熟知机房用机安全规则。 2.通过上机操作,加深对数据库系统理论知识的理解;通过使用具体的DBMS,了解一种实际的数据库管理系…...
《告别卡顿,一键卸载!IObit Uninstaller 13 免费版让电脑重获新生》
随着电脑使用时间的增长,各种软件的安装和卸载,难免会让电脑变得臃肿不堪,运行速度大不如前。你是否也有过这样的烦恼?别担心,IObit Uninstaller 13 免费版来帮你解决这个问题! IObit Uninstaller 13 是一…...
Python|基于Kimi大模型,实现上传文档并进行对话(5)
前言 本文是该专栏的第5篇,后面会持续分享AI大模型干货知识,记得关注。 我们在利用大模型进行文本处理的时候,可能会遇到这样的情况。 笔者在这里举个例子,比如说我们的目标文本是一堆docx文档,或者pdf文档,doc文档等等。这时需要大模型对这样的文档文本内容进行语义处…...
C++设计模式——Prototype Pattern原型模式
一,原型模式的定义 原型模式是一种创建型设计模式,它允许通过克隆已有对象来创建新对象,从而无需调用显式的实例化过程。 原型模式的设计,使得它可以创建一个与原型对象相同或类似的新对象,同时又可以减少对象实例化…...
Vue3 : ref 与 reactive
目录 一.ref 二.reactive 三.ref与reactive的区别 四.总结 一.ref 在 Vue 3 中,ref 是一个用于创建可读写且支持数据跟踪的响应式引用对象。它主要用于在组件内部创建响应式数据,这些数据可以是基本类型(如 number、string、boolean&…...
html实现好看的多种风格手风琴折叠菜单效果合集(附源码)
文章目录 1.设计来源1.1 风格1 -图文结合手风琴1.2 风格2 - 纯图片手风琴1.3 风格3 - 导航手风琴1.4 风格4 - 双图手风琴1.5 风格5 - 综合手风琴1.6 风格6 - 简描手风琴1.7 风格7 - 功能手风琴1.8 风格8 - 全屏手风琴1.9 风格9 - 全屏灵活手风琴 2.效果和源码2.1 动态效果2.2 源…...
Nacos分布式配置中心
分布式配置的优势: 不需要重新发布我们的应用 新建父工程:【将它作为跟 所以要把父工程里面的src删掉】 新建子模块: 新建bootstrap.properties: 在使用Nacos作为配置中心时,推荐在bootstrap.properties中配置Nacos相…...
C# WinForm 中 DataGridView 实现单元格cell 能进编辑状态但是不能修改单元格的效果
在Windows Forms(WinForms)开发中,DataGridView 控件是一个功能强大的组件, 用于显示和管理表格数据。无论是展示大量数据,还是实现交互式的数据操作, DataGridView 都能提供多样的功能支持,比如…...
GANs-生成对抗网络
参考: https://mp.weixin.qq.com/s?__bizMjM5ODIwNjEzNQ&mid2649887403&idx3&snf61fc0e238ffbc56a7f1249b93c20690&chksmbfa0f632460e035f00be6cc6eb09637d91614e4c31da9ff47077ca468caad1ee27d08c04ca32&scene27 https://cloud.tencent.com…...
e冒泡排序---复杂度O(X^2)
排序原理: 1.比较相邻的元素。如果前一个元素比后一个元素大,就交换这两个元素的位置。 2.对每一对相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素。最终最后位置的元素就是最大值, public class 冒泡排序 {public static void main(String[] args) {I…...
C语言--结构体(学习笔记)
内容借鉴于b站杜远超官方频道(C语言结构体详解【干货】) 首先C语言中定义变量格式为“数据类型 变量名”,如int a; float b;等等。 那么结构体则是将多个变量(数据类型 变量名)结合在一起的一种新的数据类型&…...
Vue项目中实现用户登录后跳回原地址
本地存储 在 Vue 3 中,你可以使用 Vue Router 和 sessionStorage 或 localStorage 来实现用户登录后跳回原来的页面。以下是一种常见的实现方式: 在用户登录之前,记录当前页面的路由路径: 在需要登录的页面组件中,在…...
【Google Chrome Windows 64 version及 WebDriver 版本】
最近升级到最新版本Chrome后发现页面居然显示错乱实在无语, 打算退回原来的版本, 又发现官方只提供最新的版本下载, 为了解决这个问题所有收集了Chrome历史版本的下载地址分享给大家. Google Chrome Windows version 64 位 VersionSize下载地址Date104.0.5112.10282.76 MBhtt…...
[ffmpeg] 音视频编码
本文主要梳理 ffmpeg 中音视频编码的常用函数 API调用 常用 API const AVCodec *avcodec_find_encoder(enum AVCodecID id); AVCodecContext *avcodec_alloc_context3(const AVCodec *codec); void avcodec_free_context(AVCodecContext **avctx); int avcodec_open2(AVCode…...
springboot+redis+缓存
整合 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 连接redis,配置yml文件 主机 端口号 数据库是哪一个 密码 配置类 p…...
关于http的206状态码和416状态码的意义、断点续传以及CORS使用Access-Control-Allow-Origin来允许跨域请求
一、关于http的206状态码和416状态码的意义及断点续传 HTTP 2xx范围内的状态码表明客户端发送的请求已经被服务器接受并且被成功处理了,HTTP/1.1 206状态码表示客户端通过发送范围请求头Range抓取到了资源的部分数据,一般用来解决大文件下载问题,一般CDN…...
SOMEIP_ETS_114: SD_Entries_Length_wrong_combined
测试目的: 验证DUT能够拒绝一个包含两个正确条目但条目数组长度不正确的SubscribeEventgroup消息,并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议,当接收到一个条目数组长度与实际条目数量不匹配的Sub…...
SQL:DATEDIFF函数
DATEDIFF函数是用于计算两个日期之间的时间间隔的函数,它在不同的编程语言和数据库系统中都有广泛的应用。以下是对DATEDIFF函数的详细解析: 一、函数用途 DATEDIFF函数的主要用途是计算两个日期之间的时间间隔,这个间隔可以是年、季度、月…...
MATLAB 可视化基础:绘图命令与应用
目录 1. 绘制子图1.1基本绘图命令1.2. 使用 subplot 函数1.3. 绘图类型 2.MATLAB 可视化进阶(以下代码均居于以上代码的数据定义上实现)2.1. 极坐标图2.3. 隐函数的绘制 3.总结 在数据分析和科学计算中,数据可视化是理解和解释结果的关键工具。今天,我将…...
掌握 Python 异常处理的实战技巧:从基础到高级应用20240918
掌握 Python 异常处理的实战技巧:从基础到高级应用 引言 在 Python 编程中,异常处理是保障代码稳健性和可靠性的关键要素之一。无论是在网络请求、资源访问,还是复杂的业务逻辑中,异常处理都不可或缺。本文将从 Python 异常的基…...
Godot PCK解包原理与专业逆向实践指南
1. 这不是“解压软件”,而是Godot游戏逆向工程的第一把手术刀你刚下载了一款用Godot引擎开发的独立游戏,想研究它的UI动效逻辑,或者复刻一段粒子特效,又或者只是单纯好奇——那个让你反复通关三次的像素风过场动画,图层…...
Claude Code 之父:2026 年我一行代码都没写,编程已被 AI 解决
2026 年,你还在一行一行敲代码吗?Claude Code 的创造者、Anthropic 核心人物 Boris Cherny,在公开访谈里抛出一句让整个行业震动的话:2026 年到现在,我没有写过一行代码。所有开发工作,100% 交给 AI 代理完…...
机器学习与深度学习在地球物理勘探中的应用:基于电阻率数据预测极化率模型
1. 项目概述与核心价值在花岗岩这类地质条件复杂的地区搞勘探,最头疼的就是地下情况“看不清”。传统的电阻率(ERT)和激发极化(IP)联合反演,就像用一把刻度模糊的尺子去量一块表面坑洼不平的石头——面对高…...
智能检索新范式,让AIAgent自主决策,提升RAG效率100%!
市面上的 RAG 系统,不管叫什么名字,本质上只有两种做法: 第一种,一次性检索。把用户的 query 向量化,从语料库里捞出 Top-K 个文档片段,拼成一个大 prompt 塞给模型。GraphRAG、HippoRAG、LightRAG 都属于…...
如何高效批量下载音乐歌词:智能歌词管理完整指南
如何高效批量下载音乐歌词:智能歌词管理完整指南 【免费下载链接】ZonyLrcToolsX ZonyLrcToolsX 是一个能够方便地下载歌词的小软件。 项目地址: https://gitcode.com/gh_mirrors/zo/ZonyLrcToolsX ZonyLrcToolsX 是一款专业的跨平台歌词下载工具,…...
配置OpenClaw Agent使用Taotoken作为后端模型提供商
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 配置OpenClaw Agent使用Taotoken作为后端模型提供商 基础教程类,指导希望使用OpenClaw等Agent工具的开发者,…...
关于psthon问题
我想问问各位 我python可以查到 但是我的bit文件查不到python怎么回事...
广州因特智能:AI视觉软硬结合,打破半导体检测装备“卡脖子”困境
【导语:广州因特智能科技孵化于西安电子科技大学广州研究院,专注用AI视觉技术解决工业场景的“卡脖子”检测难题,为半导体、光通信、新能源三大领域提供高端检测装备。】校地合作孵化,构建完整能力体系广州因特智能科技由西安电子…...
LizzieYzy:你的智能围棋教练,让AI分析变得简单有趣 [特殊字符]
LizzieYzy:你的智能围棋教练,让AI分析变得简单有趣 🎯 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy 还在为复盘找不到关键点而烦恼吗?想提升棋力却…...
交流电机驱动器的三种控制模式:前沿切相、后沿切相与同步模式详解
1. 项目概述:一个能玩出花的交流电机驱动器在汽车改装、工业控制或者一些创客项目里,驱动一个交流电机听起来简单,但想让它听话地变速、正反转,甚至实现软启动和精确同步,往往就得搬出笨重又昂贵的工业变频器。今天分享…...
