GDPU MySQL数据库 天码行空1 数据库的创建和基本操作

news2024/9/20 1:00:53

一、实验目的

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 StudentGrade
	WHERE Stu_id = '1107505003';

	-- 然后删除 Student 表中的记录
	DELETE FROM Student
	WHERE Stu_id = '1107505003';

-- 修改列属性
	-- 将 Student 表中的 Stu_sex 字段设为不能为空
	ALTER TABLE Student
	MODIFY Stu_sex VARCHAR(2) NOT NULL;

	-- 将 Student 表中的 Stu_name 字段类型从 VARCHAR(10) 改为 CHAR(12)
	ALTER TABLE Student
	MODIFY Stu_name CHAR(12);

-- 添加列
	-- 在 Course 表中添加一列 year,类型为 INT,字段设置为允许空
	ALTER TABLE Course
	ADD year INT NULL;

	-- 为 year 字段添加约束,确保 year 的字段值在 2006 到 2013 之间
	ALTER TABLE Course
	ADD 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
文件初始大小
数据文件最大值 (最大文件大小)由系统管理,通常是无限制或基于磁盘空间
数据文件增长量64MB
日志文件
逻辑文件名ib_logfile0
物理文件名 (即日志文件存放的物理路径)/var/lib/mysql/ib_logfile0
文件初始大小50331648字节 ≈ 48MB
数据文件最大值 (最大文件大小)48MB,或者根据磁盘空间自动增长
数据文件增长量

示例:

  • 首先连接上数据库,然后执行命令
    在这里插入图片描述

  • 查询数据文件增长量 SHOW VARIABLES LIKE 'innodb_autoextend_increment';
    在这里插入图片描述

项目内容
数据库所有者当前登录的MySQL用户(通过 SELECT USER(); 查询)
数据库名称bookdb
数据文件
逻辑文件名bookdb
文件组(表空间?)
物理文件名 (即数据库文件存放的物理路径)通过 SHOW VARIABLES LIKE 'datadir'; 获得
文件初始大小
数据文件最大值 (最大文件大小)由系统管理,通常是无限制或基于磁盘空间
数据文件增长量通过 SHOW VARIABLES LIKE 'innodb_autoextend_increment'; 获得,默认 64 MB
日志文件
逻辑文件名ib_logfile0(InnoDB 默认日志文件)
物理文件名 (即日志文件存放的物理路径)/var/lib/mysql/ib_logfile0 (InnoDB 默认日志文件)
文件初始大小通过 SHOW VARIABLES LIKE 'innodb_log_file_size'; 查询
数据文件最大值 (最大文件大小)根据磁盘空间自动增长
数据文件增长量

四、实验小结

  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) 的职责:

    • 负责数据库的设计、实现、维护和管理。
    • 确保数据的安全性、完整性和可用性。
    • 监控数据库的性能,优化查询和存储过程。
    • 备份和恢复数据,处理数据库故障。
    • 管理用户权限和数据库访问控制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2134876.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java8的函数式编程简介

文章目录 环境背景方法方法1:Java 7(传统方法)方法2:Java 7 (策略模式)方法3:Java 8的Lambda表达式方法4:Java 8内建的函数式接口Predicate方法5:Java 8的方法引用方法6&…

JavaSE:5、类与对象

