8月21日成长题目

1.a.用一条SQL语句查询出表TB1中每门课都大于80分的学生姓名

select DISTINCT name from TB1 where name not in(select DISTINCT name from TB1 where fenshu<80);

b.用一条SQL语句查询出表TB1中学生姓名及大于80分的科目门数

select name,COUNT(fenshu)  from TB1 group by name where fenshu>80;

c.查询出姓“张”的学生名称

select name from TB1 where name like '张%';

name       kecheng       fenshu

张三          语文             81

张三          数学             75

李四          语文             76

李四          数学             90

王五          语文             81

王五          数学             100

 

2.复制表,只复制表结构,原表名:a 新表名:b ,并且在新表中增加一列字段名称为"goods_prc"的数字型。

alter table b  add(goods_prc number);

select *,1 as goods_prc into b from a where 1=2;

3.请说明exists与IN的异同,及union all与union的区别

IN确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,按照条件进行筛选。所以 相对内表比较小的时候,IN的速度较快。

exists指定一个子查询,检测行的存在。遍历循环外表,然后看外表中的记录有没有和内表的数据一样的。匹配上就将结果放入结果集中。

UNION查询出的结果如果有相同的,则去重。UNION ALL会展示所有结果,不去重。  

4.表中有A B  C  三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

select case
when a > b then
a
when b > a then
b
when b > c then
b
when b < c then
c
end
from table;

 

select (case when a>b then a else b end),(case when b>c then b esle c end) from table_name;

5.建立一个存储过程,返回今天是2013年中的第多少天。

select  add_months(trunc(sysdate),-(2019-2013)*12) - date'2013-01-01' from dual;

请用自己 擅长的语言(VB优先)

1.请写一个循环,把数据从0加到100,然后输出来?

int sum =0;
for (int i = 0; i <= 100; i++){
sum = sum + i;
}
System.out.println(sum);

2.从界面接收一个数据,如果大于90,输出优秀,大于60输出合格,否则输出不及格

Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int a = scanner.nextInt();
if(a<60){
System.out.println("不及格");
} else if(a>60&&a<90){
System.out.println("中等");
}else if(a>90){
System.out.println("优秀");
}
posted @ 2019-08-21 21:45  上下平中  阅读(176)  评论(0编辑  收藏  举报