Mysql综合案例

考核要点:创建数据表、单表查询、多表查询

已知,有一个学生表student和一个分数表score,请按要求对这两个表进行操作。student表和score分数表的表结构分别如表1-1和表1-2所示。

表1-1student表结构

字段名数据类型主键外键非空唯一自增字段描述

stu_idINT(10)是否是是否学号

stu_nameVARCHAR(20)否否是否否姓名

sexVARCHAR(2)否否否否否性别

birthYEAR否否否否否出生年份

departmentVARCHAR(20)否否是否否院系

addrVARCHAR(50)否否否否否家庭住址

表1-2score表结构

字段名数据类型主键外键非空唯一自增字段描述

score_idINT(10)是否是是是编号

stu_idINT(10)否否是否否学号

c_nameVARCHAR(20)否否否否否课程名

gradeINT(10)否否否否否分数

表1-1和表1-2中分别对student表和score表中字段的数据类型、主键、外键、非空、唯一约束、自增和字段描述做了说明,其中这两个表中都有stu_id字段,用于表示学号,该字段使student表和score表实现了关联。

(1)启动MySQL服务器。

如果MySQL服务器是未启动的状态,可以在cmd窗口中,通过命令来启动服务器,具体命令如下所示:

net start mysql

(2)登录MySQL服务器。

在cmd窗口中登录MySQL服务器,用户名为root,密码为root,具体命令如下所示:

mysql -uroot -proot

(3)创建数据库。

创建一个名为my_db的数据库,具体SQL语句如下:

create database my_db;

(4)切换当前数据库。

将名为my_db的数据库切换为当前数据库,具体SQL语句如下:

use my_db;

(5)创建学生表student,插入6条记录。

创建学生表student,SQL语句如下所示:

CREATE TABLEstudent (

stu_idINT(10) PRIMARY KEY,

stu_nameVARCHAR(20)NOT NULL,

sexVARCHAR(2),

birthYEAR,

departmentVARCHAR(20),

addrVARCHAR(50)

);

上述SQL语句执行成功后,表示学生表student创建成功,这时,使用INSERT语句向表中插入数据,SQL语句如下所示:

INSERT INTO student VALUES(901,'张飞', '男',1985,'计算机系', '河北省涿州市'),

(902,'关羽', '男',1986,'中文系', '山西省运城市'),

(903,'貂蝉', '女',1990,'中文系', '山西省忻州县'),

(904,'刘备', '男',1990,'英语系', '河北省涿州市'),

(905,'小乔', '女',1991,'英语系', '安徽省潜山市'),

(906,'赵云', '男',1988,'计算机系', '河北省正定市');

上述INSERT语句执行成功后,向表中插入了6条记录,分别是学生的学号、姓名、性别、出生年份、院系和出生地址,这时,使用SELECT语句查看stu表中的数据信息

mysql> select * from student;

从查询结果可以看出,在当前的数据库中创建了一个student表,并成功插入了6条记录,student表的主键为id。

(6)创建分数表score,插入10条记录。

首先创建分数表score,SQL语句如下所示:

CREATE TABLEscore (

score_idINT(10) PRIMARY KEYAUTO_INCREMENT ,

stu_idINT(10) NOT NULL,

c_nameVARCHAR(20) ,

gradeINT(10)

);

上述SQL语句执行成功后,表示分数表score创建成功,接下来,使用INSERT语句向score表中插入数据,SQL语句如下所示:

INSERT INTO score(stu_id,c_name,grade) VALUES(901, '计算机',98),

(901, '英语', 80),(902, '计算机',65),(902, '中文',88),

(903, '中文',95),(904, '计算机',70),(904, '英语',92),

(905, '英语',94),(906, '计算机',90),(906, '英语',85);

上述SQL语句执行成功后,向表中插入了10条记录,分别是学生的学号、姓名、所在学校和报考的学校名称,这时,使用SELECT语句查看score表中的数据信息:

mysql> select * from score;

从查询结果可以看出,score表创建成功,同时向表中插入了10条记录,score表的主键为score_id。

(7)从student表中查询计算机系和英语系学生的信息。

该操作属于单表查询操作,SQL语句如下所示:该操作属于单表查询操作,SQL语句如下所示:

mysql> SELECT * FROMstudent-> WHERE department IN ('计算机系','英语系');