1、类的定义与对象的创建 定义属性 创建对象 2、对象的使用 使用一个变量来指代某个对象,只不过引用类型的变量,存储的是对象的引用,而不是对象本身 public class Main {public static void main(String [] argv){Person p1new Person();P…

Oracle发送邮件功能:配置自动化发信指南?

Oracle发送邮件服务设置方法?怎么用Oracle数据库发信? Oracle数据库作为企业级应用的核心,其内置的发送邮件功能为企业提供了强大的自动化工具。AokSend将详细介绍如何配置Oracle发送邮件功能,以实现自动化发信,从而提…

C和指针:指针

内存和地址 程序视角看内存是一个大的字节数组,每个字节包含8个位,可以存储无符号值0至255,或有符号值-128至127。 多个字节可以合成一个字,许多机器以字为单位存储整数,每个字一般由2个或4个字节组成。 由于它们包含了更多的位&…

react native(expo)多语言适配

项目基于 expo框架 开发。请先配置好 expo 开发环境 1.引入i18n-js npx expo install i18n-js 2.新建languages文件夹,其中包括英文、中文等语种目录。结构如下: *.json文件为语种翻译后的json键值对,用于UI中引用; { "appName&q…

【C语言】(指针系列3)数组指针+函数指针+typedef+函数数组指针+转移表

前言:前言:开始之前先感谢一位大佬,清风~徐~来-CSDN博客,由于是时间久远,博主指针的系列忘的差不多了,所以有顺序部分借鉴了该播主的,同时也加入了博主自己的理解,有些地方如果解释的…

MySQL语句案例编写复习

先看我的表数据和结构 1.查询年龄为16,17,18,19岁的女性员工信息。 select * from emp where gender 女 and age in(16,17,18,19); 2.查询性别为 男 ,并且年龄在 20-40 岁(含)以内的姓名为三个字的员工。 select * from emp where gender 男 and age between …

猫罐头多久喂一次?营养健康的罐头推荐

一.猫罐头多久喂一次 猫咪长期只食用干粮,容易饮水不足,从而引发上尿道或膀胱结石、堵塞等问题,所以最好每周喂至少2个猫罐头,帮助猫咪补充水分。如果条件允许,全罐喂养,每天都给猫咪吃猫罐头是…

车机中 Android Audio 音频常见问题分析方法实践小结

文章目录 前言1. 无声2. 断音3. 杂音4. 延迟播放5. 焦点问题6. 无声问题(连上 BT )其他完善中…… 前言 本文主要总结了一下车机开发中遇到的 Audio 有关的问题,同时参考网上的一案例,由于Audio 模块出现音频问题的场景很多,对每一个出现的问…

Blender渲染太慢怎么办?blender云渲染已开启

动画行业蓬勃发展,动画制作软件亦持续推陈出新,当制作平台日益丰富,创作难度降低,创作效率提升,如何高效完成复杂动画的渲染就成了从业者更关心的问题。 云渲染技术的出现,无疑为动画制作者提供了前所未有…

家庭理财管理系统

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 家庭理财管理系统拥有多种角色,可以自行设置权限和用户等,主要功能有: 收入管理、支付管理、资产管理、负债详情、统计报表、家庭成员管理、用户管理等…

JavaSE - 易错题集 - 006

1. 哪个正确 A abstract类只能用来派生子类,不能用来创建abstract类的对象。 B final类不但可以用来派生子类,也可以用来创建final类的对象。 C abstract不能与final同时修饰一个类。 D abstract类定义中可以没有abstract方法。 正确答案&#xff1…

决策树算法上篇

决策树概述 决策树是属于有监督机器学习的一种,起源非常早,符合直觉并且非常直观,模仿人类做决策的过程,早期人工智能模型中有很多应用,现在更多的是使用基于决策树的一些集成学习的算法。 示例一: 上表根据…

1.C++中程序的基本结构

在教孩子的学习过程中,使用的开发IDE为小熊猫Dev-C 6.7.5版本,以后的复杂截图,基本上都是基于此版本进行的,同时在适当的时候,录制视频也会基于此版本来完成。 以下为一个最基本的C程序 int main() {// 程序主体retur…

无痛生娃,00后当妈啦

姐妹们,你们家开始催婚了吗?我是00后,大学也才毕业一年啊,我妈已经开始给我物色对象,过年让我去相亲了!大学的时候不让谈,说怕异地以后感情不稳定,结果呢,一毕业要我结婚…

频域滤波为什么使用psf2otf函数?线性卷积和循环卷积等效的条件

线性卷积和循环卷积是本质不同的运算。然而,在某些条件下,线性卷积和循环卷积是等效的。建立这种等效关系具有重要意义。对于两个向量 x 和 y,循环卷积等于二者的离散傅里叶变换 (DFT) 之积的逆 DFT 变换。 禹晶、肖创柏、廖庆敏《数字图像处…

基于python+django+mysql+Nanodet检测模型的水稻虫害检测系统

博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

『功能项目』项目优化 - 框架加载资源【41】

我们打开上一篇40播放动画时禁止点击移动的项目, 本章要做的事情是搭建一个资源加载框架,让UI界面,人物模型以及场景都存放在资源文件夹中在运行时加载出来 首先在资源商店加载资源 将怪物模型放置场景中 将普通管线模型切换成URP 重命名为…

重学SpringBoot3-集成RocketMQ(二)

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成RocketMQ(二) 1. 基础概念2. 准备工作3. 实现事务消息的生产者4. 事务监听器实现5. 消费者示例6. 发送事务消息7. 测试7.1 模…

rust学习——关联类型

什么是关联类型 关联类型是Rust中一种特殊的泛型抽象机制。在trait中,可以定义一个或多个关联类型,这些关联类型与trait的实现类型相关联。关联类型允许我们在trait中使用泛型,但不需要提前指定具体的类型。 不使用关联类型存在的问题 tra…