1、求1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低列出。(表名:成绩表。字段名:课号,学号,成绩。)
SELECT 学号,成绩 FROM 成绩表 WHERE 课号=1 AND 成绩>80 ORDER BY 成绩 DESC
 
2、列出非软件专业学生的名单。(表名:学生表。字段名:学号,性别,姓名,专业。)
SELECT 姓名 FROM 学生表 WHERE  专业 not in ('软件')
 
3、查询成绩在70~80分之间的学生选课得分情况。(表名:选课表。字段名:课号,学号,成绩。)
SELECT * FROM 选课表 WHERE 成绩 BETWEEN 70 AND 80
 
4、列出选修1号课或3号课的全体学生的学号和成绩。(表名:选课表。字段名:课号,学号,成绩。)
方法一:SELECT 学号,成绩 FROM 选课表 WHERE 课号=1 OR 课号=3
方法二:SELECT 学号,成绩 FROM 选课表 WHERE 课号 IN (1,3)
 
5、列出所有98级学生的学生成绩情况。(表名:选课表。字段名:课号,学号,成绩,班级。)
SELECT * FROM 选课表 WHERE 学号 LIKE "98%"
 
6、列出成绩为空值(或不为空值)的学生的学号和课号。(表名:选课表。字段名:课号,学号,成绩。)
答案一:SELECT 学号,课号 FROM 选课表 WHERE 成绩 IS NULL
答案二:SELECT 学号,课号 FROM 选课表 WHERE 成绩 IS NOT NULL
 
7、求出所有学生的总成绩。(表名:选课表。字段名:课号,学号,成绩。)
SELECT SUM(成绩) AS 总成绩 FROM 选课表
 
8、列出每个学生的平均成绩。(表名:选课表。字段名:课号,学号,成绩。)
SELECT 学号,AVG(成绩) AS 平均成绩 FROM 选课表 GROUP BY 学号
 
9、列出各科的平均成绩、最高成绩、最低成绩和选课人数。(表名:选课表。字段名:课号,学号,成绩。)
SELECT 课号,AVG(成绩) AS 平均成绩,MAX(成绩) AS 最高分,MIN(成绩) AS 最低分,COUNT(课号) AS 选课人数
FROM 选课表 GROUP BY 课号
 
10、列出选修1号课的学生姓名及成绩。【表名:学生表(字段名:学号,性别,姓名,专业。)】;【表名:成绩表(字段名:课号,学号,成绩。)】
SELECT 姓名,成绩 FROM 学生表,成绩表 WHERE 学生表.学号=成绩表.学号 AND 课号=1
 
11、列出选修1号课的学生的学号、姓名及成绩。【表名:学生表(字段名:学号,性别,姓名,专业。)】;【表名:成绩表(字段名:课号,学号,成绩。)】
SELECT 学生表.学号,姓名,成绩 FROM 学生表,成绩表 WHERE 学生表.学号=成绩表.学号 AND 课号=1
 
12、求出总成绩大于150的学生的学号、姓名及总成绩。【表名:学生表(字段名:学号,性别,姓名,专业。)】;【表名:成绩表(字段名:课号,学号,成绩。)】
SELECT 学生表.学号,学生表.姓名,SUM(成绩) AS 总成绩 FROM 学生表,成绩表
WHERE 学生表.学号=成绩表.学号 GROUP BY 学生表.学号,学生表.姓名 HAVING SUM(成绩)>150
 
13、实战基础题一

