`

查询语句

 
阅读更多

SQL语句与多表查询

首先先了解一下一些基本的概念问题:

1.group by是分组查询一般和聚合函数一起使用。

例如:

Select   studentID,Count(*)   From   sc   Group   By   score Having   Count(*)   >   1

 常用的聚合函数有sum,count,等。

学生表(student)(学号,姓名,性别,年龄,学院),课程表(course)(课程号,课程名,学分),学生选课表(SC)(学号,课程号,成绩)
/*
SQLyog Enterprise - MySQL GUI v7.11 
MySQL - 5.0.21-community-nt : Database - toutiao
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

CREATE DATABASE /*!32312 IF NOT EXISTS*/`toutiao` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `toutiao`;

/*Table structure for table `course` */

DROP TABLE IF EXISTS `course`;

CREATE TABLE `course` (
  `id` int(11) NOT NULL auto_increment,
  `courseID` int(11) NOT NULL,
  `courseName` varchar(11) NOT NULL,
  `credit` int(4) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

/*Data for the table `course` */

insert  into `course`(`id`,`courseID`,`courseName`,`credit`) values (1,0,'',0);

/*Table structure for table `sc` */

DROP TABLE IF EXISTS `sc`;

CREATE TABLE `sc` (
  `id` int(11) NOT NULL auto_increment,
  `studentID` int(11) NOT NULL,
  `courseID` int(11) NOT NULL,
  `score` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

/*Data for the table `sc` */

insert  into `sc`(`id`,`studentID`,`courseID`,`score`) values (1,1101,1101,89),(2,1101,1102,67),(3,1101,1103,90),(4,1101,1104,89),(5,1101,1105,89),(6,1102,1101,69),(7,1102,1102,69);

/*Table structure for table `student` */

DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (
  `id` int(11) NOT NULL auto_increment,
  `sno` varchar(11) NOT NULL default '',
  `username` varchar(11) NOT NULL default '',
  `sex` char(2) NOT NULL,
  `age` int(4) NOT NULL,
  `collage` varchar(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

/*Data for the table `student` */

insert  into `student`(`id`,`sno`,`username`,`sex`,`age`,`collage`) values (1,'11','11','',0,''),(2,'11','11','',0,''),(3,'33','jou','',0,''),(4,'11','fff','',0,'');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
 
1.学生中其他学院比计算机学院姓“刘”的学生年龄都小学生(结果列:学号,姓名,年龄,学院)


2.查询选修了2门以上课程的学生(结果列:学号,姓名)


3.查询没门课程都大于80分的学生(结果列:学号,姓名)


4,如果下表为生产加工每个计划对应的成品,退料,余料,废次材捆包的个数
计划号      捆包类型     个数
001         成品         5
001         退料         2
002         成品         4
002         余料         1
002         废次材       1
003         成品         5
003         废次材       1
用一句select语句实现以下方式统计各个计划对应各个类型捆包的个数:
计划号      成品     退料   余料   废次材
001         5        2       0      0
002         4        0       1      1
003         5        0       0      1



5.写出一句SQL语句:取出表A中第31DAO第40记录(已自动增长的ID作为主键。注意:ID可能不是连续的。)

6,如何删除一个表中某个字段记录重复的记录(重复的只要保留一条)

 

 

 6.1查询表中多余的重复记录,重复的记录以字段(studentID)为根据。

select   *   from   sc where   studentID  in   
(select     studentID     from     sc     group     by     studentID     having     count(studentID)   >   1)

 6.2查询表中重复记录,重复的记录以(studentID,score)为根据,即是多个字段。

select * from sc a where (a.studentID,a.score) in 
(select studentID ,score from sc group by studentID,score having count(*)>1);

 6.3查询表中重复记录,重复的记录以(studentID,score)为根据,但是重复记录中不包含(id)最小的这条记录。

 

select * from sc a where (a.studentID,a.score)in     
(select   studentID,score from  sc   group  by  studentID,score   having   count(*)   >   1)
and   id   not   in   (select   min(id)   from   sc   group   by   studentID,score  having   count(*)> 1)

 

 

           数据库的基础之二

分享到:
评论

相关推荐

    最全sql查询语句练习题汇总(面试必备)

    最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习...

    数据库函数和查询语句

    本文主要讨论数据库中的函数、查询语句及其相关概念。 首先,`INSERT`语句用于向表中添加新的记录。你可以指定要插入的列名以及对应的值,如果省略列名,那么默认会为表的所有列插入值。例如,`INSERT INTO ...

    XML查询语句转换成SQL语句的实现.pdf

    XML 查询语句转换成 SQL 语句的实现 本文主要讨论将 XML 查询语句转换成 SQL 语句的实现。XML 已经成为 Internet 上数据交换的事实标准,特别是在 Web 数据挖掘技术中,对数据源的结构化需求导致人们对 XML 文档的...

    可视化sql查询语句生成器

    可视化SQL查询语句生成器是一种高效且用户友好的工具,专为那些不熟悉或不习惯编写SQL代码的用户设计。这种工具通常具有图形用户界面(GUI),允许用户通过直观的界面来构建复杂的查询,而无需直接输入SQL命令。在...

    数据库查询语句(SQL语句)大全

    数据库查询语句,通常以SQL(Structured Query Language)为代表,是数据管理与处理的核心工具。SQL语句大全涵盖了从基础到高级的各种查询结构,适用于多种情况,为数据库操作提供了全面的指南。 一、SQL基本概念 ...

    经典的SQL查询语句,将内容作为字段查询

    当我们谈论“经典的SQL查询语句,将内容作为字段查询”时,我们通常是指在SQL中使用内容作为查询的一部分来检索特定数据。这样的查询对于数据分析师、数据库管理员以及任何需要从大量数据中提取信息的人来说至关重要...

    SQLserver查询语句大全

    SQL Server 查询语句大全 SQL Server 查询语句大全是数据库查询语言的基础,掌握这些语句是数据库管理和开发的基础。本文档将详细介绍 SQL Server 查询语句的基本结构、选择列表、FROM 子句、WHERE 子句、ORDER BY ...

    2-SQL查询语句1

    SQL 查询语句详解 在本节中,我们将对给定的 SQL 查询语句进行详细的解释和分析,从而了解这些查询语句的执行过程和实现逻辑。 1. 查询所有心血管内科的专家号医生 该查询语句使用了多表连接和子查询来查询所有心...

    Oracle查询语句大全-精华版

    Oracle 查询语句大全-精华版 Oracle 查询语句大全是 Oracle 数据库管理系统中最基本也是最重要的组成部分,用于管理和维护数据库。本文将详细介绍 Oracle 查询语句的使用方法和实践操作。 一、创建用户和授权 在 ...

    SQL数据库查询语句基础文本——可复制的查询语句

    本资源“SQL数据库查询语句基础文本——可复制的查询语句”提供了丰富的SQL语句实例,不仅方便用户直接在数据库中运行,还配以中文解释,帮助理解其工作原理。 1. **基本查询** SQL的基本查询包括`SELECT`语句,...

    SQL server查询语句例子

    SQL Server 查询语句实例详解 SQL Server 查询语句是数据库管理系统中的一种基本语言,用于对数据库进行各种操作。下面是一些经典且实用的 SQL Server 查询语句实例,涵盖了多种查询场景和技术。 1. 查找员工的...

    SQL查询语句生成器

    SQL查询语句生成器是一种工具,它帮助用户无需手动编写复杂的SQL命令,即可自动生成所需的查询语句。这种工具在数据库应用中极为重要,尤其对于那些不熟悉SQL语法或者希望提高工作效率的用户来说,它是宝贵的资源。...

    数据库基本查询语句

    数据库基本查询语句 在本篇文章中,我们将对数据库的基本查询语句进行详细的介绍,涵盖了数据库的创建、删除、备份、表的创建、删除、修改、索引的创建、视图的创建等多个方面。 首先,让我们简要介绍基础语句。...

    sql查询语句详细实例教程

    SQL查询语句详细实例教程 SQL查询语句是数据库管理系统中最基本的查询语言,用于从数据库中检索数据。下面是SQL查询语句的详细实例教程。 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE...

    mysql常用性能查询语句

    MySQL 常用性能查询语句 MySQL 是一种关系型数据库管理系统,提供了多种方式来查询和优化数据库性能。本文总结了一些常用的 MySQL 性能查询语句,帮助数据库管理员和开发人员更好地了解和优化数据库性能。 1. 查看...

    SQL常用查询语句大全

    本资料"SQL常用查询语句大全"是一份非常适合初学者的教程,它涵盖了SQL语言的基本概念和常用操作。 首先,我们要理解SQL的四大基本操作:SELECT(选择)、INSERT(插入)、UPDATE(更新)和DELETE(删除)。这些...

    SQL查询语句大全SQL查询语

    本资源“SQL查询语句大全”显然是一份全面介绍SQL查询的资料,涵盖了各种基本和高级查询技巧。下面我们将深入探讨SQL查询的一些核心知识点。 1. **SQL基础** - **SELECT语句**:这是SQL中最常用的语句,用于从...

    oracle数据库常见99条的查询语句

    ### Oracle数据库常见查询语句详解 #### 1. 基础查询 - **SQL语句**: `SELECT * FROM emp;` - **说明**: 查询`emp`表中的所有记录。 - **SQL语句**: `SELECT empno, ename, job FROM emp;` - **说明**: 查询`emp`...

    ACCESS数据库与SQL查询语句生成示例

    以下是对"ACCESS数据库与SQL查询语句生成示例"的详细解释: 1. **ACCESS数据库基础**:ACCESS是一个桌面数据库管理系统,基于关系数据库模型,允许用户存储和管理各种类型的数据,如文本、数字、日期/时间等。它...

Global site tag (gtag.js) - Google Analytics