zoukankan      html  css  js  c++  java
  • 数据库题目

    1、数据库表书Book,字段 BookID,Bookname、Price、PublicID;表出版社Pulic,字段PublicID、PublicName、PublicTEL
    1)查询出Book表Price超过20的书,按BookID降序;
    2)统计出每个出版社里所有书Book的平均价格Price;
    3)所有书价格下调5%。

    1、SQL语句:
    select BookID,Bookname,Price,PublicID from Book where Price>20 Order by BookID desc;

    2、SQL语句:
    Select PublicID,avg(Price) from Book group by PublicID;

    3、SQL语句:
    update Book set price=price*(1-5%)

    2、详见下图
    根据以下表格,按要求写出SQL语句
    Order_history表格
    Date(日期) Name(用户名) Game_id(游戏ID) Amout($)(充值金额)
    2017-02-01 张三 100 100
    2017-02-02 李四 101 60
    2017-02-03 李四 100 500
    2017-02-03 张三 102 200
    2017-02-04 王五 100 1000
    1、统计2017-02-01到2017-02-04时间段内“张三”充值的次数;
    2、修改2017-02-03那天“张三”的充值金额为2000;
    3、查询2017-02-03这天的充值金额在100到1000的人员名单。

    1、SQL语句:
    Select count(Amout) from Order_histoty group by name having Name=’zhangsan’;

    2、SQL语句
    update Order_history set Amout=2000 where Date=to_date(‘20170203’,’yyyy-mm-dd’) and name=’张三’;

    3、SQL语句:
    Select name from Order_histoty where day=to_date(‘20170203’,’yyyy-mm-dd’) and (Amout>=100 and Amout<=1000);



    3、假设mysql数据库有两张表,储数据为某班级所有学生的语文、数学、英语成绩,请使用MYSQL语法写出查询语句,查询此班级内有哪些同学的所有科目都及格。
    A)表a字段:姓名、学号
    B)表b字段:学号、学科、分数

    SQL语句:

    找到学号对应的所有学科中分数最低的大于60,那么所有学科都及格了。

    1、按学号分组找出该组最低的分数
    (select 学号,min(分数) from b group by 学号)

    找出学号:
    Select 学号 from (select 学号,min(分数) from b group by 学号) where min>60

    找出姓名:
    select 姓名 from a in(Select 学号 from (select 学号,min(分数) from b group by 学号) where min>60);

    4、详见下图
    有如下两张数据表:
    部门表:tb_Depts (部门ID、部门名称)
    员工表:tbl_Employees (员工ID、部门ID、姓名)
    请用一条SQL查询语句,查询出以下结果,没有部门的员工的部门名称字段用“未标志”代替。
    员工ID 部门ID 姓名 部门名称
    1 1 员工1 部门1
    2 2 员工2 未标识

    SQL> select tbl_Employees.*,tb_Depts. 部门名称 from tbl_Employees inner join tb_D
    epts on (tb_Depts.id=tbl_Employees. 部门ID);

    5、题目如下:
    表student ,表Achievement
    某班学生和考试成绩信息分别如下表student和表Achievement所示:
    student achievement
    ID Name ID Mark
    1 Jack 1 90
    2 Marry 2 96
    3 Rose 3 88
    4 Bob 4 86
    5 John 5 83
    6 Betty 6 85
    7 Robert 7

    其中ID为学生的编号,Name为姓名,Mark为成绩,请针对以下问题,写出相应的SQL语句。

    1)请查询成绩>85分的学生的姓名;
    SQL语句:select ID,Name from Student where ID IN(select ID from Achievement where Mark>85);

    2)请查询成绩>=90分的人数;
    SQL语句:select count(Mark) from (select ID,Mark from Achievement where Mark>=90 );

    3)Robert此次考试考了80分,但是成绩没能录入表中,请将其成绩添加进去;
    SQL语句:update Achievement set Mark=80 where ID= (select ID from Sudent where Name=’ Robert’);

    4)请将Rose的成绩修改为87;
    Update Achievement set Mark=87 where ID= (select ID from Student where Name=’Rose’);

    update Achievement set Mark=87 where ID=3;

    5)请删除Betty的两个表的记录;
    SQL语句:
    delete from Achievement where ID=(select ID from Sudent where Name=’ Betty’);

    delete from Student where Name=’ Betty’;

    6)请你使用熟悉的语言将Achievvement表的分数由高到低排序并打印。

    Select Mark from Achievement Order by Mark desc;

    用一条SQL 语句 查询出每门课都大于80 分的学生姓名。
    表名为chengji
    name kecheng fenshu
    张三 语文 81
    张三 数学 75
    李四 语文 76
    李四 数学 90
    王五 语文 81
    王五 数学 100
    王五 英语 90
    创建表如下:

    思路:先按姓名分组,找出所有分数中最小的分数;然后在最小的分数里找出分数大于80的学生的名字。因为只有分数最低的学科都大于80分,才能保证每门课都大于80分。

    SQL语句1: select name from (select name,min(fengshu) minfengshu from chengji group by name ) where minfengshu>80;

    SQL语句2:select name from chengji group by name having min(fengshu)>80;

    SQL语句1和SQL语句2实现了一样的功能。

  • 相关阅读:
    处理SVN的提交代码冲突
    Oracle对表解锁的操作
    Eclipse 安装反编译插件jadclipse
    如何由jdk的安装版本改成非安装版本
    ASP.NET Web API与Rest web api(一)
    使用C#发送正文带图片邮件
    Silverlight页面通过继承扩展实现
    九度 1347:孤岛连通工程(最小生成树)
    九度 1209:最小邮票数(多重背包)
    利用栈将中缀表达式转化成后缀表达式
  • 原文地址:https://www.cnblogs.com/xianmin/p/14017081.html
Copyright © 2011-2022 走看看