Bootstrap

SQL语句|PTA题目集

R10-26 查询工作年限大于38年员工的姓名、岗位、部门编号及工作年限信息

作者 蒋维

单位 浙江树人学院

查询工作年限大于38年员工的姓名、岗位、部门编号及工作年限信息

提示:请使用SELECT语句作答。

表结构:

请在这里写定义表结构的SQL语句。例如:

 CREATE TABLE `dept` (
  `deptno` decimal(2,0) NOT NULL,
  `dname` varchar(14) DEFAULT NULL,
  `loc` varchar(13) DEFAULT NULL,
  PRIMARY KEY (`deptno`)
) ;

CREATE TABLE `emp` (
  `empno` decimal(4,0) NOT NULL,
  `ename` varchar(10) DEFAULT NULL,
  `job` varchar(9) DEFAULT NULL,
  `mgr` decimal(4,0) DEFAULT NULL,
  `hiredate` date DEFAULT NULL,
  `sal` decimal(7,2) DEFAULT NULL,
  `comm` decimal(7,2) DEFAULT NULL,
  `deptno` decimal(2,0) DEFAULT NULL,
  PRIMARY KEY (`empno`)
) ;

CREATE TABLE `salgrade` (
  `grade` decimal(10,0) NOT NULL,
  `losal` decimal(10,0) DEFAULT NULL,
  `hisal` decimal(10,0) DEFAULT NULL,
  PRIMARY KEY (`grade`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

emp表:

image.png

dept表:

image.png

salgrade表:

image.png

输出样例:

请在这里给出输出样例。

image.png

 select ename,job,emp.deptno,Now()-Year(hiredate) as 工作年限
from emp

R10-27 创建ViewALL视图。

作者 李翔坤

单位 大连东软信息学院

本题目要求编写SQL语句,基于学生选课数据库的几张表,创建ViewALL视图,查询所有学生选修课程的学生学号、姓名、专业、课程号、课程名、学分、成绩。

提示:请使用CREATE VIEW语句作答。

表结构:

create table if not exists Student(
  sno char(8)  primary key,
  sname varchar(10) not null,
  gender char(2) check(gender='男' or gender='女'),
  birthdate  date,
  major varchar(20)  default '软件工程'
  );
 
create table if not exists Course(
  cno char(10) primary key,
  cname varchar(20) not null,
  ccredit int check(ccredit>0), 
  semester int check(semester>0),  
  period int  check(period>0)    
  );

create table if not exists Teacher(
   Tno char(15) primary key,
   Tname varchar(10) not null,
   gender char(2),
   deptname varchar(50) ,  
   title varchar(20)     
);

create table if not exists SC(  
  scid  int auto_increment  primary key,
  sno char(8)   references Student(sno),
  cno char(10)  references Course(cno),
  tno char(15)  references Teacher(tno),
  grade int check(grade>=0 and grade<=100),
  gpoint  decimal(2,1),   
  memo  text(100)  
  );

表样例

Student表:

snosnamegenderbirthdatemajor
21012101李勇2005-10-20计算机科学
21012102刘晨2006-5-5计算机科学
21012103王晓敏2005-10-6计算机科学
21021101李佳睿2006-3-30软件工程
21021102吴宾2005-9-21软件工程
21021103张海2005-10-20软件工程
21031101钱晓萍2006-6-1网络工程
21031102王大力2005-11-15网络工程
21041101于洋2006-3-15数据科学
21041102郭霖2006-3-2数据科学

Course表:

cnocnameccreditsemesterperiod
c01计算机文化基础2132
c02C语言6296
c03数据结构4364
c04Java编程思想4364
c05数据库原理3448
c06计算机网络4564
c07操作系统4664
c08软件工程4664

Teacher表:

tnotnamegenderdeptnametitle
t200104m12101赵飞软件工程教授
t200306m12132孙林软件工程副教授
t200608f12205王慧慧计算机科学副教授
t200703m12218张兵计算机科学副教授
t200703m12219宋奕计算机科学教授
t201005m12306周鹏网络工程副教授
t201208m12308韩志刚网络工程讲师
t201512m12401傅淼数据科学副教授
t201803f12405刘芳芳数据科学讲师

SC表:

scidsnocnotnogradegpointmemo
121012101c01t200306m1213290nullnull
221012101c02t200703m1221886nullnull
321012101c03t200703m12218nullnull缺考
421012102c02t200703m1221878nullnull
521012102c03t200703m1221866nullnull
621021102c01t200306m1213282nullnull
721021102c02t200608f1220575nullnull
821021102c03t200306m12132nullnull缓考
921021102c05t201803f1240550nullnull
1021021103c02t200703m1221868nullnull
1121021103c04t201208m1230892nullnull
1221031101c01t200306m1213280nullnull
1321031101c02t200608f1220595nullnull
1421041102c02t200608f1220556nullnull
1521041102c05t201803f1240588nullnull

输出样例:

视图 ViewALL

学号姓名专业课程号课程名学分成绩
21012101李勇计算机科学c01计算机文化基础290
21012101李勇计算机科学c02C语言686
21012101李勇计算机科学c03数据结构4
21012102刘晨计算机科学c02C语言678
21012102刘晨计算机科学c03数据结构466
21021102吴宾软件工程c01计算机文化基础282
21021102吴宾软件工程c02C语言675
21021102吴宾软件工程c03数据结构4
21021102吴宾软件工程c05数据库原理350
21021103张海软件工程c02C语言668
21021103张海软件工程c04Java编程思想492
21031101钱晓萍网络工程c01计算机文化基础280
21031101钱晓萍网络工程c02C语言695
21041102郭霖数据科学c02C语言656
21041102郭霖数据科学c05数据库原理388

create view ViewALL as
select Student.sno as 学号,Student.sname as 姓名,Student.major as 专业,Course.cno as 课程号,Course.cname as 课程名,Course.ccredit as 学分,SC.grade as 成绩
from SC
    join Student on SC.sno=Student.sno
    join Course on SC.cno=Course.cno

R10-28 基于视图ViewALL的查询。 

作者 李翔坤

单位 大连东软信息学院

基于视图ViewALL,查询刘晨选修了C语言课程的成绩。

视图表样例:

ViewALL视图:

学号姓名专业课程号课程名学分成绩
21012101李勇计算机科学c01计算机文化基础290
21012101李勇计算机科学c02C语言686
21012101李勇计算机科学c03数据结构4
21012102刘晨计算机科学c02C语言678
21012102刘晨计算机科学c03数据结构466
21021102吴宾软件工程c01计算机文化基础282
21021102吴宾软件工程c02C语言675
21021102吴宾软件工程c03数据结构4
21021102吴宾软件工程c05数据库原理350
21021103张海软件工程c02C语言668
21021103张海软件工程c04Java编程思想492
21031101钱晓萍网络工程c01计算机文化基础280
21031101钱晓萍网络工程c02C语言695
21041102郭霖数据科学c02C语言656
21041102郭霖数据科学c05数据库原理388

输出样例:

学号姓名专业课程号课程名学分成绩
21012102刘晨计算机科学c02C语言678

 

select 学号,姓名,专业,课程号,课程名,学分,成绩
from ViewALL
where 姓名 like '刘晨'
    and 课程名 like 'C语言';

R10-29 创建基于视图的视图 

作者 李翔坤

单位 大连东软信息学院

基于上题中的视图ViewALL,创建“计算机科学”专业学生选修课程的视图JSJView,包含学生学号、姓名、课程号、课程名和成绩。

ViewALL视图结构:

create view ViewALL (学号, 姓名, 专业, 课程号, 课程名, 学分, 成绩)
as SELECT Student.sno, sname, major, Course.cno, cname, ccredit, grade 
FROM student join sc on student.sno=sc.sno join course on course.cno=sc.cno;

ViewALL视图数据样例

ViewALL视图:

学号姓名专业课程号课程名学分成绩
21012101李勇计算机科学c01计算机文化基础290
21012101李勇计算机科学c02C语言686
21012101李勇计算机科学c03数据结构4
21012102刘晨计算机科学c02C语言678
21012102刘晨计算机科学c03数据结构466
21021102吴宾软件工程c01计算机文化基础282
21021102吴宾软件工程c02C语言675
21021102吴宾软件工程c03数据结构4
21021102吴宾软件工程c05数据库原理350
21021103张海软件工程c02C语言668
21021103张海软件工程c04Java编程思想492
21031101钱晓萍网络工程c01计算机文化基础280
21031101钱晓萍网络工程c02C语言695
21041102郭霖数据科学c02C语言656
21041102郭霖数据科学c05数据库原理388

新视图JSJView 输出数据样例:

学号姓名专业课程号课程名学分成绩
21012101李勇计算机科学c01计算机文化基础290
21012101李勇计算机科学c02C语言686
21012101李勇计算机科学c03数据结构4
21012102刘晨计算机科学c02C语言678
21012102刘晨计算机科学c03数据结构466
 create view JSJView as
select 学号,姓名,课程号,课程名,成绩
from ViewALL
where 专业 like '计算机科学';

 

R10-30 查询工资最高的员工信息:

 

作者 李翔坤

单位 大连东软信息学院

查询工资最高的员工信息:

提示:请使用SELECT语句作答。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE employees (  
    employee_id INT PRIMARY KEY,  
    first_name VARCHAR(50),  
    last_name VARCHAR(50),  
    department VARCHAR(50),  
    salary INT  
);

表样例

employees表:

1.png

输出样例:

2.png

 select employee_id,first_name,last_name,department,salary
from employees
where salary>=all(select salary
                 from employees)

;