实验二 XDSQL与PolarDB对比实验
姓名:贾瑞 学号:21009201172
2.1实验目的
XDSQL数据库是自主开发的一款微型数据库系统,具有简单的建库、建表、增删改查等功能,其SQL解释层采用lex和yacc实现,执行层采用C++实现,存储引擎则是使用最基础的方式实现,即每个数据库对应操作系统的一个文件夹,每个数据表对应操作系统中的一个文件。
2.2实验步骤
- 登录阿里云dms控制台,进入PolarDB for MySQL数据库;
- 下载XDSQL压缩包到本地电脑;
- 解压压缩包,运行XDSQL.exe,启动XDSQL;
- 在两个数据库内执行测试集内的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运行成功