이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 15188|회답: 2

[출처] 데이터베이스 시험 운영 질문과 답변

[링크 복사]
게시됨 2015. 4. 28. 오후 4:52:13 | | |

1. 다음과 같은 창고 테이블, 직원 테이블, 구매 주서 양식, 공급업체 테이블을 포함하는 주문 관리 데이터베이스가 있습니다:
창고 테이블 (창고 번호, 도시, 면적)
직원 표 (창고 번호, 직원 번호, 급여)
구매 주문서 양식 (직원 번호, 공급업체 번호, 구매 주문 번호, 주문 날짜)
공급업체 표 (공급업체 번호, 공급업체 이름, 도시)
다음 연산을 완료하려면 SQL 문장을 사용해 주세요 (1부터 12문까지의 문제당 3점, 13문항당 4점, 총 40점). :
1. 직원 관계에서 모든 임금 값을 검색하고, 결과에 중복 금액이 없어야 합니다.
2. 연봉이 1,230위안 이상인 직원 번호와 해당 도시를 검색하세요.
3. 면적이 400명 이상인 창고의 직원 번호와 해당 직원들이 근무하는 도시를 검색합니다.
4. 연봉 1250위안 이상의 창고가 있는 도시를 찾아
5. 모든 직원의 임금이 1210위안 이상인 창고 정보를 검색합니다.
6. 창고 번호로 오름차순으로 정렬한 뒤, 급여 순으로 내림차순으로 정렬하여 모든 직원 정보를 출력합니다.
7. 베이징과 상하이의 창고 노동자 임금 총액을 확보한다.
8. WH2 창고에서 근무하는 직원들의 최대 급여 가치를 추구합니다.
9. 최소 두 명의 직원이 있는 각 창고의 평균 급여를 산출합니다.
10. 베이징에 없는 모든 공급업체 정보를 조회한다.
11. 각 직원이 처리한 총 금액이 가장 높은 구매 주문서 정보를 나열합니다.
12. 직원이 없는 창고 정보를 찾는다.
13. 직원의 급여가 wh1 창고 내 임의원 급여보다 큰 창고 번호를 검색합니다


2. 기존 관계형 데이터베이스는 다음과 같습니다:
데이터베이스 이름: 교사 데이터베이스
교사 표 (숫자 문자(6), 이름, 성별, 민족, 직함, ID 번호)
강의 일정 (강의 번호 문자(6), 이름)
수업 시간표 (학생 등록증, 교사 번호, 학급 번호, 수업 시간)
다음 함수들을 SQL 언어로 구현하는 SQL 명문 코드 (문제당 5점, 총 40점):
1. 위 세 테이블의 데이터베이스 및 테이블 생성 코드를 생성한다;
   필수 사용: 기본 키(교사 표). 번호, 교육과정. 강의 번호), 외래 키(수업 시간표). 선생님 번호, 수업 시간표. 학급 번호), 기본값(민족), 비어 있지 않음(민족, 이름), 고유성(ID 번호), 체크(성별, 수업 시간), 자동 번호(ID)
2. 다음 강의 정보를 강의 일정 코드에 추가하세요
       (1) 강좌 번호 강좌명
        100001 SQL Server 데이터베이스
        100002 자료구조
        100003 VB 프로그램
       (2) 강의 번호 100003: Visual Basic 프로그래밍 강의 이름 변경
       (3) 강의 번호가 포함된 강의 정보를 삭제100003  
3. [수업 시간표 보기]를 만들기 위한 코드를 작성합니다 (교사 번호, 이름, 강의 번호, 강의 이름, 수업 시간);
4. 내장된 테이블 값 함수와 검색 코드를 작성하여 [강의 교사]를 생성;
검색: 'SQL Server Database' 강좌의 모든 교사 이름;
5. 작성 및 생성 [수업 시간 계산]: 최대 수업 시간, 최소 수업 시간, 평균 수업 시간의 저장 절차, 실행 코드를 출력합니다.
6. 작성 및 생성: 교사의 대체 수업 총 시간을 계산하고, 값을 저장 프로시저와 실행 코드에 반환합니다.
실행: "곽 선생님"의 총 수업 시간을 계산하세요.
7. 90시간 이상의 수업 시간을 가진 모든 강좌의 정보를 번호와 이름을 조회합니다.
8. 규칙을 만들어 교사 표의 제목 열에 묶고, 값은 ('교수', '부교수', '강사', '조교수' 중 하나로 지정한다).