上述SQL语句执行成功后,顺利查询出了计算机系和英语系的学生的信息,上面的SQL语句使用了in操作符,针对本操作其实还有另外一种查询方式,SQL语句如下所示:

mysql> SELECT * FROMstudent-> WHERE department='计算机系' OR department='英语系';

从查询结果可以看出,使用or操作符也得到了正确的查询结果。

(8)从student表中查询年龄25~28岁的学生信息。

该操作属于单表查询操作,SQL语句如下所示:

mysql> SELECTstu_id,stu_name,sex,-> 2016-birth ASage,department,addr-> FROMstudent-> WHERE 2016-birth BETWEEN 25 AND 28;

上述SQL语句中,2016-birth表示当前年份减去学生出生年份,得到的就是学生的年龄,并使用as操作符为列取别名为age,BETWEEN... AND...操作符用于表示某个范围之间的数。从查询结果可以看出,顺利得到要求的结果。

针对本操作也可以不使用BETWEEN... AND...操作符,改为使用关系运算符来对年龄范围进行限制,SQL语句如下所示:

mysql> SELECTstu_id,stu_name,sex,-> 2016-birth ASage,department,addr-> FROMstudent-> WHERE 2016-birth>=25 AND 2016-birth<=28;

(9)在student表中统计每个院系各有几个学生。

该操作属于单表查询操作,使用GROUP BY 分组查询,通过院系department来分组, SQL语句如下所示:

mysql> SELECT department AS "院系", COUNT(id) AS"人数"-> FROMstudent-> GROUP BY department;

从上述查询结果可以看出,每个院系的学生均为2个人。

(10)查询每个院系学生中的最高分。

该操作属于多表查询操作,SQL语句如下所示:

mysql> SELECT MAX(grade),department-> FROMscore-> LEFT JOIN student ON score.stu_id =student.st-> GROUP BY department;

上述SQL语句执行成功后,顺利查询出了每个院系学生的最高分。

(11)查询学生貂蝉的考试科目(c_name)和考试成绩(grade)

该操作属于多表查询操作,SQL语句如下所示:

mysql> SELECTstu_name,c_name,grade-> FROMscore-> LEFT JOIN student ON score.stu_id =student.stu_id-> WHERE stu_name= "貂蝉";

(12)查询计算机成绩低于95的学生信息。

SQL语句如下:

mysql> SELECTstu_name,sex,birth,addr,c_name,grade-> FROMstudent-> LEFT JOIN score ON score.stu_id =student.stu_id-> WHERE c_name = "计算机" AND grade<95;

(13)查询同时参加计算机和英语考试的学生的信息。

SQL语句如下:

mysql> SELECT *

-> FROMstudent-> WHERE stu_id =ANY(-> SELECTstu_id-> FROMscore-> WHERE stu_id IN (SELECTstu_id-> FROM score WHERE c_name= '计算机')-> AND c_name= '英语' );

(14)从student表和score表中分别查询出学生的学号,然后合并查询结果。

SQL语句如下:

mysql> SELECT stu_id FROMstudent-> UNION

-> SELECT stu_id FROM score;

(15)查询姓张或者姓王的同学的个人信息、院系和考试科目及成绩。

SQL语句如下:

mysql> SELECTstudent.stu_id, stu_name,sex,birth,->addr, c_name,grade-> FROMstudent, score-> WHERE (stu_name LIKE '张%' OR stu_name LIKE '王%')-> AND (student.stu_id=score.stu_id) ;

(16)查询山西省的学生的姓名、出生年份、院系、考试科目及成绩。

SQL语句如下:

mysql> SELECTstu_name,birth,department, c_name,grade-> FROMstudent, score-> WHERE addr LIKE '山西%'

-> AND student.stu_id=score.stu_id;