Student(S#,Sname,Sage,Ssex) 学生表
Course(C#, Cname ,T#) 课程表
SC(S#, C#, score)成绩表
Teacher (T#, Tname) 教师表
 
1,查询平均成绩大于60分的同学的学号和平均成绩;
select SC.s#,avg(SC.score)
from SC
group by SC.s#
having avg(SC.score)>60;
2,查询所有同学的学号,姓名,选课数,总成绩;
     select d.s#,d.sname,count(distinct s.c#),sum(s.score)
    from Student d,SC s
     where d.s#=s.s#
      group by  d.s#, d.sname;
3,查询所有课程成绩小于60分的同学的学号,姓名
SELECT stu.S#,stu.Sname FROM SC sc, student stu
 WHERE stu.S# = sc.S# GROUP BY stu.S# ,stu.Sname
 HAVING MAX(sc.score) < 60;
4,删除学习'叶平'老师课的SC 表记录;
DELETE  FROM  SC WHERE   S#
IN (
   SELECT DISTINCT sc.S# FROM SC sc, course c, teacher t
   WHERE sc.C# = c.C# AND c.T# = t.T#
   AND t.tname = '叶平');
delete from SC where C# in
(select C# from Course,Teacher where Course.T#=Teacher.T#
AND Tname='叶平' );
delete from SC where C# in
(SELECT C# from Course where T# in
(select T# FROM Teacher WHERE Tname='叶平' ) );
5,查询各科成绩最高和最低的分:以如下形式显示:课程ID, 最高分,最低分。
select C# 课程ID, max(score) 最高分 ,min(score) 最低分
from SC
GROUP BY C#;
 
14、实战基础题二
有两张表: 部门表department 部门编号dept_id 部门名称dept_name
员工表employee 员工编号emp_id 员工姓名emp_name 部门编号dept_id 工资emp_wage
根据下列题目写出sql:
1、列出工资大于5000的员工所属的部门名、员工id和员工工资
select a.dept_name,  b.emp_id , b.emp_wage
 from department a , employee b
 where a.dept_id= b.dept_id and b.emp_wage> 5000;
2、列出员工表中的部门id对应的名称和员工id (左连接)
select   a.dept_id , b.dept_name,a.emp_id  from employee a
left join department b
on a.dept_id= b.dept_id;
3、列出员工大于等于2人的部门编号
select dept_id,count(emp_id) from employee group by dept_id having count(emp_id)>=2;
4、列出工资最高的员工姓名
select emp_name ,emp_wage
 from employee
 where emp_wage = (select max(emp_wage) from employee);
select  emp_name,max(emp_wage) 
from employee
group by emp_name
having max(emp_wage) = (select max(distinct emp_wage) from employee);
5、求各部门的平均工资
select a.dept_id,a.dept_name ,avg(emp_wage)
from department a,employee b 
where a.dept_id= b.dept_id
group by a.dept_id,a.dept_name;
6、求各部门的员工工资总额
select a.dept_id,a.dept_name ,sum(emp_wage)
from department a,employee b 
where a.dept_id= b.dept_id
group by a.dept_id,a.dept_name;
7、求每个部门中的最大工资值和最小工资值,并且它的最小值小于5000,最大值大于10000
select dept_id , max(emp_wage) 最高工资, min(emp_wage) 最低工资
 from employee
group by dept_id
having  max(emp_wage)>10000 and min(emp_wage)<5000;
8、假如现在在库中有一个和员工表结构相同的空表employee2,请用一条sql语句将employee表中的所有记录插入到employee2 中。
 insert into employee2 select * from employee;
 

Sql语句基础练习(一)的更多相关文章

  1. SQL语句基础之 单表查找

    Sql语句之 单表查询 一.一般查询 1.查看表中的所有记录 以及 所有字段(属性) 语句 : select * from student; 2.只查看某些字段 语句:select sname,sex ...

  2. 精妙SQL语句 基础

    精妙SQL语句SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作,方便自己写SQL时方便一点,想贴上来,一起看看,同时希望大家能共同多多提意见,也给我留一些更好的佳句, ...

  3. Oracle PL/SQL语句基础学习笔记(上)

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL ...

  4. MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系

    数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于 ...

  5. 【MySQL】SQL语句基础

    一.操作数据库 1.1 创建数据库 1.2 查看数据库 1.3 修改数据库 1.4 删除数据库 1.5 选择数据库 二.操作表 2.1 创建表 2.2 查看表 2.3 修改表 2.4 删除表 三.操作 ...

  6. SQL语句基础知识

    1.关于SQL语句中exists与not exists的问题 course表如下:课程代号 课程名称 K01 奥运会主题曲 K02 喜爱的专辑 K03 VB技术大全 K04 经典歌曲 K05 个人单曲 ...

  7. SQL语句基础之 管理数据库,表 和 数据

    MySQL中的基本sql语句 MySQL中主要有三个大的对象,第一个是数据库,有了数据库后,我们才能在数据库里面建表,因为Mysql是关系数据库,它的数据都会以记录的形式存到表里,所以第二个是表,然后 ...

  8. sql语句基础

    数据库库(DataBase):就是一个存储数据的仓库.为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上.通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据.SQL(Structu ...

  9. 第二章 基础查询 2-1 SQL语句基础

    一.列的查询 基本的SELECT语句: SELECT <列名 >,...... FROM < 表名>; 注:子句是SQL的组成要素. 注:查询结果中的列的顺序和SELECT子句 ...

随机推荐

  1. Django(三) ORM 数据库操作

    大纲 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 2.创建数据库 表结构 二.Django ORM基本增删改查 1.表数据增删改查 2.表结构修改 三.Django ORM 字段 ...

  2. Linux查看文件大小

    //查看系统中文件的使用情况 df -h //查看当前目录下各个文件及目录占用空间大小 du -sh * //查看welcome.txt文件占用空间大小 du -sh welcome.txt //方法 ...

  3. 定时任务调度工作(学习记录 二)timer定时函数的用法

    schedule的四种用法: 1.schedule(task,time) 参数: task----所安排的任务 time----执行任务的时间 作用: 在时间等于或超过time的时候执行且仅执行一次t ...

  4. request+response+jsp+el+jstl

    response: 1.设置响应行的状态码: response.setStatus(int sc); 2.设置response缓冲区的编码:response.setCharacterEncoding( ...

  5. windows下的vimrc

    很奇怪的事...不会解释 建议编译位置第一次设置为 map <F9> :call CR()<CR>func! CR()exec "w"exec " ...

  6. 【linux】工作中linux系统常用命令操作整理

    1.Linux如何查看端口 使用lsof(list open files)命令,lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000. 或者使用n ...

  7. 高并发环境下全局id生成策略

    解决方案: 基于Redis的全局id生成策略:(推荐此方法) 基于雪花算法的全局id生成: https://www.cnblogs.com/kobe-qi/p/8761690.html 基于zooke ...

  8. 商务电话思维图(XMind für Geschäftliche Telefongespräche)

    在和德国人打交道时,经常会遇到打电话的情景,应该怎么应对呢?不用担心,记住下面这个导图,轻松搞定德语电话的常用句型. 最后,按照惯例,来张美景.人越是上了年纪,就活的越是小心.但无论外界怎么样,请保持 ...

  9. 转载:Linux命令之查看文件占用空间大小-du,df

    转载自:<du命令>-linux命令五分钟系列之三 du(disk usage),顾名思义,查看目录/文件占用空间大小 #查看当前目录下的所有目录以及子目录的大小$ du -h $ du ...

  10. ./runInstaller: Permission denied

    一:问题描述 安装oracle过程中出现 二:解决 /usr/local/Oracle11./database/runInstaller /usr/local/Oracle11./database/i ...