Mysql数据定义与简单查询

  • 博客由来
    • 实验目的
    • 实验内容
    • 查询练习
    • 寄语
    • 完整源码

博客由来

本人在校学生,希望能借助平台记录下自己的成长,同时也希望分享自己的一些独特的想法。本次上机使用的平台:Windows10,软件:Mysql Workbench 8.0 CE。文末附上完整MySQL源码。

实验目的

1、熟练掌握和使用MySQL创建数据库、表索引和修改表结构,并学会使用Workbench 查询分进行结果分析。

2、掌握查看、修改数据库和表的属性的方法

3、在建立好的数据库表中输入部分虚拟数据,学会如何实现基于单表的简单查询。

实验内容

  1. 使用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)
);
  1. 实现相关约束:
  • 使用Workbench来建立上述三个表的联系,即实现:借阅表与图书表之间、借阅表与读者表之间的外码约束。
foreign key(bno) references book(bno);
foreign key(rno) references reader(rno);
  • 实现读者性别只能是“男”或“女”的约束。
enum('男','女');
  1. 查询分析器修改表的结构。

  2. 在"图书"(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;
  1. 插入数据(自己编的,如有雷同,纯属巧合,无意冒犯)
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);

查询练习

  1. 单表查询
-- 查询book表中的所有内容
select * from book;


2. 带条件查询

--  where后面接条件
select * from book where bclass='信息技术';
  1. 分组查询
-- group by 后面接分组依据
select count(*) from book group by bclass;
  1. 排序查询
-- 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;

数据库实验之《数据定义与简单查询》相关推荐

  1. 数据库实验之《表的连接和嵌套查询》

    表的连接&嵌套查询 实验目的 熟练掌握Mysql查询方法,加深对SQL语言查询语句的理解. 掌握多表的连接查询与嵌套查询语句的正确写法和实验操作方法. 实验环境 Windows10,MySQL ...

  2. mysql连接与嵌套查询_数据库之嵌套查询与连接查询

    嵌套查询 单值嵌套查询 值返回结果是一个值的嵌套查询称为单值嵌套查询 对Sales数据库,列出市场部的所有员工的编号 USE Sale GO SELECT employee_id FROM emplo ...

  3. 广州大学数据库实验报告_广州大学学生Access数据库实验1_表的创建和操作

    学院 工商管理 年级.专 业.班 人力 152 姓名 学号 实验课程名称 数据库技术及应用 II 成绩 优 实验项目名称 表的创建和操作 指导 老师 一.实验目的 1. 掌握 Access 2007 ...

  4. mysql连接与嵌套查询_数据库的连接查询和嵌套查询怎么做啊?

    4. select 订货单号,进货量 from 商品表,订货表 where 商品表.商品编号=订货表.商品编号 and 商品名称='螺母' 5. select 订货单号,进货价格 from 商品表,订 ...

  5. MYSQL数据库实验三多表查询_数据库之 MySQL --- 数据处理 之多表查询 (三)

    一.多表查询 [1]什么是多表查询? 即,从多个表中获取数据. 注意: 在多表查询是,如果列明在两个表中都有,那么列名前需要加上表名 sql优化:列名前最好加上表名,尤其在多表查询时 SELECT e ...

  6. MYSQL数据库实验三多表查询_MYSQL数据库语句之多表操作(三)

    多表操作 join查询(join按照功能分可以分为3类): cross join(交叉连接):获取多个表中的交叉关系. inner join(内连接):获取2个表中字段匹配关系的记录. 外连接 lef ...

  7. mysql查询集合查询之数据库除法、关系代数除法(优化嵌套查询)

    1.除法 (1)概述 除法操作一直是关系代数里面比较难理解的一个知识点,下面我将用一个简单的例子先阐述一下他的原理,让大家对他有个初步的认识. (2)引例 S   属性  lesson 属性  nam ...

  8. MySQL数据库在众多表中对表名的查询及预处理存储过程(变量做表名)

    以下的文章主要介绍的是MySQL数据库在众多表中进行表名与字段名的查询的实际操作步骤,以及对实现其查询所要用到的SQL 语句的介绍,还有两个实际解决方案的描述,以下就是文章的主要内容描述. 在MySQ ...

  9. 数据库实验5 数据库的嵌套查询实验

    实验5 数据库的嵌套查询实验 5.1实验目的及要求 加深对嵌套查询语句的理解 5.2实验内容 使用IN.比较符.ANY或ALL和EXIST操作符进行嵌套查询操作 5.3实验步骤 5.3.1使用带IN谓 ...

最新文章

  1. rpm方式安装mysql-5.7.11
  2. 一步步编写操作系统 40 内存分页下用户程序与操作系统的关系
  3. 没有借口---911谈学习
  4. [Ext JS]Grid的列过滤
  5. 大数据在智慧社区的作用有哪些
  6. ECMA-262 6th Edition
  7. OS + RedHat 6.3 x64 / sshd X11 /
  8. matlab——度分秒与度的转换
  9. Allegro gerber文件路径设定
  10. win10系统office2010每次打开总是出现配置进度
  11. wince同步软件区别
  12. PCB正片和负片的个人理解
  13. 计算机网络初探教案,计算机网络基础知识教案.doc
  14. 抖音名字怎么改不了_抖音怎么改账号名字
  15. 林熙蕾和吴大维分手,和元大小开马维辰交往,真实性有待考验
  16. Android热更新方案Robust——美团热更新(热修复)使用介绍
  17. 分账功能对接解决方案
  18. 各种常用文件后缀名详解
  19. XPO的UpCasting
  20. Android音视频开发(一)——音视频开发流程

热门文章

  1. 易观方舟Argo+CRM | 让企业数据发挥更大价值
  2. 【码农学编曲】鼓的编写
  3. PhotoScape X Pro 4.1.0 中文版 简单好用的图片编辑工具
  4. NXP S32K1 DMA模块
  5. RPM安装包的制作和使用
  6. 运动场地预约管理系统,场地预约系统,羽毛球馆管理系统毕业设计
  7. 齐边错边装置液压系统比例阀放大器
  8. 柔性产线的数字孪生加速器:Unity发布UMT工具包
  9. 微信小程序原生集成vant weapp注意点 (https://youzan.github.io/vant-weapp/#/intro)
  10. 2022年危险化学品经营单位安全管理人员复训题库及模拟考试