数据库实验一 创建数据库

一.实验目的

1.学会数据表的创建;

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

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

二. 实验内容

1.题目要求

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

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

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

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

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

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

2.实验结果

代码:

sql 复制代码
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)
BEGIN
	DECLARE i INT DEFAULT 0;
-- 	开启事务,不开的话100w条按天算
	start transaction;
	REPEAT
		set 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',''));语句消除。

相关推荐
液态不合群1 小时前
[特殊字符] MySQL 覆盖索引详解
数据库·mysql
计算机毕设VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue蛋糕店管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
瀚高PG实验室1 小时前
PostgreSQL到HighgoDB数据迁移
数据库·postgresql·瀚高数据库
打码人的日常分享2 小时前
智能制造数字化工厂解决方案
数据库·安全·web安全·云计算·制造
三水不滴2 小时前
Redis 过期删除与内存淘汰机制
数据库·经验分享·redis·笔记·后端·缓存
-孤存-3 小时前
MyBatis数据库配置与SQL操作全解析
数据库·mybatis
2301_822366354 小时前
使用Scikit-learn构建你的第一个机器学习模型
jvm·数据库·python
wangqiaowq5 小时前
MSSQLSERVER 和 SQLEXPRESS 是 SQL Server 中两种不同类型的实例名称
sql
万邦科技Lafite5 小时前
一键获取京东商品评论信息,item_reviewAPI接口指南
java·服务器·数据库·开放api·淘宝开放平台·京东开放平台
自可乐5 小时前
Milvus向量数据库/RAG基础设施学习教程
数据库·人工智能·python·milvus