189 8069 5689

nosql期末考试试卷,nosql数据库期末题库答案

数据库期末考试题 编写SQL语句 1.创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系

create table 学生表

为坡头等地区用户提供了全套网页设计制作服务,及坡头网站建设行业解决方案。主营业务为成都做网站、网站设计、坡头网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

(

学号 char(10) primary key,

姓名 char(10),

年龄 int,

性别 char(2) check (sex IN ('男','女')),

家庭住址 char(40),

联系 char(20)

)

SQL数据库面试题 急急急

a)select pname as '商品名',avg(qty) as 平均销售量 from s,p,m where m.city='上海' and s.mno=m.mno and p.pno=s.pno,select p.Pno,p.pname,sum(s.qty)

from s left join p on s.pno=p.pno left join m on p.Mno=m.Mno

where m.city='上海市'

group by p.Pno,p.pname,p.city,p.color

b)、先删除Sale表的外键PNO,再删除gds表。

c)联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系

区别:1、视图是已经编译好的sql语句。而表不是

2、视图没有实际的物理记录。而表有。

3、表是内容,视图是窗口

4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改

5、表是内模式,视图是外模式

6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。

7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。

8、视图的建立和删除只影响视图本身,不影响对应的基本表。

面试题目(sql)

1、忍不住想说一句,因为第一题中的字段类型是

【日期型】,而各种数据库操作日期型数据有不同的方法,没有一种共通的方法,所以脱离了数据库而言没有一种共通的sql。

2、select

ID,NAME,ADDRESS,PHONE,LOGDATE

from

T

where

ID

in(

select

ID

from

T

group

by

NAME

having

count(*)1)

order

by

NAME;

3、delete

from

T

where

ID

not

in

(select

min(id)

from

T

group

by

name);

4、update

T

set

T.ADDRESS=(select

E.ADDRESS

from

E

where

E.NAME=T.NAME),

T.PHONE=(select

E.PHONE

from

E

where

E.NAME=T.NAME);

5、这个不同的数据库也有不同的处理方法,不能脱离数据库谈了。

如:SqlServer或者access可以使用

top

oracle可以使用

rownum

---

以上,希望对你有所帮助。

SQL数据库试题求解

------------------------------------------------------

create table students(st_id varchar(20),st_name varchar(50),sex varchar(10))

insert into students(st_id,st_name,sex)

select 'st001','张杰', '男' union all

select 'st002', '公孙燕飞' ,'男' union all

select 'st003', '王楠', '女' union all

select 'st004', '王伟', '男' union all

select 'st005','李燕纹', '女' union all

select 'st006', '孙武' ,'男'

select *

from students

create table teachers(t_id varchar(20),t_name varchar(50),t_lesson varchar(50))

insert into teachers

select 't001', '张老师' ,'数学' union all

select 't002', '李老师', '英语'

delete from results

create table results(r_id varchar(20),r_fenshu int,r_stid varchar(50),r_tid varchar(50))

insert into results

select 'r001','90', 'st001', 't002' union all

select 'r002', '68', 'st005', 't001' union all

select 'r003', '92', 'st003' ,'t001' union all

select 'r004', '82', 'st006', 't002' union all

select 'r005', '70', 'st002', 't002' union all

select 'r006', '86', 'st002', 't001' union all

select 'r007', '57', 'st003', 't002' union all

select 'r008', '76', 'st006', 't001' union all

select 'r009', '55', 'st001', 't001' union all

select 'r010', '77', 'st004', 't002' union all

select 'r011', '58', 'st005', 't002'

----------------------------------------------------------

1.

select st_id

from students

where st_name = '王伟'

2.select st_id,st_name

from students

where st_name like '__燕%'

3 select st_name,len(st_name) as 名字长度

from students

where sex ='男'

4 select min(r_fenshu) as 最低分数

from teachers t inner join results r on t.t_id =r.r_tid

where t_lesson ='数学' --这个是不考虑成绩中有null值的

5 select s.st_id as 学生编号,r_fenshu as分数,r_tid as 课目号

from students s inner join results r on s.st_id =r.r_stid

where s.sex='女'

--如果还要课目的名称的话请用下面的

select s.st_id as 学生编号,r.r_fenshu as 分数,r.r_tid as 课目号,t.t_lesson as 课目名称

from students s inner join results r on s.st_id =r.r_stid

inner join teachers t on r.r_tid = t.t_id

where s.sex='女'

6 select avg(r.r_fenshu)

from results r inner join teachers t on r.r_tid = t.t_id

where t.t_lesson='英语'

7.select *

from students s inner join results r on s.st_id =r.r_stid

inner join teachers t on r.r_tid = t.t_id

where s.st_id in (select top 2 st_id from students order by st_id desc)

order by s.st_id desc

8 select sum(r.r_fenshu) as 总分

from results r inner join students s on r.r_stid =s.st_id

where s.st_name = '王楠'

9.select distinct s.st_id,s.st_name

from students s inner join results r on s.st_id = r.r_stid

where st_id not in (select r_stid from results where r_fenshu60) and st_id not in (select r_stid from results where r_fenshu =90)

10 update results

set r_fenshu = r_fenshu + 10

--如果分数不可能大于100请用这句 set r_fenshu = case when r_fenshu + 10 =100 then r_fenshu + 10 else 100 end

where r_stid in (select st_id from students where sex='女')

1 进阶题

select t.t_name,count(*)

from students s,teachers t,results r

where r.r_tid = t.t_id

and s.st_id =r.r_stid

and r.r_fenshu = 60

and t.t_id in (select t_id from teachers where t_lesson='数学' )

--and t_lesson='数学'

group by t.t_name

2

select top 1 sum(r_fenshu) as 总分,t.t_lesson,t_id,t_name

from results r,teachers t

where r.r_tid = t.t_id

group by t.t_lesson,t_id,t_name

order by 总分 desc

3. delete from results where r_stid in (select r_stid from results group by r_stid having count(r_tid) = 1)

1 选做题

select d.name from sysobjects d where d.xtype='U'

2.select top 5 * from students order by newid()


当前标题:nosql期末考试试卷,nosql数据库期末题库答案
文章转载:http://jkwzsj.com/article/dsioesc.html

其他资讯