数据库原理——实验一:数据库和表

目录

一、实验目的与要求

二、实验内容

1、创建数据库

2、插入数据

3、完成本次实验数据库的备份操作

三、实验小结

1.实验中遇到的问题及解决过程

2. 实验中产生的错误及原因分析

3. 实验体会和收获


一、实验目的与要求

1、掌握MySQL中如何创建数据库和表的方法(要求在交互式命令提示符下完成,截图)

2、熟练掌握MySQL的数据类型、主键实体完整性的设置

3、参照完整性的定义及应用(Navicat可视化操作,熟悉代码)

4、插入数据(Navicat完成)

5、数据库的备份操作

二、实验内容

1、创建数据库

创建名为fruitshop的数据库,并创建数据表fruits、customers(客户)、orderitems(订单详单)、suppliers(供货商)和orders(订单总表),表结构和约束条件如下:

注:

1.各表中的“字段说明”属性仅用于辅助说明该属性的含义,不用定义在表的结构中

2.表中没有明确指定外键,试分析找出各表中的外键并定义其外键约束、级联删除、级联更新操作;

表 1   fruits表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

f_id

水果编号

char(10)

Y

N

Y

Y

N

s_id

供应商编号

INT

N

Y

Y

N

N

f_name

水果名

char(255)

N

N

Y

N

N

f_price

价格

decimal(8,2)

N

N

Y

N

N

2   customers表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

c_id

客户编号

int

Y

N

Y

Y

Y

c_name

客户名

char(50)

N

N

Y

N

N

c_address

客户地址

char(50)

N

N

N

N

N

c_city

城市

char(50)

N

N

N

N

N

c_zip

邮编

char(10)

N

N

N

N

N

c_contact

联系人

char(50)

N

N

N

N

N

c_email

电子邮箱

char(255)

N

N

N

N

N

3   orderitems表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

o_num

订单号

int

Y

Y

Y

N

N

o_item

订单项

int

Y

N

Y

N

N

f_id

水果编号

char(10)

N

Y

Y

N

N

quantity

数量

int

N

N

Y

N

N

item_price

单价

decimal(8,2)

N

N

Y

N

N

                注:orderitems表中o_numo_item的组合构成主键。

表 4   suppliers表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

s_id

供应商编号

int

Y

N

Y

Y

Y

s_name

供应商名

char(50)

N

N

Y

N

N

s_city

城市

char(50)

N

N

N

N

N

s_zip

邮编

char(10)

N

N

N

N

N

s_call

电话

char(50)

N

N

Y

N

N

5   orders表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

o_num

订单号

int

Y

N

Y

Y

Y

o_date

订购日期

datetime

N

N

Y

N

N

c_id

客户编号

int

N

Y

Y

N

N

源码:

创建数据库:

创建表:

①创建fruits表:

②创建customers表:

③创建orderitems表:

④创建suppliers表:

⑤创建orders表:

运行测试结果截图:

①命令行数据库创建成功

②创建suppliers表成功

③创建customers表成功

④创建fruit表成功

⑤创建orders表成功

⑥创建orderitems表成功

⑦各表创建成功后,显示表格成功

2、插入数据

