【数据库实验一】数据库及数据库中表的建立实验
目录
实验1 学习RDBMS的使用和创建数据库
一、 实验目的
二、实验内容
三、实验环境
四、实验前准备
五、实验步骤
六、实验结果
七、评价分析及心得体会
实验2 定义表和数据库完整性
一、 实验目的
二、实验内容
三、实验环境
四、实验前准备
五、实验步骤
六、实验结果
七、评价分析及心得体会
实验1 学习RDBMS的使用和创建数据库
一、 实验目的
(1)熟悉某一RDBMS产品(如:SQL Server ) 的环境。
(2)掌握企业管理器的基本使用方法,对数据库及其对象有基本了解,了解对SQL Server 进行配置的方法。
(3)掌握查询分析器的基本使用方法以及在查询分析器中执行T-SQL语句的方法。
(4)了解SQL Server 数据库的逻辑结构和物理结构。
(5)学会在企业管理器中创建数据库及查看数据库属性。
(6)学会使用T-SQL语句创建数据库。
二、实验内容
(1)学会使用企业管理器和查询分析器管理工具。
(2)使用企业管理器创建数据库。
创建一个教务管理数据库,名称为JWGL,数据文件的初始大小为20MB,文件增长方式为自动增长,文件增长增量设为5MB,文件的增长上限为500MB。日志文件的初始大小为10MB,文件增长增量设为1MB,文件的增长限制设为100MB。数据文件的逻辑文件名和物理文件名均采用默认值,分别为JWGL_data和d:\Microsoft SQL Server\MSSQL\data\ JWGL_data.mdf;事务日志文件的逻辑文件名和物理文件名也采用默认值,分别为JWGL_log和d:\Microsoft SQL Server\MSSQL\data\JWGL_log.ldf。
(3)在查询分析器中使用T-SQL语句创建数据库。
创建一个名为Market的数据库(注意e盘下应存在sql_data目录)。
CREATE DATABASE Market
ON
(NAME = Market_Data,
FILENAME = 'e:\sql_data\Market_Data.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 10%)
LOG ON
(NAME = Market_Log,
FILENAME = 'e:\sql_data\ Market__Log.ldf',
SIZE = 5,
MAXSIZE = 15,
FILEGROWTH = 10%);
(4)使用T-SQL语句或企业管理器创建一个图书借阅管理数据库,数据库名为TSGL,数据文件和日志文件的初始大小、增长方式、文件的增长上限等均可采用默认值。
(5)使用T-SQL语句或企业管理器创建第2章习题10的SPJ数据库,可以自行定义文件大小、增长方式等。
(6)查看物理磁盘目录,理解并分析SQL Server 数据库的存储结构。
(7)使用企业管理器查看数据库属性。
(8)使用T-SQL语句或企业管理器对于(2)~(5)中建立的数据库进行修改和删除操作,并进一步查看物理磁盘目录。
三、实验环境
mysql-8.3.0-win64
MySQL Workbench 8.0 CE
四、实验前准备
下载并安装MySQL以及MySQL Workbench
五、实验步骤
可以使用Create a new scheme
使用语句
其他的均相同
六、实验结果
七、评价分析及心得体会
通过此次实验,我熟悉了MySQL Workbench的环境,掌握了企业管理器的基本使用方法,对数据库及其对象有基本了解,学会在企业管理器中创建数据库及查看数据库属性,学会使用MySQL语句创建数据库,并了解数据库的逻辑结构和物理结构。
实验2 定义表和数据库完整性
一、 实验目的
(1)了解SQL Server 的基本数据类型、空值的概念,以及表的结构特点。
(2)学会使用T-SQL语句和企业管理器创建表结构和修改表结构。
(3)学会使用SQL Server 提供的数据完整性功能,并在创建表时定义表的数据完整性。通过实验进一步理解数据完整性的概念及分类。
二、实验内容
(1)用企业管理器在教务管理数据库JWGL中创建学生表Student、课程表Course、学生选课表SC,它们的表结构如表B.1所示。
(2)用T-SQL语句在Market数据库中创建客户基本信息表Customers、货品信息表Goods、订单信息表Orders,它们的定义如下
CREATE TABLE Customers(
CustomerID int IDENTITY(1,1) PRIMARY KEY,
CName varchar(8) NOT NULL ,
Address varchar(50),
City varchar(10),
Tel varchar(20) UNIQUE,
Company varchar(50),
Birthday datetime,
Type tinyint DEFAULT 1);
CREATE TABLE Goods (
GoodsID int CONSTRAINT C1 PRIMARY KEY ,
GoodsName varchar(20) NOT NULL,
Price money,
Description varchar(200),
Storage int,
Provider varchar(50),
Status tinyint DEFAULT(0));
CREATE TABLE Orders (
OrderID int IDENTITY(1,1) CONSTRAINT C2 PRIMARY KEY ,
GoodsID int NOT NULL REFERENCES Goods(GoodsID) ON DELETE
CASCADE,
CustomerID int NOT NULL FOREIGN KEY(CustomerID)
REFERENCES Customers (CustomerID) ON UPDATE CASCADE
ON DELETE NO ACTION,
Quantity int NOT NULL CONSTRAINT C3 CHECK(Quantity >0),
OrderSum money NOT NULL,
OrderDate datetime DEFAULT(getdate()) );
(3)使用T-SQL语句在SPJ数据库中创建第2章习题6中的4张表:供应商表S、零件表P、工程项目表J和供应情况表SPJ,数据类型和长度自行设计,注意要同时定义主键、外键和其他的数据完整性。
(4)使用T-SQL语句在图书借阅管理数据库TSGL中建立图书、读者和借阅3个表,其结构为
图书(书号,书名,类别,出版社,作者,定价,出版时间)
读者(借书证号,姓名,单位,性别,地址,电话号码)
借阅(书号,借书证号,借阅日期)
要求为属性选择合适的数据类型,定义每个主键、外键,是否允许空值等数据完整性约束。
三、实验环境
mysql-8.3.0-win64
MySQL Workbench 8.0 CE
四、实验前准备
复习创建表的语句
五、实验步骤
(1)可以通过Create Table进行建表
(2)也可以用MySQL语句实现
student、course、sc
customers、goods、orders
s、p、j、spj
图书、读者、借阅
CREATE TABLE jwgl.student (Sno CHAR(8) NOT NULL,Sname VARCHAR(10) NOT NULL ,Sex CHAR(2) NOT NULL DEFAULT '男' CHECK (Sex='男' or Sex='女'),Age TINYINT(1) NOT NULL DEFAULT 20 CHECK (Age BETWEEN 15 AND 30),Phonenumber CHAR(12) NULL UNIQUE,Sdept VARCHAR(20) NOT NULL,PRIMARY KEY (`Sno`));CREATE TABLE jwgl.course (Cno CHAR(10) NOT NULL,Cname VARCHAR(20) NOT NULL UNIQUE,Total_perior TINYINT UNSIGNED NOT NULL DEFAULT 64 CHECK (Total_perior BETWEEN 32 AND 108),Week_perior TINYINT UNSIGNED NOT NULL DEFAULT 4 CHECK (Week_perior BETWEEN 2 AND 7),credit TINYINT UNSIGNED NOT NULL DEFAULT 4 CHECK (credit BETWEEN 1 AND 7),Pcno CHAR(10),PRIMARY KEY (Cno)
);
CREATE TABLE jwgl.sc (Sno CHAR(8) NOT NULL,Cno CHAR(10) NOT NULL,Grade TINYINT(1) NULL CHECK (Grade BETWEEN 0 AND 100), PRIMARY KEY (Sno, Cno),FOREIGN KEY (Sno) REFERENCES Student(Sno),FOREIGN KEY (Cno) REFERENCES Course(Cno)
);create table market.customers (CustomerID int not null auto_increment,CName varchar(8) not null,Address varchar(50),City varchar(10),Tel varchar(20) unique,Company varchar(50),Bithday date,Type tinyint default 1,primary key (CustomerID)
);create table market.goods (GoodsID int not null,GoodsName varchar(20) not null,Price decimal(10,2),Description varchar(200),Storage int,Provider varchar(50),Status tinyint default 0,primary key(GoodsID)
);create table market.orders(OrderID int not null auto_increment,GoodsID int not null,CustomerID int not null,Queantity int not null check ( Queantity>0),OrderSum decimal(10,2) not null,OrderDate datetime default (now()),primary key (OrderID),foreign key( GoodsID) references goods(GoodsID) on delete cascade,foreign key(CustomerID) references customers(CustomerID) on update cascade on delete no action
);create table spj.s(SNO CHAR(2) PRIMARY KEY,SNAME VARCHAR(50),STATUS INT,CITY VARCHAR(50)
);create table spj.p(PNO char(2) primary key,PNAME varchar(50),COLOR varchar(20),WEIGHT float);create table spj.j(JNO char(2) primary key,JNAME varchar(50),CITY varchar(50));create table spj.spj(SNO char(2),PNO char(2),JNO char(2),QTY int,primary key(SNO,PNO,JNO),foreign key(SNO) references s(SNO),foreign key(PNO) references p(PNO),foreign key(JNO) references j(JNO));create table `tsgl`.`图书`(`书号` char(13) primary key,`书名` varchar(255) not null,`类别` varchar(50),`出版社` varchar(100),`作者` varchar(100),`定价` decimal(10,2),`出版时间` date
);create table `tsgl`.`读者`(`借书证号` char(10) primary key,`姓名` varchar(50) not null,`单位` varchar(100),`性别` enum('男','女') not null,`地址` varchar(255),`电话号码` varchar(20)
);CREATE TABLE `tsgl`.`借阅` (`书号` CHAR(13),`借书证号` CHAR(10),`借阅日期` DATE,PRIMARY KEY (`书号`, `借书证号`),FOREIGN KEY (`书号`) REFERENCES `图书`(`书号`) ON DELETE CASCADE ON UPDATE CASCADE,FOREIGN KEY (`借书证号`) REFERENCES `读者`(`借书证号`) ON DELETE CASCADE ON UPDATE CASCADE
);
六、实验结果
七、评价分析及心得体会
在本次实验中,我了解MySQL的基本数据类型、空值的概念,以及表的结构特点。并学会使用MySQL语句和企业管理器创建表结构和修改表结构。使用SQL Workbench提供的数据完整性功能,并在创建表时定义表的数据完整性,通过实验进一步理解数据完整性的概念及分类。
相关文章:

【数据库实验一】数据库及数据库中表的建立实验
目录 实验1 学习RDBMS的使用和创建数据库 一、 实验目的 二、实验内容 三、实验环境 四、实验前准备 五、实验步骤 六、实验结果 七、评价分析及心得体会 实验2 定义表和数据库完整性 一、 实验目的 二、实验内容 三、实验环境 四、实验前准备 五、实验步骤 六…...

Web服务nginx基本实验
安装软件: 启动服务: 查看Nginx服务器的网络连接信息,监听的端口: 查看默认目录: 用Windows访问服务端192.168.234.111的nginx服务:(防火墙没有放行nginx服务,访问不了) …...

Ubuntu实现双击图标运行自己的应用软件
我们知道在Ubuntu上编写程序,最后编译得到的是一个可执行文件,大致如下 然后要运行的时候在终端里输入./hello即可 但是这样的话感觉很丑很不方便,下边描述一种可以类似Windows上那种双击运行的实现方式。 我们知道Ubuntu是有一些自带的程序…...
js id字符串转数组
将一个逗号分隔的字符串(例如 "12,123,213,")转换为一个 JavaScript 数组,并去除多余的逗号,可以使用以下几种方法。这里我将展示几种常见的方式: 方法 1: 使用 split 和 filter 你可以使用 split 方法将字…...

《手写Spring渐进式源码实践》实践笔记(第十八章 JDBC功能整合)
文章目录 第十八章 JDBC功能整合背景技术背景JDBC JdbcTemplate关键特性 用法示例业务背景 目标设计实现代码结构类图实现步骤 测试事先准备属性配置文件测试用例测试结果: 总结 第十八章 JDBC功能整合 背景 技术背景 JDBC JDBC(Java Database Conne…...

边缘计算在智能交通系统中的应用
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 边缘计算在智能交通系统中的应用 边缘计算在智能交通系统中的应用 边缘计算在智能交通系统中的应用 引言 边缘计算概述 定义与原…...
HTML5+css3(浮动,浮动的相关属性,float,解决浮动的塌陷问题,clear,overflow,给父亲盒子加高度,伪元素)
浮动的相关属性 以下使浮动的常用属性值: float: 设置浮动 以下属性: left : 设置左浮动 right : 设置右浮动 none :不浮动,默认值clear 清除浮动 清除前面兄弟元素浮动元素的响应 以下属性: left &…...

【C++ 滑动窗口】2134. 最少交换次数来组合所有的 1 II
本文涉及的基础知识点 C算法:滑动窗口及双指针总结 LeetCode2134. 最少交换次数来组合所有的 1 II 交换 定义为选中一个数组中的两个 互不相同 的位置并交换二者的值。 环形 数组是一个数组,可以认为 第一个 元素和 最后一个 元素 相邻 。 给你一个 二…...
使用 PyTorch 实现并测试 AlexNet 模型,并使用 TensorRT 进行推理加速
本篇文章详细介绍了如何使用 PyTorch 实现经典卷积神经网络 AlexNet,并利用 Fashion-MNIST 数据集进行训练与测试。在训练完成后,通过 TensorRT 进行推理加速,以提升模型的推理效率。 本文全部代码链接:全部代码下载 环境配置 为了保证代码在 GPU 环境下顺利运行,我们将…...
Python 数据可视化详解教程
Python 数据可视化详解教程 数据可视化是数据分析中不可或缺的一部分,它通过图形化的方式展示数据,帮助我们更直观地理解和分析数据。Python 作为一种强大的编程语言,拥有丰富的数据可视化库,如 Matplotlib、Seaborn、Plotly 和 …...
springboot集成opencv开源计算机视觉库
最近项目需要用到opencv,网上看到很多资料都是下载安装并且引入jar包与dll文件,感觉很麻烦,不是我想要的,于是花时间折腾了下,不需要任何安装与引入jar包与dll文件,简单方便,快速上手。 先说说…...

CCF ChinaOSC |「开源科学计算与系统建模openSCS专题分论坛」11月9日与您相约深圳
2024年11月9日至10日,以“湾区聚力 开源启智”为主题的2024年中国计算机学会中国开源大会(CCF ChinaOSC)将在深圳召开。大会将汇聚国内外学术界、顶尖科技企业、科研机构及开源社区的精英力量,共同探索人工智能技术和人类智慧的无…...

2024年11月8日上海帆软用户大会
2024年11月8日上海帆软用户大会 2024年11月8日,上海成功举办了帆软用户大会,主题为“数字聚力,绽放新机”。大会汇聚了众多行业专家和企业代表,共同探讨数字化转型和商业智能领域的最新趋势和实践。 大会亮点: 专家…...
信息泄露漏洞一文速通
文章目录 信息泄露漏洞一文速通敏感信息の概念敏感信息の分类企业敏感信息用户敏感信息站点敏感信息 如何挖掘信息泄露漏洞?信息泄露风险清单(checklist)未授权访问类文件与数据泄露开发与调试信息泄露公共配置文件泄露其他敏感信息泄露点 威…...
Android 启动时应用的安装解析过程《二》
上一篇内容说到InitAppsHelper这个类的initSystemApps函数,只说了一下几个重要参数的来源还没展开,这里继续,有兴趣的可以看链接: Android 启动时应用的安装解析过程《一》 一、系统应用的扫描安装 /*** Install apps from system dirs.*/Gu…...
智谱AI:ChatGLM强大的生成式语言模型
目录 智谱AI:ChatGLM强大的生成式语言模型 一、ChatGLM的定义与特点 二、ChatGLM的应用场景 三、举例说明 四、注意事项 智谱AI:ChatGLM强大的生成式语言模型 它通过对话的方式能够生成自然流畅的文本,这一特性使其在多个领域都有广泛的应用潜力,特别是在智能对话和智能…...
git tag
已经发布了 v1.0 v2.0 v3.0 三个版本,这个时候,我突然想不改现有代码的前提下,在 v2.0 的基础上加个新功能,作为 v4.0 发布。就可以检出 v2.0 的代码作为一个 branch ,然后作为开发分支。 要查看仓库中的所有标签 gi…...

Golang--反射
1、概念 反射可以做什么? 反射可以在运行时动态获取变量的各种信息,比如变量的类型,类别等信息如果是结构体变量,还可以获取到结构体本身的信息(包括结构体的字段、方法)通过反射,可以修改变量的值,可以调用关联的方法…...

ABAP:SET CURSOR FIELD设置鼠标焦点
SET CURSOR FIELD <字段名>:设置鼠标焦点到该字段 SET CURSOR 设置到鼠标焦点列还是行 SET CURSOR LINE 设置鼠标焦点到行 GET CURSOR field <字段名> :这个相对应的获取鼠标焦点得到的字段...

【专题】2024年全球生物医药交易报告汇总PDF洞察(附原数据表)
原文链接:https://tecdat.cn/?p38191 在当今复杂多变的全球经济环境下,医药行业正面临着诸多挑战与机遇。2024 年,医药行业的发展态势备受关注。 一方面,全球生物医药交易活跃,2021 - 2023 年的交易中,已…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...