当前位置: 首页 > news >正文

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 官网文档
数据文件增长量

四、实验小结

  1. 比较分析 ACCESS、SQL SERVER、ORACLE 数据库:

    • ACCESS:

      • 特点: Microsoft Access 是一个桌面数据库管理系统,适合小型应用和单用户环境。它提供了一个用户友好的界面,易于学习和使用。Access 支持表、查询、报表和宏等数据库对象。
      • 适用情况: 适用于小型企业、个人开发者或小型项目,其中数据量不是非常大,且对性能和并发要求不高。
    • SQL SERVER:

      • 特点: Microsoft SQL Server 是一个企业级的数据库管理系统,支持大规模的数据存储、管理和分析。它提供了高级的数据安全性、可靠性和可扩展性。SQL Server 支持多种编程语言和应用程序接口。
      • 适用情况: 适用于中到大型企业,需要处理大量数据和高并发访问的情况,以及需要复杂查询和数据分析的场景。
    • ORACLE:

      • 特点: Oracle Database 是一个高性能、可靠性强的企业级数据库管理系统。它支持多种操作系统和硬件平台,提供高级的安全性、自动化管理工具和强大的数据仓库功能。
      • 适用情况: 适用于大型企业和关键任务应用,需要处理大规模数据、高并发访问和复杂的事务处理。
  2. 常用的数据库管理系统及当下流行的:

    • 常用的数据库管理系统: MySQL, PostgreSQL, IBM DB2, SQLite, Sybase 等。
    • 当下比较流行的: 除了上述提到的 SQL Server 和 Oracle 外,还有 MySQL 和 PostgreSQL,它们因其开源、成本效益高和社区支持强大而受到广泛欢迎。

五、作业

  1. 数据模型的概念、作用和三个要素:

    • 概念: 数据模型是现实世界数据特征的抽象,用于描述数据元素、数据元素之间的关系以及数据元素的属性和特性。
    • 作用: 数据模型用于指导数据库的设计和实现,帮助组织和存储数据,以及支持数据的查询和更新。
    • 三个要素: 实体、关系和属性。实体是现实世界中的对象;关系定义了实体之间的联系;属性是实体所具有的性质或特征。
  2. 数据库系统三级模式结构及优点:

    • 三级模式结构: 外模式(子模式)、概念模式(逻辑模式)、内模式(存储模式)。
    • 优点: 提高数据的逻辑独立性和物理独立性,使得数据结构的修改不影响应用程序;简化了用户和数据库的交互;提供了数据的逻辑抽象和物理抽象,便于数据的管理和维护。
  3. 术语解释:

    • DDL (Data Definition Language): 用于定义和创建数据库结构的语言,如 CREATE、ALTER、DROP 等。
    • DML (Data Manipulation Language): 用于操作和查询数据库中数据的语言,如 SELECT、INSERT、UPDATE、DELETE 等。
  4. 数据与程序的物理独立性和逻辑独立性:

    • 物理独立性: 数据的存储方式和位置的改变不会影响到依赖于该数据的应用程序。
    • 逻辑独立性: 数据的逻辑结构或模式的改变(如表的增加或删除)不会影响到应用程序。
  5. 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&#xff0c;配置yml文件 主机 端口号 数据库是哪一个 密码 配置类 p…...

关于http的206状态码和416状态码的意义、断点续传以及CORS使用Access-Control-Allow-Origin来允许跨域请求

一、关于http的206状态码和416状态码的意义及断点续传 HTTP 2xx范围内的状态码表明客户端发送的请求已经被服务器接受并且被成功处理了,HTTP/1.1 206状态码表示客户端通过发送范围请求头Range抓取到了资源的部分数据&#xff0c;一般用来解决大文件下载问题&#xff0c;一般CDN…...

SOMEIP_ETS_114: SD_Entries_Length_wrong_combined

测试目的&#xff1a; 验证DUT能够拒绝一个包含两个正确条目但条目数组长度不正确的SubscribeEventgroup消息&#xff0c;并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议&#xff0c;当接收到一个条目数组长度与实际条目数量不匹配的Sub…...

SQL:DATEDIFF函数

DATEDIFF函数是用于计算两个日期之间的时间间隔的函数&#xff0c;它在不同的编程语言和数据库系统中都有广泛的应用。以下是对DATEDIFF函数的详细解析&#xff1a; 一、函数用途 DATEDIFF函数的主要用途是计算两个日期之间的时间间隔&#xff0c;这个间隔可以是年、季度、月…...

MATLAB 可视化基础:绘图命令与应用

目录 1. 绘制子图1.1基本绘图命令1.2. 使用 subplot 函数1.3. 绘图类型 2.MATLAB 可视化进阶(以下代码均居于以上代码的数据定义上实现)2.1. 极坐标图2.3. 隐函数的绘制 3.总结 在数据分析和科学计算中&#xff0c;数据可视化是理解和解释结果的关键工具。今天&#xff0c;我将…...

掌握 Python 异常处理的实战技巧:从基础到高级应用20240918

掌握 Python 异常处理的实战技巧&#xff1a;从基础到高级应用 引言 在 Python 编程中&#xff0c;异常处理是保障代码稳健性和可靠性的关键要素之一。无论是在网络请求、资源访问&#xff0c;还是复杂的业务逻辑中&#xff0c;异常处理都不可或缺。本文将从 Python 异常的基…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...