当前位置: 首页 > 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 异常的基…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

CMS内容管理系统的设计与实现:多站点模式的实现

在一套内容管理系统中&#xff0c;其实有很多站点&#xff0c;比如企业门户网站&#xff0c;产品手册&#xff0c;知识帮助手册等&#xff0c;因此会需要多个站点&#xff0c;甚至PC、mobile、ipad各有一个站点。 每个站点关联的有站点所在目录及所属的域名。 一、站点表设计…...

21-Oracle 23 ai-Automatic SQL Plan Management(SPM)

小伙伴们&#xff0c;有没有迁移数据库完毕后或是突然某一天在同一个实例上同样的SQL&#xff0c; 性能不一样了、业务反馈卡顿、业务超时等各种匪夷所思的现状。 于是SPM定位开始&#xff0c;OCM考试中SPM必考。 其他的AWR、ASH、SQLHC、SQLT、SQL profile等换作下一个话题…...

构建Docker镜像的Dockerfile文件详解

文章目录 前言Dockerfile 案例docker build1. 基本构建2. 指定 Dockerfile 路径3. 设置构建时变量4. 不使用缓存5. 删除中间容器6. 拉取最新基础镜像7. 静默输出完整示例 docker runDockerFile 入门syntax指定构造器FROM基础镜像RUN命令注释COPY复制ENV设置环境变量EXPOSE暴露端…...