3. 세 개의 테이블로 구성된 인재 정보 관리 데이터베이스가 있습니다.
    인재 기본 정보 양식 RCDA (번호, 이름, 성별, 생년월일, 급여 상태)
    인재 전문 전문 표 ZYTC (번호, 전공, 전문 연수, 전문 직함, 영어 능력)
        인재 성취 표 CJDA (번호, 성취명, 성취 카테고리, 성취 출처)
  다음 연산을 완료하려면 SQL 언어를 사용해 주세요 (문제당 4점, 총 40점):
1. RCDA 테이블의 모든 정보를 조회합니다;
2. 번호, 이름, 성별, 생년월일, 급여 상태를 조회하고, 해당 번호의 필드 값에 따라 내림차순으로 정렬합니다.
3. 쿼리 번호, 이름, 성별, 생년월일, 급여 상태를 입력하고, 급여 상태 5,000위안 이상 또는 3,000위안 미만의 급여 상태 기록을 검색해야 하며, 급여 상태 필드의 값에 따라 조회 결과가 오름차순으로 배열됩니다.
4. RCDA 표의 모든 필드 정보를 조회하고 모든 게이 남성의 기록을 선택하도록 요청합니다.
5. RCDA 양식에 있는 모든 기록의 이름과 급여 상태를 확인;
6. RCDA 표에 있는 모든 남성의 이름, 성별, 급여 상태를 확인하고, 급여 상태의 내림차순으로 정렬합니다;
7. 20세에서 30세 사이의 직원의 이름과 생년월일을 RCDA 양식에서 확인;
8. RCDA 표에서 모든 사람의 임금 합계를 찾고, 열의 제목을 "임금 합계"로 변경합니다;
9. RCDA 표에서 남녀 직원의 임금 합계를 확인한다;
10. RCDA 표에서 모든 소유주의 평균 급여를 확인;
  1. use master
  2. --删除数据库
  3. if exists (select * from sysdatabases where name='订货管理')
  4. DROP database 订货管理
  5. GO
  6. --创建数据库
  7. CREATE DATABASE 订货管理
  8. GO
  9. --切换数据库
  10. USE 订货管理
  11. Go
  12. --1/创建仓库表(仓库号,城市,面积)
  13. create table 仓库表
  14. (
  15. 仓库号 char(4) primary key,
  16. 城市 varchar(4) not null,
  17. 面积 int
  18. )
  19. go
  20. --2/创建供应商表(供应商号,供应商名,城市)
  21. create table 供应商表
  22. (
  23. 供应商号 char(2) primary key,
  24. 供应商名 char(2),
  25. 城市 varchar(10)
  26. )
  27. Go
  28. --3/创建职工表(仓库号,职工号,工资)
  29. create table 职工表
  30. (
  31. 仓库号 char(4) not null references 仓库表(仓库号),
  32. 职工号 char(2) primary key,
  33. 工资 int
  34. )
  35. Go
  36. --4/创建订购单表(职工号,供应商号,订购单号,订购日期)
  37. create table 订购单表
  38. (
  39. 职工号 char(2) not null references 职工表(职工号),
  40. 供应商号 char(2) references 供应商表(供应商号),
  41. 订购单号 char(2) primary key,
  42. 订购日期 datetime
  43. )
  44. Go

  45. --1、        从职工关系中检索所有工资值,要求结果中没有重复值。
  46. select 职工号,工资 from 职工表
  47. --2、        检索工资多于1230元的职工号和他们所在的城市。
  48. select 城市,职工号 from 仓库表
  49. inner join 职工表 on 仓库表.仓库号=职工表.仓库号
  50. where 工资>1230
  51. --3、        检索工作在面积大于400的仓库的职工号以及这些职工工作所在的城市。
  52. select 职工号,城市 from 职工表
  53. inner join 仓库表 on 职工表.仓库号=仓库表.仓库号
  54. where 面积>400
  55. --4、        检索出哪些城市至少有一个仓库的职工工资为1250元
  56. select 城市 from 仓库表 where 仓库号 in
  57. (select 仓库号 from 职工表 where 工资=1250)
  58. --5、        检索所有职工的工资都多于1210元的仓库的信息。
  59. select * from 仓库表 where 仓库号 in
  60. (select 仓库号 from 职工表
  61. except  
  62. select 仓库号 from 职工表 where 工资<=1210)
  63. --6、        先按仓库号升序排序,再按工资降序排序并输出全部职工信息。
  64. select * from 职工表 order by 仓库号,工资
  65. --7、        求北京和上海的仓库职工的工资总和。
  66. select sum(工资) from 职工表 where 仓库号 in  
  67. (select 仓库号 from 仓库表 where 城市='北京' or 城市='上海')
  68. --8、        求在wh2仓库工作的职工的最高工资值。
  69. select MAX(工资) from 职工表 where 仓库号='wh2'
  70. --9、        求至少有两个职工的每个仓库的平均工资。
  71. select 仓库号,AVG(工资) as 职工平均工资 from 职工表
  72. group by 仓库号
  73. having COUNT(职工号)>=2
  74. --10、        检索出不在北京的全部供应商信息。
  75. select * from 供应商表 where 城市<>'北京'
  76. --11、        列出每个职工经手的具有最高总金额的订购单信息。

  77. --12、        检索哪些仓库中还没有职工的仓库的信息。
  78. select * from 仓库表 where 仓库号 in
  79. (select 仓库号 from 仓库表
  80. Except
  81. select 仓库号 from 职工表)
  82. --13、        检索有职工的工资大于或等于wh1仓库中任何一名职工工资的仓库号
  83. select distinct 仓库号 from 职工表
  84. where 工资 >= (select min(工资) from 职工表 where 仓库号='wh1')


