四数据库写SQL题(4)

2019-03-15 17:27

要求采用 SQL 语句及 JAVA 代码段判断 在 2003-3-10 下午 3:00~4:00 3 号会议室是否空闲。

请写出有关 SQL 语句以及相关 JAVA 的代码段。 答:

1)Sql 语句:

create table meeting( id number primary key , room_id varchar(10), isUsed char, begin timestamp, end timestamp );

insert into meeting values(1,'201',1,to_date('2003-03-10 15:00:00','yyyy-mm-dd hh24:mi:ss')

,to_date('2003-03-10 16:00:00','yyyy-mm-dd hh24:mi:ss'));

insert into meeting values(2,'201',1,to_date('2003-03-10 17:00:00','yyyy-mm-dd hh24:mi:ss')

,to_date('2003-03-10 22:00:00','yyyy-mm-dd hh24:mi:ss')); 2)

package com.tarena; import java.sql.*; public class Test {

public static void main(String[] args) {

String driverName = \ String url = \ String username = \ String pwd = \ Connection con = null; Statement stmt = null; ResultSet rs = null; try {

Class.forName(driverName);

con = DriverManager.getConnection(url, username, pwd); stmt = con.createStatement();

String sql = \ \

\ ((begin between to_date('2003-03-10 15:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2003-03-10 16:00:00','yyyy-mm-dd hh24:mi:ss')) \ \between to_date('2003-03-10 15:00:00','yyyy-mm-dd hh24:mi:ss')

and to_date('2003-03-10 16:00:00','yyyy-mm-dd hh24:mi:ss')))\ \ if (stmt.execute(sql)) {

rs = stmt.getResultSet();

}

StringBuffer sb = new StringBuffer(); while (rs.next()) {

sb.append(\ }

System.out.print(sb.toString()); } catch (Exception e) { e.printStackTrace(); } finally { try {

con.close();

} catch (Exception e1) { e1.printStackTrace(); } } } }

26、下面是两个数据库表,分别记录员工姓名和工资 T_EMPLOYEE

ID NAME 2 张三 3 李四 5 王五 ··· ·· ··· ·· T_SALARY

ID SALARY 2 3400 3 4300 5 2500 ··· ·· ··· ··

1.查询表 T_EMPLOYEE 中 id = 3 的员工记录 2.查询表 T_EMPLOYEE 中所有员工记录

3.联合查询表 T_EMPLOYEE 和 T_SALARY 中所有员工的姓名和工资记录,并按照薪水从高到低排列 答:

1).select * from t_employee where id = 3; 2).select * from t_employee; 3).select e.name,s.salary

from t_employee e,t_salary s where e.id=s.id

order by s.salary;

27、有三张表,学生表 S,课程表 C,学生课程表 SC,学生可以选修多门课程,一门课程可能被多个

学生选修,通过 SC 表关联。 1)写出建表以及插入语句;

2)写出 SQL 语句,查询选修了所有选修课程的学生;

3)写出 SQL 语句,查询选修了至少 2 门以上的课程的学生。 答: 1)

create table student (id number(10) primary key,name varchar2(20)); create table course (id number(10) primary key,name varchar2(20));

create table sc(sid number(10) references student(id),cid number(10) references course(id),grade number(4,2)); insert into student values(1,'feifei'); insert into student values(2,'jingjing'); insert into student values(3,'nannan'); insert into student values(4,'yuanyuan'); insert into student values(5,'jiejie'); insert into course values(1,'corejava'); insert into course values(2,'c++'); insert into course values(3,'jdbc'); insert into course values(4,'hibernate'); insert into sc values(1,1,98); insert into sc values(2,1,97); insert into sc values(3,1,94); insert into sc values(4,1,92); insert into sc values(5,1,93); insert into sc values(1,2,94); insert into sc values(2,2,92); insert into sc values(3,2,95); insert into sc values(5,2,97); insert into sc values(1,3,92); insert into sc values(2,3,92); insert into sc values(4,3,91); insert into sc values(1,4,99); insert into sc values(3,4,89);

2)select sid,count(*) from sc group by sid having count(*)=(select count(*) from course); 3)select sid,count(*) from sc group by sid having count(*)>=2; 28、SQL 题 --操作员表

select pkid,name,sys_corp_id '单位主键' from base_operator --角色表

select pkid,sys_corp_id '单位主键',name from base_role --角色与操作员的对应关系表

select pkid,base_role_id '角色主键',base_operator_id '操作员主键' from base_role_operator --单位表

select pkid,name from sys_corps --问题:

--1.显示出'开发'公司所拥有的操作员

--2.显示出'开发'公司每个角色所对应的操作员信息 --3.显示出'开发'公司每个角色所对应的操作员的个数 答:1).Select name from base_operator;

2).Select op.pkid,op.name,op.sys_corp_id

From base_operator op,base_role_operator ro ,base_role br Where ro.base_operator_id =op.pkid And br.pkid=ro.base_role_id; 3).Select max(br.name) ,count(*)

From base_role_operator ro,base_role br Where ro.base_role_id=br.pkid Group by br.base_role_id;

29、说明在一个系统中权限管理中应该有哪些表、表间关系、各表哪些功能? 答:

角色和权限表是 m:n 的关系 操作表和权限表是 1:m 的关系 模块表和操作表是 1:m 的关系 表的大体设计如下: -- 角色表

create table roles (

id number primary key, name varchar2(20) );

-- 系统模块表

create table modules (

id number primary key, name varchar2(50), url varchar2(50) );

-- 模块操作表

create table operations ( id number primary key, name varchar2(20), mid number,

constraint foreign key (mid) references modules(id) );

-- 权限表

create table rights (

id number primary key, name varchar2(20),

url varchar2(50),

operationid int references operations(id) );

-- 角色权限设置表 create table rolerights (

id number primary key, roleid number references roles(id), rightid number references rights(id) );

30、说出下面语句的作用: Select rownum,last_name,salary

From (select last_name,salary from s_emp order by salary desc) Where rownum<=10;

答:选出 s_emp 表中工资前 10 名员工的姓名和工资


四数据库写SQL题(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:建筑业高级职称题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: