西电数据库实验二:XDSQL与PolarDB对比实验

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 实验二 XDSQL与PolarDB对比实验姓名:贾瑞  学号:21009201172

实验二 XDSQL与PolarDB对比实验
姓名:贾瑞 学号:21009201172
2.1实验目的
XDSQL数据库是自主开发的一款微型数据库系统,具有简单的建库、建表、增删改查等功能,其SQL解释层采用lex和yacc实现,执行层采用C++实现,存储引擎则是使用最基础的方式实现,即每个数据库对应操作系统的一个文件夹,每个数据表对应操作系统中的一个文件。
2.2实验步骤

  1. 登录阿里云dms控制台,进入PolarDB for MySQL数据库;
  2. 下载XDSQL压缩包到本地电脑;
  3. 解压压缩包,运行XDSQL.exe,启动XDSQL;
  4. 在两个数据库内执行测试集内的SQL语句,根据运行结果去发现XDSQL的不足和不同SQL语句实现的难易程度。
    2.3SQL语句测试集
    2.3.1创建数据库
    SQL语句如下:
    CREATE DATABASE xjgl;
    (1)XDSL运行成功

(2)polarDB运行成功(所登录用户具有相应权限)

2.3.2切换数据库
SQL语句如下:
USE DATABASE xjgl;
(1)XDSL运行成功

(2)polarDB运行失败

2.3.3定义模式/删除模式
SQL语句如下:
CREATE SCHEMA WANG;
(1)XDSL运行失败

(2)polarDB运行成功

2.3.4基本表的定义、删除与修改
1.定义基本表
创建学生表Student、课程表Course、学生选课表SC,SQL语句如下
CREATE TABLE Student(Sno CHAR(9),Sname CHAR(20),Ssex CHAR(2),Sage INT,Sdept CHAR(20));
CREATE TABLE Course(Cno CHAR(4),Cname CHAR(40),Cpno CHAR(4),Ccredit INT);
CREATE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade INT);
(1)XDSL运行成功

(2)polarDB运行成功

2.删除基本表(删除Student表)
SQL语句如下:
DROP TABLE Student;
(1)XDSL运行成功

(2)polarDB运行成功

3.修改基本表
3.1向Student表增加”出生日期“列,数据类型为日期型
ALTER TABLE Student ADD birthdate DATE;
(1)XDSL运行失败

(2)polarDB运行成功

3.2向Student表增加Sno列为主码的约束条件
ALTER TABLE Student ADD PRIMARY KEY(Sno);
(1)XDSL运行失败

(2)polarDB运行成功

3.3向Student表增加Sname列为唯一值的约束条件
ALTER TABLE Student ADD UNIQUE(Sname);
(1)XDSL运行失败

(2)polarDB运行成功

2.3.5数据查询
1.插入数据
运行以下SQL语句
INSERT INTO Student VALUES('201215121','李勇','男',20,'CS');
INSERT INTO Student VALUES('201215122','刘晨','女',19,'CS');
INSERT INTO Student VALUES('201215123','王敏','女',18,'MA');
INSERT INTO Student VALUES('201215124','张立','男',19,'IS');
INSERT INTO COURSE VALUES('1','数据库','5',4);
INSERT INTO COURSE VALUES('3','信息系统','1',4);
INSERT INTO COURSE VALUES('4','操作系统','6',3);
INSERT INTO COURSE VALUES('5','数据结构','7',4);
INSERT INTO COURSE VALUES('7','PASCAL语言','6',4);
INSERT INTO SC VALUES('201215121','1',92);
INSERT INTO SC VALUES('201215121','2',85);
INSERT INTO SC VALUES('201215121','3',88);
INSERT INTO SC VALUES('201215122','2',90);
INSERT INTO SC VALUES('201215122','3',80);
(1)XDSL运行成功

(2)polarDB运行成功

运行以下语句
INSERT INTO COURSE VALUES('2','数学',NULL,2);
(1)XDSL运行失败

(2)polarDB运行成功

2.更新数据
运行以下语句
UPDATE Student SET Sage=Sage+1;
(1)XDSL运行失败

(2)polarDB运行成功

运行以下语句
UPDATE Course SET Cpno='1' WHERE Cno='6';
(1)XDSL运行成功

(2)polarDB运行成功

3.删除数据
运行以下SQL语句:
DELETE FROM SC WHERE Sno='201215121' AND Cno='1';
(1)XDSL运行成功

(2)polarDB运行成功

4.查询数据
运行以下SQL语句:
SELECT * FROM Student;
(1)XDSL运行成功

(2)polarDB运行成功

运行以下SQL语句:
SELECT Sname,Sage FROM Student WHERE Sage<20;
(1)XDSL运行成功

(2)polarDB运行成功

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2月前
|
关系型数据库 MySQL 分布式数据库
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶,邀请好友完成更有机会获得​小米Watch S3、小米体重称​等诸多好礼!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
|
1天前
|
NoSQL 关系型数据库 分布式数据库
基于PolarDB的图分析:通过DTS将其它数据库的数据表同步到PolarDB的图
本文介绍了使用DTS任务将数据从MySQL等数据源实时同步到PolarDB-PG的图数据库中的步骤.
|
4天前
|
SQL 关系型数据库 分布式数据库
夺冠在即 | PolarDB数据库创新设计赛(天池杯)决赛答辩通知
2024年全国大学生计算机系统能力大赛PolarDB数据库创新设计赛(天池杯)于8月21日启动,吸引了200多所高校近千支队伍参赛。经过激烈角逐,60支队伍晋级决赛第一阶段,36支队伍脱颖而出进入现场答辩,将于12月29日在武汉大学争夺最终奖项。决赛要求选手基于PolarDB-PG开源代码部署集群并优化TPCH查询性能。完赛率超90%,成绩表现出明显梯度,前20名均在500秒内完成。评委来自学术界和工业界,确保评选公正。预祝选手们取得优异成绩!
|
19天前
|
Cloud Native 关系型数据库 分布式数据库
PolarDB 分布式版 V2.0,安全可靠的集中分布式一体化数据库管理软件
阿里云PolarDB数据库管理软件(分布式版)V2.0 ,安全可靠的集中分布式一体化数据库管理软件。
|
1天前
|
NoSQL 关系型数据库 分布式数据库
PolarDB图数据库快速入门
图数据库(Graph Database)专门存储图数据,适合处理社交网络、知识图谱等复杂关系。它使用图查询语言(如Cypher、Gremlin)进行操作。PolarDB兼容OpenCypher语法,支持创建、查询、更新和删除图数据,包括模式匹配、过滤、MERGE避免重复、可视化工具等功能,简化了图数据的管理和应用。
|
2月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
98 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
1月前
|
关系型数据库 分布式数据库 数据库
锦鲤附体 | PolarDB数据库创新设计赛,好礼不停!
锦鲤附体 | PolarDB数据库创新设计赛,好礼不停!
|
2月前
|
关系型数据库 分布式数据库 数据库
PolarDB 开源:推动数据库技术新变革
在数字化时代,数据成为核心资产,数据库的性能和可靠性至关重要。阿里云的PolarDB作为新一代云原生数据库,凭借卓越性能和创新技术脱颖而出。其开源不仅让开发者深入了解内部架构,还促进了数据库生态共建,提升了稳定性与可靠性。PolarDB采用云原生架构,支持快速弹性扩展和高并发访问,具备强大的事务处理能力及数据一致性保证,并且与多种应用无缝兼容。开源PolarDB为国内数据库产业注入新活力,打破国外垄断,推动国产数据库崛起,降低企业成本与风险。未来,PolarDB将在生态建设中持续壮大,助力企业数字化转型。
111 2
|
5天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
23 3
|
5天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
28 3