코드 복사

  1. --1、
  2. create database 教师数据库  
  3. go               
  4. use 教师数据库
  5. go

  6. create table 教师表                        
  7. (
  8. 编号 char(6) primary key,
  9. 姓名 nchar(4) not null,  
  10. 性别 nchar(1) check([性别] in ('男', '女')),
  11. 民族 nchar(8) default '汉族' not null,
  12. 职称 nchar(12),
  13. 身份证号 char(18) unique )  
  14. go

  15. create table 课程表                          
  16. (课号 char(6) primary key,
  17. 名称 char(40) not null
  18. )  
  19. go

  20. create table 任课表                        
  21. (
  22. ID int IDENTITY(1, 1),  
  23. 教师编号 char(6) references 教师表(编号),
  24. 课号 char(6) references 课程表(课号),  
  25. 课时数 integer check([课时数] between 0 and 200)
  26. )
  27. go
  28. --2、
  29. insert 课程表 values('100001', 'SQL Server数据库')  
  30. insert 课程表 values('100002', '数据结构')
  31. insert 课程表 values('100003', 'VB程序设计')
  32. update 课程表 set 名称='Visual Basic程序设计' where 课号='100003'  
  33. delete 课程表 where 课号='100003'

  34. --3、   
  35. create view [任课表视图] as  
  36. select 教师编号,姓名,任课表.课号,名称,课时数 from 教师表
  37. inner join 任课表 on 教师表.编号=任课表.教师编号
  38. inner join 课程表 on 课程表.课号=任课表.课号

  39. --4、   
  40. create function [某门课任课教师](@课程名 varchar(15))
  41. returns table as  
  42. return (select 名称,课时数,教师姓名=姓名 from 任课表视图 where 名称=@课程名)
  43. go
  44. select * from [某门课任课教师]('SQL Server数据库')

  45. --5、
  46. create procedure [统计课时数]  
  47. as
  48. select  最大课时数=max(课时数) ,最小课时数=min(课时数),平均课时数=avg(课时数)
  49. from 任课表
  50. go  
  51. execute [统计课时数]
  52. --6、   
  53. create procedure [统计课时]  
  54. @教师名 nchar(16)
  55. as     
  56. declare @总课时 int      
  57. select @总课时=sum(课时数) from 任课表视图   
  58. where 姓名=@教师名  
  59. go  
  60. execute [统计课时] '郭老师'
  61. --7、   
  62. select 编号, 姓名 from 教师表  
  63. where 编号 in (select distinct 教师编号 from 任课表 where 课时数>=90)
  64. 8、   
  65. create rule zhicheng_rule  
  66. as @zhicheng  in ('教授','副教授','讲师', '助教')
  67. go  
  68. sp_bindrule zhicheng_rule, '教师表.职称'