向数据表fruits、customers、orderitems和suppliers、orders中插入给定的如下数据,要求如下:向数据表customers和suppliers中分别插入一条记录,新记录customers的C_ID属性值统一为10000,在suppliers的S_ID属性值统一为100,S_NAME数据为JMU,其余属性值为本人的真实信息;向数据表fruits、orderitems、orders表中插入分别插入五条与本人相关(即在对应表中的C_ID属性为10000,S_ID属性为100的新记录

源码:

运行测试结果截图:

①Navicat插入新记录成功

 

②插入新记录后各表显示

图1-1 customers表

图1-2  fruit表

图1-3 orders表

图 1-4 orderitems表

图1-5 suppliers表

3、完成本次实验数据库的备份操作

方法一:Mysql -uroot -p123456 数据库名 >目的地址及文件名.sql

方法一:Navicate Premium转储为.sql

比较上述两种方法的异同:

①方法一是用在命令行下进行,在目的文件地址输入正确的前提下可以快速导出sql文件,但是存在命令行警告提示,这样操作暴露密码是不安全的。

②方法二是在Navicat下进行的转储

首先,选择目标数据库;

再者,右键点击,选择转储SQL文件,再选择结构和数据;

然后,选择存储位置保存。

三、实验小结

1.实验中遇到的问题及解决过程

① 问题:不清楚decimal数据类型

解决:decimal(a,b)的参数说明:

a指定指定小数点左边和右边可以存储的十进制数字的最大个数,默认是10,最大精度65。b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 a之间的值。默认小数位数是 0,最大值为30。DECIMAL数据类型用于要求非常高的精确度的计算中,这些类型允许指定数值的精确度和计数方法作为选择参数。精确度在这里是指为这个值保存的有效数字的总个数,而计数方法表示小数点后数字的个数。例如,语句DECIMAL (5,2)规定了存储的值将不会超过5位数字,开且小数点后面有2位数字。

② 问题:不清楚datetime数据类型

解决:datetime为日期类型,所能存储的时间范围为:'1000-01-01        00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。字节为8,格  式为YYYY-MM-DD HH:MM:SS,用于保存同时包含日期和时间两部分的值。

2. 实验中产生的错误及原因分析

① 错误:无法添加外键约束的

原因分析:fruit表有s_id的外码,fruit表是参照表,suppliers表是被参照表;创建fruit表的时候,未创建suppliers表,所以根据参照完整性的定义,产生错误,拒绝创建fruit表。

② 错误:SQL语法错误

 原因分析:第五行多了一个逗号,导致错误

③ 错误:Navicat插入数据报错,报错语句如下:

INSERT INTO `orderitems` VALUES (001, 2, 'F005', 12, 6.6)

> 1452 - Cannot add or update a child row: a foreign key constraint fails

 (`fruitshop`.`orderitems`, CONSTRAINT `orderitems_ibfk_1` FOREIGN KEY

(`o_num`) REFERENCES `orders` (`o_num`))

原因分析:向orderitems表插入新纪录时,外码错误;此时还未向fruit表中添加新纪录,fruit表为空,即主码无f_id,而先向orderitems表中的外码f_id,根据参照完整性的定义,产生错误。

3. 实验体会和收获

        本次实验旨在用命令行和Navicat对数据库进行创建和插入操作,熟悉了两种方式对数据库备份。实践操作中,因为有两次过程中遇到的错误,使我认识到了老师上课所讲到的参照完整性,对此有更加清楚深刻的了解;同时也学习到了mysql的数据类型比如decimal和datetime,上了八周理论课,确确实实在实验课上操作起来更加有刻板印象。

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQL Server 2000系统的安装及配置 1)安装SQL Server 2000系统。   选择 "下一步",然后选择 "本地计算机" 进行安装。   在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。   在 "安装定义"窗口,选择 "服务器和客户端工具" 选项进行安装。。   在 "实例名" 窗口,选择 "默认" 的实例名称。这时本SQL Server的名称将和Windows 2000服务器的名称相同。   在 "安装类型" 窗口,选择 "典型" 安装选项,并指定 "目的文件夹"。   在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。在 "服务设置" 处,选择 "使用本地系统账户"。   在 "身份验证模式" 窗口,请选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。如果您的目的只是为了学习的话,可以将该密码设置为空,以方便登录。 2)分别使用SQL Server服务管理器和控制面板启动MS SQL Server服务。 开始→程序→SQL Server2000→企业管理器 3)练习企业管理器使用。 创建数据库:在处单击右键,选中“新建数据库” 删除数据库:在“数据库”处单击右键,选中“删除” 新建表:双击数据库,然后双击“表”进入,在单击右键“新建表” 4)在企业管理器下创建一个服务器组group1,在这个组下注册一个服务器。查看有哪些数据库数据库中有哪些数据对象。 在企业管理器下单击右键,选择“新建SQL Sever组”,命名为“group1”,在处单击右键,选“新建SQL Sever注册”然后“下一步” 5)练习查询分析器的使用,在查询分析器中输入如下SQL语句,查看结果。 USE PUBS GO SELECT * FROM Authors GO 三、SQL调试及结果 数据库的创建和管理 1.在SQL Server企业管理器中创建一个数据库,具体要求如下: (1)数据库名称为Mydata。 (2)主要数据文件:逻辑文件名为Mydatabase,物理文件名为Mydatabase.mdf,初始容量为1MB,最大容量为10MB,递增量为1MB。 (3)次要数据文件:逻辑文件名为Mydatabak,物理文件名为Mydatabak.ndf,初始容量为1MB,最大容量为10MB,递增量为1MB。 (4)事务日志文件:逻辑文件名为Mydatalog,物理文件名为Mydatalog.ldf,初始容量为1MB,大容量为5MB,递增量为512KB。 2.在查询分析器中输入并执行一个CREATE DATABASE语句,具体要求如下: (1)数据库名称为SA; (2)主要数据文件:逻辑文件名为SAdatabase,物理文件名为SAdatabase.mdf,初始容量为1MB,最大容量为10MB,递增量为1MB; (3)次要数据文件:逻辑文件名为SAdatabakup,物理文件名为SAdatabakup. ndf,初始容量为1 MB,最大容量为10MB,递增量为1MB; (4)事务日志文件:逻辑文件名为SAdatalog,物理文件名为SAdatalog.Ldf,初始容量为512KB,最大容量为5MB,递增量为512KB。 命令: create database SA on primary (name=SAdatabase, filename='F:\Homework\MS\SQL\SAdatabase.mdf', size=1, maxsize=10, filegrowth=1 ) ,filegroup ff (name=SAdatabakup, filename='F:\Homework\MS\SQL\SAdatabakup.mdf', size=1, maxsize=10, filegrowth=1) log on (name=SAdatalog, filename='F:\Homework\MS\SQL\SAdatalog.mdf', size=1, maxsize=5, filegrowth=512kb) 3.按照下列要求在企业管理器中修改第2题中创建的SA数据库: alter database SA modify file ( name= SAdatabase, size=5, maxsize=20, filegrowth=2 ) alter database SA modify file ( name= SAdatabakup, size=5, maxsize=20, filegrowth=2 ) modify file ( name= SAdatalog, size=2, maxsize=10, filegrowth=1 ) (1)主要数据文件的容量为5MB,最大容量为20MB,递增量为2MB。 (2)次要数据文件的容量为5MB,最大容量为20MB,递增量为2MB。 (3)事务日志文件:初始容量为2MB,最大容量为 10MB,递增量为1MB。 截图文件:4.数据库更名,要求:把SA数据库改名为mySA。 alter database SA modify name=mySA 为了使数据库名称简单,修改回原来的SA alter database mySA modify name= SA 5.收缩数据库,要求:分别使用DBCC SHRINKDATABASE和DBCC SHRINKFILE进行收缩。 DBCC SHRINKDATABASE (SA ,target_percent        [,{ NOTRUNCATE | TRUNCATEONLY } ] ) 6.删除数据库(以下是在windows xp环境下的截图) (1)在企业管理器中删除Mydata数据库。 在Enterprise manager可以在“Mydata”上单击右键,然后单击删除 截图: (2)在查询分析器中用DROP DATABASE语句删除经过第3题修改以后的SA数据库。 drop database SA (3),如果当前没有选中理想中的数据库文件可以运行下面命令: USE SA GO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DreamWendy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值