数据库实验之《数据定义与简单查询》
Mysql数据定义与简单查询
- 博客由来
- 实验目的
- 实验内容
- 查询练习
- 寄语
- 完整源码
博客由来
本人在校学生,希望能借助平台记录下自己的成长,同时也希望分享自己的一些独特的想法。本次上机使用的平台:Windows10,软件:Mysql Workbench 8.0 CE。文末附上完整MySQL源码。
实验目的
1、熟练掌握和使用MySQL创建数据库、表索引和修改表结构,并学会使用Workbench 查询分进行结果分析。
2、掌握查看、修改数据库和表的属性的方法
3、在建立好的数据库表中输入部分虚拟数据,学会如何实现基于单表的简单查询。
实验内容
- 使用Mysql Workbench 8.0 创建一个“图书读者数据库”(book_reader_db)
CREATE DATABASE book_reader_db;
- 使用Workbench查看book_reader_db的数据库属性,并进行修改,使之符合要求。三个表的结构为:
- 创建三表
create table book(bno int primary key,bclass varchar(20) not null,press varchar(20) not null,bname varchar(20) not null,price float not null,other varchar(50)
);create table reader(rno int primary key,rname varchar(10) not null,sex enum('男','女') not null,depart varchar(20) not null,tel bigint
);create table borrow(bno int not null,rno int not null,bor_date datetime,foreign key(bno) references book(bno),foreign key(rno) references reader(rno)
);
- 实现相关约束:
- 使用Workbench来建立上述三个表的联系,即实现:借阅表与图书表之间、借阅表与读者表之间的外码约束。
foreign key(bno) references book(bno);
foreign key(rno) references reader(rno);
- 实现读者性别只能是“男”或“女”的约束。
enum('男','女');
查询分析器修改表的结构。
在"图书"(book)表中,增加两个字段,分别为"数量"(bnum)和"购买日期"(buy_date)。在“借阅”(borrow)表中增加一个“还书日期"(reb_date)字段。
ALTER TABLE book
ADD bnum INT NOT NULL AFTER bname;ALTER TABLE book
ADD buy_date DATE NOT NULL AFTER price;ALTER TABLE borrow
ADD reb_date DATETIME AFTER bor_date;ALTER TABLE book
ADD author varchar(20) NOT NULL AFTER price;
- 插入数据(自己编的,如有雷同,纯属巧合,无意冒犯)
insert into book values(1001,'电子技术','工业出版社','无线电技术',20,58,'李明','2017-03-14','书本正常');
insert into book values(1002,'电脑维修','机械出版社','跟我修电脑',15,49,'张加军','2017-03-14','有2本出现缺页');
insert into book values(1003,'信息技术','清华大学出版社','数据库原理',30,65,'刘智','2016-05-23','书本正常');
insert into book values(1004,'信息技术','北京大学出版社','计算机组成原理',25,56,'王小丽','2016-05-23','暂无');
insert into book values(1005,'电子技术','浙江大学出版社','射频识别',40,62,'唐飞宏','2018-11-12','暂无');
insert into book values(1006,'电脑维修','西部院校出版社','电脑组装那些事',15,42,'李笑容','2018-11-12','暂无');insert into reader values(20180517,'鲁大势','男','软件学院',13879064214);
insert into reader values(20180214,'尚香','女','艺术学院',16779026573);
insert into reader values(20180319,'章达','男','体育学院',17779014725);
insert into reader values(20180211,'布丘仁','男','机电学院',13879041563);
insert into reader values(20180428,'张小艾','女','信息学院',16779097214);
insert into reader values(20180514,'章小鱼','女','经管学院',1377906542);insert into borrow values(1003,20180214,'2020-02-14','2020-03-15');
insert into borrow values(1001,20180517,'2020-01-10',null);
insert into borrow values(1002,20180514,'2020-02-11','2020/04/6');
insert into borrow values(1004,20180319,'2019-12-23',null);
insert into borrow values(1006,20180211,'2019-11-16','2019-12-23');
insert into borrow values(1005,20180428,'2020-03-24',null);
查询练习
- 单表查询
-- 查询book表中的所有内容
select * from book;
2. 带条件查询
-- where后面接条件
select * from book where bclass='信息技术';
- 分组查询
-- group by 后面接分组依据
select count(*) from book group by bclass;
- 排序查询
-- order by 后面接排序依据,默认升序(增加asc),降序关键字为desc,接在rno后面。
select rno,count(bno) from borrow
group by rno order by rno;
寄语
本期就到这里结束了,更多SQL操作将在今后陆续更新!最后,JIAN 祝大家学习进步,生活愉快!
完整源码
use book_reader_db;-- 创建三表
create table book(bno int primary key,bclass varchar(20) not null,press varchar(20) not null,bname varchar(20) not null,price float not null,other varchar(50)
);create table reader(rno int primary key,rname varchar(10) not null,sex enum('男','女') not null,depart varchar(20) not null,tel bigint
);create table borrow(bno int not null,rno int not null,bor_date datetime,foreign key(bno) references book(bno),foreign key(rno) references reader(rno)
);-- 增加字段
ALTER TABLE book
ADD bnum int NOT NULL AFTER bname;ALTER TABLE book
ADD buy_date date NOT NULL AFTER price;ALTER TABLE borrow
ADD reb_date datetime AFTER bor_date;ALTER TABLE book
ADD author varchar(20) NOT NULL AFTER price;-- 插入数据
insert into book values(1001,'电子技术','工业出版社','无线电技术',20,58,'李明','2017-03-14','书本正常');
insert into book values(1002,'电脑维修','机械出版社','跟我修电脑',15,49,'张加军','2017-03-14','有2本出现缺页');
insert into book values(1003,'信息技术','清华大学出版社','数据库原理',30,65,'刘智','2016-05-23','书本正常');
insert into book values(1004,'信息技术','北京大学出版社','计算机组成原理',25,56,'王小丽','2016-05-23','暂无');
insert into book values(1005,'电子技术','浙江大学出版社','射频识别',40,62,'唐飞宏','2018-11-12','暂无');
insert into book values(1006,'电脑维修','西部院校出版社','电脑组装那些事',15,42,'李笑容','2018-11-12','暂无');insert into reader values(20180517,'鲁大势','男','软件学院',13879064214);
insert into reader values(20180214,'尚香','女','艺术学院',16779026573);
insert into reader values(20180319,'章达','男','体育学院',17779014725);
insert into reader values(20180211,'布丘仁','男','机电学院',13879041563);
insert into reader values(20180428,'张小艾','女','信息学院',16779097214);
insert into reader values(20180514,'章小鱼','女','经管学院',1377906542);insert into borrow values(1003,20180214,'2020-02-14','2020-03-15');
insert into borrow values(1001,20180517,'2020-01-10',null);
insert into borrow values(1002,20180514,'2020-02-11','2020/04/6');
insert into borrow values(1004,20180319,'2019-12-23',null);
insert into borrow values(1006,20180211,'2019-11-16','2019-12-23');
insert into borrow values(1005,20180428,'2020-03-24',null);-- 查询练习select * from book;SELECT * FROM book
WHERE bclass='信息技术';SELECT * FROM book
GROUP BY bclass;SELECT * FROM reader;SELECT *FROM borrow;SELECT rno,count(bno)FROM borrow
GROUP BY rnoORDER BY rno;SELECT bno,count(rno)FROM borrow
GROUP BY bnoORDER by bno;
数据库实验之《数据定义与简单查询》相关推荐
- 数据库实验之《表的连接和嵌套查询》
表的连接&嵌套查询 实验目的 熟练掌握Mysql查询方法,加深对SQL语言查询语句的理解. 掌握多表的连接查询与嵌套查询语句的正确写法和实验操作方法. 实验环境 Windows10,MySQL ...
- mysql连接与嵌套查询_数据库之嵌套查询与连接查询
嵌套查询 单值嵌套查询 值返回结果是一个值的嵌套查询称为单值嵌套查询 对Sales数据库,列出市场部的所有员工的编号 USE Sale GO SELECT employee_id FROM emplo ...
- 广州大学数据库实验报告_广州大学学生Access数据库实验1_表的创建和操作
学院 工商管理 年级.专 业.班 人力 152 姓名 学号 实验课程名称 数据库技术及应用 II 成绩 优 实验项目名称 表的创建和操作 指导 老师 一.实验目的 1. 掌握 Access 2007 ...
- mysql连接与嵌套查询_数据库的连接查询和嵌套查询怎么做啊?
4. select 订货单号,进货量 from 商品表,订货表 where 商品表.商品编号=订货表.商品编号 and 商品名称='螺母' 5. select 订货单号,进货价格 from 商品表,订 ...
- MYSQL数据库实验三多表查询_数据库之 MySQL --- 数据处理 之多表查询 (三)
一.多表查询 [1]什么是多表查询? 即,从多个表中获取数据. 注意: 在多表查询是,如果列明在两个表中都有,那么列名前需要加上表名 sql优化:列名前最好加上表名,尤其在多表查询时 SELECT e ...
- MYSQL数据库实验三多表查询_MYSQL数据库语句之多表操作(三)
多表操作 join查询(join按照功能分可以分为3类): cross join(交叉连接):获取多个表中的交叉关系. inner join(内连接):获取2个表中字段匹配关系的记录. 外连接 lef ...
- mysql查询集合查询之数据库除法、关系代数除法(优化嵌套查询)
1.除法 (1)概述 除法操作一直是关系代数里面比较难理解的一个知识点,下面我将用一个简单的例子先阐述一下他的原理,让大家对他有个初步的认识. (2)引例 S 属性 lesson 属性 nam ...
- MySQL数据库在众多表中对表名的查询及预处理存储过程(变量做表名)
以下的文章主要介绍的是MySQL数据库在众多表中进行表名与字段名的查询的实际操作步骤,以及对实现其查询所要用到的SQL 语句的介绍,还有两个实际解决方案的描述,以下就是文章的主要内容描述. 在MySQ ...
- 数据库实验5 数据库的嵌套查询实验
实验5 数据库的嵌套查询实验 5.1实验目的及要求 加深对嵌套查询语句的理解 5.2实验内容 使用IN.比较符.ANY或ALL和EXIST操作符进行嵌套查询操作 5.3实验步骤 5.3.1使用带IN谓 ...
最新文章
- rpm方式安装mysql-5.7.11
- 一步步编写操作系统 40 内存分页下用户程序与操作系统的关系
- 没有借口---911谈学习
- [Ext JS]Grid的列过滤
- 大数据在智慧社区的作用有哪些
- ECMA-262 6th Edition
- OS + RedHat 6.3 x64 / sshd X11 /
- matlab——度分秒与度的转换
- Allegro gerber文件路径设定
- win10系统office2010每次打开总是出现配置进度
- wince同步软件区别
- PCB正片和负片的个人理解
- 计算机网络初探教案,计算机网络基础知识教案.doc
- 抖音名字怎么改不了_抖音怎么改账号名字
- 林熙蕾和吴大维分手,和元大小开马维辰交往,真实性有待考验
- Android热更新方案Robust——美团热更新(热修复)使用介绍
- 分账功能对接解决方案
- 各种常用文件后缀名详解
- XPO的UpCasting
- Android音视频开发(一)——音视频开发流程
热门文章
- 易观方舟Argo+CRM | 让企业数据发挥更大价值
- 【码农学编曲】鼓的编写
- PhotoScape X Pro 4.1.0 中文版 简单好用的图片编辑工具
- NXP S32K1 DMA模块
- RPM安装包的制作和使用
- 运动场地预约管理系统,场地预约系统,羽毛球馆管理系统毕业设计
- 齐边错边装置液压系统比例阀放大器
- 柔性产线的数字孪生加速器:Unity发布UMT工具包
- 微信小程序原生集成vant weapp注意点 (https://youzan.github.io/vant-weapp/#/intro)
- 2022年危险化学品经营单位安全管理人员复训题库及模拟考试