mysql实际综合案例_Mysql综合案例相关推荐

  1. mysql用在核心业务_MySQL 企业案例:误删核心业务表

    问题描述: 1.正在运行的网站系统,MySQL 数据库,数据量 25G,日业务增量 10 - 15M 2.备份策略:每天 23:00,计划任务调用 mysqldump 执行全备脚本 3.故障时间点:上 ...

  2. mysql数据库索引案例_MySQL 数据库案例优化分享-爱可生

    原标题:MySQL 数据库案例优化分享-爱可生 前言 在数据库表结构变更发布之前,我们会和开发沟通索引设计是否合理,发现部分开发同学对于索引设计还是有一些知识盲区.本文把常见的案例记录下来,做个分析, ...

  3. mysql客户端启动失败_MySQL Study案例之--MySQL客户端连接故障

    MySQL Study案例之--MySQL客户端连接故障 系统环境: 操作系统:RedHat EL6 DB Soft:  MySQL 5.6.4-m7 在系统安装了源码包 MySQL 5.6.4-m7 ...

  4. mysql 故障案例_mysql故障案例

    ##错误: ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'dede' mysql> create data ...

  5. mysql分页案例_MySQL优化案例系列-mysql分页优化

    通常,我们会采用ORDER BY LIMIT start, offset 的方式来进行分页查询.例如下面这个SQL: SELECT * FROM `t1` WHERE ftype=1 ORDER BY ...

  6. 手机背光检测设备,三菱5U程序案例,4轴伺服控制,串口通讯,成熟项目案例,综合功能块,ST,梯形图,结构化写法

    手机背光检测设备,三菱5U程序案例,4轴伺服控制,串口通讯,成熟项目案例,综合功能块,ST,梯形图,结构化写法,思路清晰,包含PLC程序,触摸屏程序,IO规划表,电气图,附赠机台生产视频. YID:3 ...

  7. mysql联合索引案例_mysql多个联合索引的案例分析

    mysql多个联合索引的案例分析 发布时间:2020-11-23 14:54:29 来源:亿速云 阅读:61 作者:小新 小编给大家分享一下mysql多个联合索引的案例分析,相信大部分人都还不怎么了解 ...

  8. java对mysql的简单操作的综合运用——登录+注册+修改密码

    本篇博客是java对mysql的简单操作的综合运用--登录系统.java对mysql的简单操作的综合运用--注册系统.java对mysql的简单操作的综合运用--修改密码系统的整合. 因为使用的是数据 ...

  9. java对mysql的简单操作的综合运用——修改密码系统

    本篇博客运用到: java连接mysql数据库连接 java对mysql的简单操作--修改数据 下面是修改密码系统的完整代码 import java.awt.event.ActionEvent; im ...

最新文章

  1. java算法之冒泡排序
  2. android上运行java命令,Java exec()不在android上运行busybox命令
  3. 栈的应用--中序表达式转后序表达式
  4. 刚刚,自动驾驶路测国家规范出台:无人车即将开上更多实际道路
  5. 过来人的亲身经验告诉你,如何从菜鸟晋升月薪过万的测试工程师
  6. 如何识别媒体偏见_面部识别技术存在偏见:为什么我们不应该盲目相信新技术
  7. 《HTTP权威指南》学习总结1——HTTP协议概述
  8. Docker--一门值得你学习的手艺
  9. 输入日期查星座 php,php根据日期显示所在星座的方法_PHP
  10. 使用Android Profiler连接成功后app闪退中断解决方法
  11. Verilog 中signed和$signed()的用法
  12. autoware.auto版本说明
  13. ubuntu20.04 使用 rplidar A2过程记录
  14. c语言内生变量,在经济分析中常用的变量有内生变量与()。 A.存量 B.流量 C.变量 D.外生变量...
  15. Direct2D 1.1
  16. Ubuntu安装Mysql启用远程连接
  17. 贴吧引流效果怎么样?当机会来了你在做什么?
  18. 方块跟着鼠标移动的案例
  19. Final Cut Pro X 教程
  20. python单词词频字典_Python字典使用--词频统计的GUI实现

热门文章

  1. 深度学习中的互信息:无监督提取特征
  2. RocketMQ 错误:The broker does not support consumer to filter message by SQL92
  3. mybatis解决属性名和数据列名不一致
  4. php echo表单提交_PHP常见面试题及答案
  5. windbg 查看结构体_用WinDbg进行调试
  6. TensorFlow——[基本图像分类]fashion-mnist及mnist_reader.py运行错误[TypeError: Invalid dimensions for image data]
  7. JavaScript——String转DOM对象解决方案
  8. Reverse a Substring
  9. Little Sub and Game
  10. gitlab合并分支后需要提交吗_gitlab使用总结