数据库测试题
一,简述题(每题5分)
1, 表:table(Id,class,score),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。
2, 表明:student
name |
course |
score |
张青 |
语文 |
72 |
王华 |
数学 |
72 |
张华 |
英语 |
81 |
张青 |
物理 |
67 |
张立 |
化学 |
98 |
张燕 |
物理 |
70 |
张青 |
化学 |
76 |
查询出“张”姓学生中平均成绩大于75分的学生信息。
3, 高考信息表:student
ID |
A |
B |
C |
D |
E |
2006001 |
108 |
119 |
98 |
127 |
136 |
2006002 |
149 |
105 |
110 |
142 |
129 |
给出高考总分在600以上的,并没有不及格(低于60分)的学生准考证号。
4, 表名:table2
购物人 |
商品名称 |
数量 |
name |
con_name |
number |
A |
甲 |
2 |
B |
乙 |
4 |
C |
丙 |
1 |
A |
丁 |
2 |
B |
丙 |
5 |
给出所有购入商品为两种或两种以上的购物人记录。
5, 表table3
C1 |
C2 |
2005-01-01 |
1 |
2005-01-01 |
3 |
2005-01-02 |
5 |
要求结果数据
2005-01-01 |
4 |
2005-01-02 |
5 |
试用一个sql语句完成。
6, 如下表(T2)为某班级某一学期的数学成绩;
学号 |
成绩 |
199801001 |
85 |
199801002 |
76 |
199801003 |
98 |
199801004 |
54 |
199801005 |
39 |
199801006 |
61 |
问题:请根据t2表的内容输出如下两行数据,要求SQL语句最简。
类别 人数
================
及格 4
不及格 2
7, 简述SELECT查询语句中避免使用“*”为什么?
8, 什么是分区表?简述范围分区和列表分区的区别,分区表的主要优势有哪些。
9, 简述EXISTS和IN的效率。
10, 比较truncate,delete,drop命令。
11, 简述下对索引的理解,及使用索引的理由。
12, 列出你知道的几个视图。
二,分析编码题(40分)
(1) 请使用SQL语句,建立如下表table6,它们结构如下:(10分)
ID |
varchar(30) |
标识号 |
设为主键 |
code |
varchar(7) |
商品编码 |
不为空 |
codename |
varchar(30) |
商品名称 |
不为空 |
spec |
varchar(20) |
商品规格 |
不为空 |
price |
number(10,2) |
价格 |
不为空 |
sellnum |
int |
销售数量 |
|
deptmo |
varchar(3) |
售出分店编码 |
|
selldate |
date |
销售时间 |
|
(2)插入一条标识号为“01”,商品编码为“010”,商品名称为“电话”,商品规格为“CZ011”,价格为2300,销售数量2,售出分店编码为“12”,销售时间2002-3-15的记录。(5分)
(3)写出查询销售时间段在2002-2-15日到2002-4-29之间,售出分店编码是01的所有记录。(10分)
(4)在table6数据表中增加“No_id”字段,数据类型varchar(12)不为空,并将其设定为UNIQUE约束,写出其命令语句。(7分)
(5)删除标识号为01的记录。(8分)