mysql实际综合案例_Mysql综合案例

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;

原文:http://www.cnblogs.com/justdoitba/p/7619921.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2012年I / O之后

从注册到赠品&#xff0c;每年的I / O疯狂都在不断发展。 在今年20分钟内被出售&#xff0c;并没有阻止Google赠送更多的东西。 以这种速度并有望在明年发布Google Glass&#xff0c;明年注册很可能会变得更加混乱&#xff01; 因此&#xff0c;Google&#xff0c;请停止提供免…

h5启动原生APP总结

许久没有写博客了&#xff0c;最近有个H5启动APP原生页面的需求&#xff0c;中间遇上一些坑&#xff0c;看了些网上的实现方案&#xff0c;特意来总结下 一、需要判断客户端的平台以及是否在微信浏览器中访问 1、客户端判断 在启动APP时&#xff0c;Android和IOS系统处理的方式…

mysql导入创建表空间_oracle创建表空间 用户 数据库导入和导出(转)

已经安装orcale 9i 和pl/sql(6.0)OracleJobSchedulerORCL、OracleOraDb10g_home1iSQL*PlusOracleOraDb10g_home1TNSListenerOracleServiceORCL第一个是oem控制台服务进程第二个是定时器和isql*plus的服务进程第三个是监听器的服务进程最后是数据库服务进程1. pl/sql客户机安装后…

什么时候使用Apache Camel?

Apache Camel是JVM / Java环境中我最喜欢的开源框架之一。 它可以轻松集成使用多种协议和技术的不同应用程序。 本文介绍了何时使用Apache Camel以及何时使用其他替代方法。 问题&#xff1a;企业应用程序集成&#xff08;EAI&#xff09; 由于新产品和新应用&#xff0c;几乎…

念整数

念整数&#xff08;5分&#xff09;题目内容&#xff1a; 你的程序要读入一个整数&#xff0c;范围是[-100000,100000]。然后&#xff0c;用汉语拼音将这个整数的每一位输出出来。 如输入1234&#xff0c;则输出&#xff1a; yi er san si注意&#xff0c;每个字的拼音之间有一…

python 比较运算符放在列表中_在Python3中将运算符放在列表中

我想把操作符作为一个列表&#xff0c;然后从列表中调用一个元素作为操作符。在如果我没有在运算符周围加引号&#xff0c;那么列表中逗号的语法错误&#xff1a;File "p22.py", line 24cat [,-,*]^SyntaxError: invalid syntax如果我把引语放在周围&#xff0c;那么…

软工个人总结

目录 一、个人提升二、写下属于自己的人月神话三、对下一届、后来人、自己的建议四、我的团队——Clover五、关于代码质量六、学过软件工程&#xff1f;七、自我介绍八、个性发挥一、个人提升 1. 开学初的目标 希望通过团队合作领会团队合作的内在精神&#xff0c;希望在分工完…

Tomcat上下文JUnit @Rule

创建测试上下文的JUnit Rule的初稿。 这可以用Spring上下文规则可用于 这个帖子 创建集成测试一个完整的Spring上下文。 import org.apache.commons.dbcp.BasicDataSource; import org.apache.log4j.Logger; import org.junit.rules.TestRule; import org.junit.runner.Descrip…

排序算法之(7)——堆排序

【堆排序的思路】 堆排序主要是利用了堆的性质。对于大顶堆&#xff1a;堆中的每一个节点的值都不小于它的孩子节点的值&#xff0c;具体可參考我的还有一篇博客http://blog.csdn.net/adminabcd/article/details/46880591&#xff0c;那么大顶堆的堆顶元素就是当前堆中全部元素…

HTML基础:基本标签简介(3)

html中有很多标签&#xff0c;下面介绍最基本的几个标签。 1、meta 是head标签中的一个辅助性标签。 有2个重要属性&#xff1a; &#xff08;1&#xff09;name 可以优化页面被搜索到的可能性。name中可以指定属性&#xff0c;content是属性值。 <html><head><…

java 字符码_Java字符编码

编码原理介绍(中文编码杂谈)&#xff1a;int -> byte可以直接使用强制类型转换: byte b (byte) aInt;这个操作是直接截取int中最低一个字节&#xff0c;如果int大于255&#xff0c;则值就会变得面目全非了byte -> int这里有两种情况&#xff0c;一种是要求保持值不变&am…

重新登录:重新登录

嗨&#xff0c;我再次回到日志中来&#xff0c;这是任何应用程序设计和开发的固有部分。 我是坚强的基础知识的忠实拥护者&#xff0c;在我的拙见中&#xff0c;日志记录是任何企业级应用程序中经常被忽略但基本的关键要素之一。 我已经写在此之前这里 。 为了理解当前文章&…

eclipse 下使用git clone

方法一&#xff1a;eclipse安装好git插件后&#xff0c;直接import-git-project from git- clone url-输入github的网址等就可以了方法二&#xff1a;使用git软件&#xff0c;到指定的目录&#xff0c;右击git bash here&#xff0c;git clone 加带有网址的文件.git,如&#xf…

linux -unrar解压缩

解压缩命令unrar的使用&#xff1a; $unrar --help用法: unrar <command>-<switch 1> -<switchN> <archive><files...><listfiles...><path_to_extract\><命令>e 解压文件到当前目录l[t,b] 列出压缩文档信…

终极JPA查询和技巧列表–第3部分

在阅读第三部分之前&#xff0c;请记住本系列的第一部分和第二部分 JPA&#xff1a;通过查询创建对象 JPA允许我们在查询内创建对象&#xff0c;并带有所需的值&#xff1a; package com.model;public class PersonDogAmountReport {private int dogAmount;private Person pe…

分治1--二分查找

分治1--二分查找 一、心得 二、题目和分析 三、代码和结果 1 #include <iostream>2 using namespace std;3 int a[10]{1,2,4,5,7,8,9,10,13,20};4 5 6 //非递归 7 int find(int i){8 int l0,r9;9 int mid(lr)/2; 10 while(l<r){ 11 mid(lr)/2; 12…

隐式意图启动一个Activity

隐式意图是通过指定一组动作或者属性实现&#xff0c;主要用于跨应用使用。 1.创建一个意图对象 Intent intent new Intent();2.设置意图过滤器 intent.setAction("android.intent.action.testActivity"); //对应于action intent.addCategory("android.intent.…

Spring自定义命名空间

Spring自定义命名空间提供了一种很好的方式来简化用于描述Spring应用程序上下文的bean定义的xml文件。 这是一个相当古老的概念&#xff0c;最初是在Spring 2.0中引入的&#xff0c;但值得不时地进行审查。 考虑一种情况&#xff0c;必须为没有自定义名称空间的Spring MVC应用程…

java二叉树代码_JAVA语言实现二叉树生成的代码教程

本文主要向大家介绍了JAVA语言实现二叉树生成的代码教程&#xff0c;通过具体的内容向大家展示&#xff0c;希望对大家学习JAVA语言有所帮助。给定某二叉树三序遍历中的两个&#xff0c;我们即可以通过生成该二叉树&#xff0c;并遍历的方法&#xff0c;求出剩下的一序&#xf…

一个回到顶部的锚点

一般网站的右下角都会有一个回到顶部的锚点&#xff0c;但是在没有学bootstrap的时候&#xff0c;我还是会想着用定位来做这个东西&#xff0c;但是现在用bootstrap来做的&#xff0c;所以将它记录下来。 <!DOCTYPE html><html> <head><title>附加导航…