plsql练习之sql笔试经典50题

SQL笔试题:经典50题
创建表

create table student(sno varchar2(4) primary key,sname varchar2(4),birthday date,sex varchar2(2));
create table scores(sno varchar2(4),cno varchar2(4),result float,primary key(sno,cno));
create table course(cno varchar2(4),cname varchar2(4),tno varchar2(4),primary key(cno,cname);
create table teacher(tno varchar2(4) primary key,tname varchar2(10));

添加数据

insert into student values('0001' , '猴子' , to_date('1989-01-01','yyyy-mm-dd'), '男');
insert into student values('0002' , '猴子' , to_date('1990-12-21','yyyy-mm-dd'), '女');
insert into student values('0003' , '马云' , to_date('1991-12-21','yyyy-mm-dd'), '男');
insert into student values('0004' , '马云' , to_date('1990-05-20','yyyy-mm-dd'), '男');
insert into scores values('0001' , '0001' , 80);
insert into scores values('0001' , '0002' , 90);
insert into scores values('0001' , '0003' , 99);
insert into scores values('0002' , '0002' , 60);
insert into scores values('0002' , '0003' , 80);
insert into scores values('0003' , '0001' , 80);
insert into scores values('0003' , '0002' , 80);
insert into scores values('0003' , '0003' , 80);
insert into course values('0001' , '语文' , '0002');
insert into course values('0002' , '数学' , '0001');
insert into course values('0003' , '英语' , '0003');
insert into teacher values('0001' , '孟扎扎');
insert into teacher values('0002' , '马化腾');
insert into teacher values('0003' , 'null');
insert into teacher values('0004' , ' ');

为了方便学习,我将50道面试题进行了分类
一.简单查询
1.查询姓“猴”的学生名单

select * from student where sname like '猴%';

在这里插入图片描述

2.查询姓名中最后一个字是“猴”的学生名单

select * from student where sname like '%猴';

在这里插入图片描述

3.查询姓名中带“猴”的学生名单

select * from student where sname like '%猴%';

在这里插入图片描述

4.查询姓“孟”老师的个数

select count(tname) from teacher where tname like '孟%'

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
经典的PL/SQL练习常常涉及到条件判断、循环和数据操作等方面的知识。以下是一些经典的PL/SQL练习: 1. 给定三个数值,返回其中较大的那个数: ```sql DECLARE A INT := &输入1; B INT := &输入2; C INT := &输入3; BEGIN IF A > B AND A > C THEN DBMS_OUTPUT.PUT_LINE(A); ELSIF B > A AND B > C THEN DBMS_OUTPUT.PUT_LINE(B); ELSIF C > A AND C > B THEN DBMS_OUTPUT.PUT_LINE(C); END IF; END; ``` [引用1] 2. 给定三个数值,按照从大到小的顺序返回: ```sql DECLARE A INT := &输入1; B INT := &输入2; C INT := &输入3; BEGIN IF A > B AND A > C THEN IF B > C THEN DBMS_OUTPUT.PUT_LINE(A || ',' || B || ',' || C); ELSIF C > B THEN DBMS_OUTPUT.PUT_LINE(A || ',' || C || ',' || B); END IF; ELSIF B > A AND B > C THEN IF A > C THEN DBMS_OUTPUT.PUT_LINE(B || ',' || A || ',' || C); ELSIF C > A THEN DBMS_OUTPUT.PUT_LINE(B || ',' || C || ',' || A); END IF; ELSIF C > A AND C > B THEN IF A > B THEN DBMS_OUTPUT.PUT_LINE(C || ',' || A || ',' || B); ELSIF B > A THEN DBMS_OUTPUT.PUT_LINE(C || ',' || B || ',' || A); END IF; END IF; END; ``` [引用1] 3. 编写一个存储过程,将STUDENT_INFO_01表中的数据拷贝到STUDENT_INFO_02表中: ```sql CREATE OR REPLACE PROCEDURE COPY_STUDENT_INFO AS BEGIN INSERT INTO STUDENT_INFO_02 SELECT * FROM STUDENT_INFO_01 WHERE AGE BETWEEN 15 AND 20 AND FLG = 0; END COPY_STUDENT_INFO; ``` [引用2] 4. 编写一个存储过程,将STUDENT_INFO_01表中的性别字段由Code转换为具体的性别: ```sql CREATE OR REPLACE PROCEDURE CONVERT_GENDER AS BEGIN UPDATE STUDENT_INFO_01 SET GENDER = CASE WHEN GENDER = 'M' THEN 'Male' WHEN GENDER = 'F' THEN 'Female' ELSE 'Unknown' END; END CONVERT_GENDER; ``` [引用2] 5. 给定一个数N,计算2^1 + 2^2 + ... + 2^N 的值: ```sql DECLARE N NUMBER := &输入; S NUMBER := 0; A NUMBER := 0; BEGIN FOR B IN 1 .. N LOOP A := A || 2; S := S + A; END LOOP; DBMS_OUTPUT.PUT_LINE(S); END; ``` [引用3] 这些是一些经典的PL/SQL练习,涉及到了条件判断、循环和数据操作等方面的知识。可以通过编写相应的PL/SQL代码来解决这些问
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值