欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 数据库实验一 创建数据库

数据库实验一 创建数据库

2024/11/30 18:33:26 来源:https://blog.csdn.net/m0_53676388/article/details/141206262  浏览:    关键词:数据库实验一 创建数据库

一.实验目的

1.学会数据表的创建;

2.加深对表间关系的理解;

3.理解数据库中数据的简单查询方法和应用。

二. 实验内容

1.题目要求

给定一个实际问题,实际应用问题的模式设计中至少要包括3个基本表。应用问题是供应商给工程供应零件(课本P70)。

(1)创建一个数据库,数据库名称命名为自己的学号。

(2)在已建立的数据库中使用SQL语句和可视化环境分别建立应用中的四个表,包括属性名、数据类型,正确创建表的主键、外键。

(3)向工程表J中增加适当规模的记录(至少1000条,上万条最好,项目名可以用“项目+序号”简单命名,每个项目名唯一);然后基于项目名属性列建唯一索引,并编写查询语句验证所建索引是否有效。(提示:查询语句中的条件要用到项目名属性;在建索引前先执行该语句,建索引后再执行,然后比较两次执行的时间)。

(4)将数据库转储到D盘根目录下,命名为自己的学号。点击右键选择“转储SQL文件”,选择“结构和数据”。

(5)完成数据库的备份和还原。首先为建好的数据库新建备份,然后在将备份拷走,和同学合作在另一台电脑上还原备份,还原后查看原有数据库中的信息是否存在。

2.实验结果

代码:

SET  sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));CREATE TABLE P
(PNO char(20) PRIMARY KEY,PNAME char(20),COLOR char(20),WEIGHT int
);CREATE TABLE J
(JNO char(20) PRIMARY KEY,JNAME char(20),CITY char(20)
);CREATE TABLE S
(SNO char(20) PRIMARY KEY,SNAME char(20) UNIQUE,SSTATUS char(20),CITY char(20)
);CREATE TABLE SPJ
(SNO char(20),PNO char(20),JNO char(20),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)
);DELIMITER $$
CREATE PROCEDURE proc_insert_J(in args int)
BEGINDECLARE i INT DEFAULT 0;
-- 	开启事务,不开的话100w条按天算start transaction;REPEATset i=i+1;insert into J values(concat('J',i),CONCAT('项目',i),'济南');	UNTIL i >= args END REPEAT;commit;
END
$$
DELIMITER ;call proc_insert_J(100000);CREATE UNIQUE INDEX J_JNAME ON J(JNAME);SELECT * FROM J WHERE JNAME='项目99999' ;

实验截图

由上图可见建立索引前的查找时间为0.023s。

由上图可见建立索引后查询时间有所缩短,查询时间为0.007s。

转储SQL文件。

备份还原后查看原有数据库中的信息仍然存在。

注意:在建表的过程中会出现[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by的错误,使用SET  sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));语句消除。 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com