1、mysql下建表及插入数据

/*
Navicat MySQL Data Transfer Source Server : mysql
Source Server Version : 50640
Source Host : localhost:3306
Source Database : test Target Server Type : MYSQL
Target Server Version : 50640
File Encoding : 65001 Date: 2018-11-22 18:24:08
*/ SET FOREIGN_KEY_CHECKS=0; -- ----------------------------
-- Table structure for cource
-- ----------------------------
DROP TABLE IF EXISTS `cource`;
CREATE TABLE `cource` (
`cno` int(3) unsigned NOT NULL AUTO_INCREMENT COMMENT '课程编号',
`cname` varchar(20) DEFAULT NULL COMMENT '课程名称',
PRIMARY KEY (`cno`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='课程表'; -- ----------------------------
-- Records of cource
-- ----------------------------
INSERT INTO `cource` VALUES ('', '语文');
INSERT INTO `cource` VALUES ('', '数学');
INSERT INTO `cource` VALUES ('', '英语'); -- ----------------------------
-- Table structure for score
-- ----------------------------
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (
`sno` int(3) unsigned DEFAULT NULL COMMENT '学生编号',
`cno` int(3) unsigned DEFAULT NULL COMMENT '课程编号',
`score` int(3) unsigned DEFAULT NULL COMMENT '考试成绩'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生成绩表'; -- ----------------------------
-- Records of score
-- ----------------------------
INSERT INTO `score` VALUES ('', '', '');
INSERT INTO `score` VALUES ('', '', '');
INSERT INTO `score` VALUES ('', '', ''); -- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`sno` int(3) unsigned NOT NULL AUTO_INCREMENT COMMENT '学生编号',
`sname` varchar(20) DEFAULT NULL COMMENT '学生姓名',
`sage` int(3) unsigned DEFAULT NULL COMMENT '学生年龄',
PRIMARY KEY (`sno`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='学生表'; -- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('', '周杰伦', '');
INSERT INTO `student` VALUES ('', '周润发', '');
INSERT INTO `student` VALUES ('', '吴孟达', '');
INSERT INTO `student` VALUES ('', '刘德华', '');
INSERT INTO `student` VALUES ('', '李连杰', '');

2、查询语文成绩比数学成绩高的所有学生的编号
分析思路:
(1)在学生表上添加两个字段,分别为数学成绩字段和语文成绩字段
(2)把成绩表分成两个表,语文表和数学表
书写过程:
(1)语文表
select sno, score from score where cno = 1
(2)数学表
select sno, score from score where cno = 2
(3)结果
select sno, sname, score_chinese, score_math from
    (
        select s.sno, s.sname,  score_chinese from student s
        left join (select sno sno_chinese, score score_chinese from score where cno = 1) chinese
        on s.sno = chinese.sno_chinese
    ) s_chinese
left join (select sno sno_math, score score_math from score  where cno = 2) math
on s_chinese.sno = math.sno_math
where score_chinese > score_math


3、查询所有学生的学号、姓名、选课数、总成绩
分析思路:
(1)在学生表上添加两个字段,分别为选课数和总成绩
(2)把成绩表按学生编号分组,并计算出count(*)和sum(score)
书写过程:
(1)分组并统计
select sno, count(*), sum(score) from score group by sno
(2)结果
select s.sno, s.sname, select_count, select_sum from student s
left join (select sno sno_count_sum, count(*) select_count, sum(score) select_sum from score group by sno) count_sum
on s.sno = count_sum.sno_count_sum


4、查询没有学完所有课程的学生学号、姓名
分析思路:把成绩表按学生编号并count(*)
select sno, count(cno) cno_count from score group by sno having cno_count > 1

sql in interview for a job的更多相关文章

  1. SQL Server基础知识三十三问 (1-7)

    1. SQL Server运行在什么端口上? 可以被修改么? 答: 1433端口. 可以修改的, 在SQL Server Configuration Manager的SQL Server Networ ...

  2. SQL Interview Question

    面试的时候发现会问一些SQL的基本问题,在此总结一下. ProgramInterview/SQL 这个网站上的问题还比较全. 1. Join type INNER JOIN: Returns all ...

  3. the interview questions of sql server

    1.一道SQL语句面试题,关于group by 表内容: 2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-0 ...

  4. [转]Design Pattern Interview Questions - Part 4

    Bridge Pattern, Composite Pattern, Decorator Pattern, Facade Pattern, COR Pattern, Proxy Pattern, te ...

  5. How to prevent SQL injection attacks?

    In our earlier tutorial on SQL Injection, one way to have prevented the SQL injection attack was by ...

  6. Google Interview University - 坚持完成这套学习手册,你就可以去 Google 面试了

    作者:Glowin链接:https://zhuanlan.zhihu.com/p/22881223来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 原文地址:Google ...

  7. UNIX command Questions Answers asked in Interview

    UNIX or Linux operating system has become default Server operating system and for whichever programm ...

  8. Core Java Interview Question Answer

    This is a new series of sharing core Java interview question and answer on Finance domain and mostly ...

  9. 115 Java Interview Questions and Answers – The ULTIMATE List--reference

    In this tutorial we will discuss about different types of questions that can be used in a Java inter ...

随机推荐

  1. Opserver 初探三《服务器数据监控》

    用Opserver 怎么像zabbix一样监控服务器呢,查看github官方说明,Opserver可用于连接任何支持Bosun, Orion, or direct WMI监控数据. Opserver ...

  2. [转]RESTful API 设计指南

    转自:http://www.ruanyifeng.com/blog/2014/05/restful_api.html 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机. ...

  3. python独立环境——virtualenv

    安装: pip3 intall virtualenv   创建独立运行环境: 1. 进入项目文件夹根目录 2. 创建环境 Mac:myproject michael$ virtualenv --no- ...

  4. 转载:Spring学习总结

    地址:http://www.cnblogs.com/best/tag/Spring/

  5. Java_单例模式

    主要介绍单例模式的一种写法.注意事项.作用.测试,以Java语言为例,下面代码是目前见过最好的写法: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  6. wordpress常用标记

    博客地址:bloginfo('url'); 博客名称:bloginfo("name"); 博客描述:bloginfo("decription"); 文章内容: ...

  7. wordcloud+jieba

    Wordcloud各参数含义 font_path : string #字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf' width : int (de ...

  8. R语言常用包分类总结

    常用包: ——数据处理:lubridata ,plyr ,reshape2,stringr,formatR,mcmc: ——机器学习:nnet,rpart,tree,party,lars,boost, ...

  9. ios10系统以下原生传来的base64图片无法转化为二进制

    最近在做和原生ios交互上传图片的时候,遇到原生传来的以base64图片位无法转化为二进制.因为前端上传图片的方式是以二进制的方式上传,在ios10 和安卓上,上传图片是可以的:在ios10以下,可以 ...

  10. C# WPF打包部署时添加注册表信息实现开机启动

    使用VS自带的打包模块可以很方便的对项目进行打包部署,同时我们也可以在安装部署时操作注册表实现开机启动软件.具体实现如下: 创建安装部署这部分就不用说了,添加安装部署项目后,鼠标右键安装项目-> ...