IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 实验1 数据库、表的创建 -> 正文阅读

[大数据]实验1 数据库、表的创建

一、实验目的

1.掌握数据库创建操作。

2.掌握使用create table语句创建表,掌握主键、外键、非空等完整性约束的定义。

3.掌握用图形界面数据操作。

4.熟悉ALTER TABLE语句。

二、实验内容与步骤

(一)MySQL数据库操作

1.写出create database语句,创建books数据库,指定其字符集为gbk,排序规则为gbk_bin。

CREATE DATABASE IF NOT EXISTS books DEFAULT CHARACTER SET gbk COLLATE gbk_bin;

2. 执行命令:SHOW VARIABLES LIKE '%datadir%'; 观察books数据库存放在哪儿了记录其位置

?3. 执行语句:CREATE DATABASE?test;然后,写出删除test数据库的SQL 语句并执行。

(二)MySQL表创建语句练习

1.在图书管理数据库books中,拟创建三个表:“图书”、“读者”、“借阅”。各个表分别含有如下字段(中文含义),并有主键、外键及一些约束。

图书表:书号、书名、作者、出版社、出版年、单价、状态

主键:书号;无外键

约束:书名非空

读者表:借书证号、类别、已借书数、最多借书数、姓名、学院

主键:借书证号;无外键

约束:已借书数缺省值0;最多借书数缺省值10;类别、姓名非空

借阅表:借书证号、书号、借出日期、还书日期

主键:书号;

外键:借书证号(参照“读者”表的借书证号),书号(参照“图书”表的书号)

下面是将要放入表中的一些典型数据:

图书:

书号

书名

作者

出版社

出版年

单价

状态

TP273-1

大数据技术

林子明

清华大学

2017

40.5

未借

TP273-3

云计算

刘鹏

电子工业

2018

39

借出

读者:

借书证号

类别

已借书数

最多借书数

姓名

学院

0041001

学生

0

4

李笑笑

计算机

1110

教师

1

10

王四海

计算机

0071015

学生

0

4

杜拉拉

经济管理

借阅:

借书证号

书号

借出日期

还书日期

1110

TP273-3

2018-5-6

2018-10-6

请写出相应的CREATE TABLE语句,其中要求:

(1)注意观察参考典型数据情况,为各个字段合理选择字段名、数据类型、长度等,并且表名、字段名要用英文。此外,还要注意创建三个表的先后顺序。

(2)定义主键、外键和约束,注意外键和所参照的主键的类型、长度要一致(或相同)

将你书写的CREATE TABLE语句记录下来:

1创建图书表的CREATE TABLE语句:

CREATE TABLE book(

bookId CHAR(20) PRIMARY KEY COMMENT '书号',

bookName VARCHAR(50) NOT NULL COMMENT '书名',

bookWriter VARCHAR(50) COMMENT '作者',

bookBrith VARCHAR(50) COMMENT '出版社',

bookDate INT COMMENT '出版年',

bookPrice DECIMAL(5,2) COMMENT '单价',

bookStatus VARCHAR(50) COMMENT '状态'

?);

?2创建读者表的CREATE TABLE语句:

CREATE TABLE reader(
	readerId VARCHAR(10) PRIMARY KEY COMMENT '借书证号', 
	readerClass VARCHAR(50) NOT NULL COMMENT '类别', 
	readerBorrow INT DEFAULT 0 COMMENT '已借书数', 
	readermostlend INT DEFAULT 10 COMMENT '最多借书数',
	readerName CHAR(20) NOT NULL COMMENT '姓名', 
	readerCollege CHAR(20) NOT NULL COMMENT '学院'
);

3创建借阅表的CREATE TABLE语句:

CREATE TABLE borrow(
	borrowReaderId INT COMMENT '借书证号', 
	borrowBookId CHAR(20) PRIMARY KEY COMMENT '书号', 
	borrowDate DATE COMMENT '借出日期', 
	borrowReturn DATE COMMENT '还书日期'
); 

?(三)图形界面表数据操作练习与观察完整性违约处理情况

1.向三个表中输入上表中的数据。注意,最后输入“借阅”表的数据。

(1)图书表