코드 복사

  1. use master
  2. --删除数据库
  3. if exists (select * from sysdatabases where name='人才信息管理')
  4. DROP database 人才信息管理
  5. GO
  6. --创建数据库
  7. CREATE DATABASE 人才信息管理
  8. GO
  9. --切换数据库
  10. USE 人才信息管理
  11. Go
  12. --人才基本情况表RCDA(编号,姓名,性别,出生日期,工资现状)
  13. create table RCDA
  14. (
  15. 编号 char(4) primary key,
  16. 姓名 varchar(10) not null,
  17. 性别 varchar(2) not null,
  18. 出生日期 datetime,
  19. 工资现状 int
  20. )
  21. go

  22. --人才专业特长表ZYTC(编号,专业,专业年限,职称,英语水平)
  23. create table ZYTC
  24. (
  25. 编号 char(4) primary key,
  26. 姓名 varchar(10) not null,
  27. 性别 varchar(2) not null,
  28. 出生日期 datetime,
  29. 工资现状 int
  30. )
  31. go
  32. --人才成就成果表CJDA(编号,成果名称,成果类别,成果出处)
  33. create table CJDA
  34. (
  35. 编号 char(4) primary key,
  36. 成果名称 varchar(10) not null,
  37. 成果类别 varchar(10) not null,
  38. 成果出处 varchar(10) not null
  39. )
  40. go

  41. --1.查询RCDA表中的所有信息;
  42. Select * from RCDA
  43. --2. 查询编号、姓名、性别、出生日期、工资现状,并按编号的字段值降序排列。
  44. Select 编号,姓名,性别,出生日期,工资现状 from RCDA
  45. order by 编号 desc
  46. --3.查询编号、姓名、性别、出生日期、工资现状,要求查询出工资现状超过5000,或少于3000元的记录,且查询结果按工资现状字段值升序排列。
  47. Select 编号,姓名,性别,出生日期,工资现状 from RCDA
  48. Where 工资现状>5000 or 工资现状<3000 order by 工资现状
  49. --4.查询RCDA表中所有字段的信息,要求选择所有男同志的记录。
  50. Select * from RCDA where 性别='男'
  51. --5.在RCDA表中查询所有记录的姓名和工资现状的情况;
  52. Select 姓名,工资现状 from RCDA
  53. --6.在RCDA表中查询所有男性的姓名、性别和工资现状的情况,并按工资现状降序排序;
  54. Select 姓名,性别,工资现状 from RCDA order by 工资现状 desc
  55. --7. 在RCDA表中查询年龄在20-30岁间的职工的姓名,出生日期;
  56. select 姓名,出生日期,datediff(yy,出生日期,getdate()) as 年龄 from RCDA
  57. where datediff(yy,出生日期,getdate()) between 20  and 30
  58. --8. 在RCDA表中求所有人的工资总和,并将列标题改为“工资总和”;
  59. Select sum(工资现状)  as 工资总和 from  RCDA
  60. --9. 在RCDA表中查询男职工和女职工的工资总和;
  61. Select 性别,sum(工资现状) as 工资总和 from RCDA group by 性别
  62. --10. 在RCDA表中查询所有人的平均工资;
  63. Select avg(工资现状) from RCDA
코드 복사






이전의:C#으로 작성된 작은 프로그램이 웹사이트가 디스쿠즈 포럼인지 아닌지를 판단하는 데 사용되었고, 소스 코드는 모두에게 공유되었습니다
다음:베이징 사이버보안 반사기 연합은 온라인 사기 범죄에 관한 보고서를 발표했습니다
게시됨 2015. 4. 28. 오후 7:12:25 |
이걸로 하지 않아도 돼 걱정하지 마세요
게시됨 2015. 4. 29. 오후 4:47:56 |
음, 둘째 형님 말이 맞아, 반주 다니엘, 나는 데이터베이스를 전혀 이해하지 못해.....
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com