INSERT INTO book VALUES('TP273-1','大数据技术','林子明','清华大学','2017','40.5','未借');
INSERT INTO book VALUES('TP273-3','云计算','刘鹏','电子工业','2018','39','借出');

?(2)读者表

INSERT INTO reader VALUES('1110','教师','1','10','王四海','计算机');
INSERT INTO reader VALUES('0041001','学生','0','4','李笑笑','计算机');
INSERT INTO reader VALUES('0071015','学生','0','4','杜拉拉','经济管理');

(3)借阅表

INSERT INTO borrow VALUES ('1110','TP273-3','2018-5-6','2018-10-6');

?2.在“读者”表中,将借书证号为1110的读者的姓名改为王大海。

UPDATE reader SET readerName="王大海" WHERE readerId="1110";

3.在“借阅”表中,观察能否增加一行数据‘0070008’、‘TP273-1’、‘2021-3-10’、‘2021-9-10’,如果不能,请说明原因。

无法增加,因为在读者表中没有借书证号为“0070008”的读者,通过外键约束无法增加此行数据。

4.在“读者”表中,将借书证号为‘0071015’的读者记录删除,观察能否成功删除,如果不能,请说明原因。? ? ?能够删除。

DELETE FROM reader WHERE readerId="0071015";

5.在“读者”表中,将借书证号为‘1110’的读者记录删除,观察能否成功删除,如果不能,请说明原因。

无法删除,因为外键约束,通过外键的约束导致无法删除读者表中的借书证号为“1110”的读者记录。

(四)MySQL修改表和删除表语句练习

1.用界面操作创建数据库schoolInfo,指定其字符集为gbk,排序规则为gbk_bin。

CREATE DATABASE IF NOT EXISTS schoolInfo DEFAULT CHARACTER SET gbk COLLATE gbk_bin;

2.在schoolInfo中,执行下面的语句创建 teacherInfo 表。

CREATE TABLE teacherInfo(

id INT UNSIGNED ?AUTO_INCREMENT PRIMARY KEY , ?

NAME VARCHAR(20),

Sex CHAR(1) DEFAULT '男',

Birthday DATE,

Address VARCHAR(50)

);

3.执行下面的ALTER TABLE语句,学习ALTER TABLE语句的使用:

(1)将 teacherInfo 表的name字段的数据类型改为 VARCHAR(30)。

ALTER TABLE teacherInfo MODIFY NAME VARCHAR(30) NOT NULL;

(2)将birthday宁段的位置改到sex字段的前面。

ALTER TABLE ?teacherInfo MODIFY birthday DATETIME AFTER name;

(3)将id字段改名为t_id。

ALTER TABLE teacherInfo CHANGE id t_id INT NOT NULL;

?(4)将 teacherInfo 表的address字段删除。

ALTER TABLE teacherInfo DROP address;

(5)在 teacherInfo 表中增加名为wages的字段,数据类型为decimal(5,2)。

ALTER TABLE ?teacherInfo ?ADD wages decimal(5,2);

(6)将 teacherInfo 表改名为 teacherInfo_Info。

ALTER TABLE teacherInfo RENAME teacherInfo_Info;

?4.执行语句并记录结果:

DESCRIBE teacherInfo_info; ?-- 查看teacherInfo_info表结构

5.练习DROP TABLE语句,写删除表teacherInfo的语句。

DROP TABLE teacherInfo_info;

三、实验总结

1.总结你对合适选择字段类型、长度的看法。用最符合的字段类型和长度,不要一直使用varchar或者是模糊的类型。在选择类型时,字符串选择carchar、nvarchar等等,数字使用number、interger、float等等。长度就需要根据需求来定,默认值,可能很多都不在意默认值,而且默认值也比较难设置。但还是尽量有默认值。

2.总结本次实验中遇到的主要问题及解决方法。在本次实验中因为对于数据库的不熟悉,所以写一些语句存在一些困难,例如在创建表中对于一些主外键的设置有些存在错误,无法连接起来,但是经过修改之后便可以运行出来了。还有在借阅表中增加数据时忘记了外键约束,忘记借书证号需要和读者表中的借书证号保持一致才可以。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-16 18:54:27  更:2021-11-16 18:56:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:22:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码