qlsql 编程

这篇博客详细介绍了qlsql的多种查询技巧,包括自连表查询、行变列、分页查询、聚合函数如max、min、avg和sum的使用,以及统计、模糊查询、时间查询、用户切换、PL/SQL块的应用等。此外,还涵盖了表的创建、序列生成、变量赋值和打印输出等数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Select e.empno,e.ename,m.empno,m.enmae
From
Emp emp e,emo m
where
e.mgr=m.empno;

1.自连表查询 行变列

select empno,ename from emp;
select rownum,empno,ename from emp;

2.rownum:伪列

select rownum,empno,ename from emp where rownum<=5; ##true
select rownum,empno,ename from emp where rownum<=5 ##fault

3.分页:1-5

select * from(
select rownum r,empno,ename from emp
where rownum<=5
)t
where t.r>0;

分页:6-10

select * from(
select rownum r,empno,ename from emp
where rownum<=10
)t
where t.r>5;

4.使用 max/min 查询最高工资

select max(sal) from emp;
select min(sal) from emp;

5.使用 avg 查询平均工资

select avg(sal) from emp;

6.使用 sum 查询工资总和

select sum(sal) from emp;

7.统计员工人数

select count(*) from emp;

8.模糊查询

select ename from emp where ename like ‘%S%’;

9. 查询系统时间 (dual:模式表)

select sysdate from dual;

10.切换用户

conn holly/sys;

select * from classes;

出现关联表的时候,先删除从表,再删除主表

11.创建用户

create table student(
sid number(10) not null primary key,
sname varchar2(20) not null,
studytime date,
score number(10,2) not null
);

12.创建序列

create sequence seq_student;

14.第一个 PL/SQL 块

set serverout on
– 声明部分
declare
—— 定义变量
v_name varchar2(20);
– 执行部分
begin
– 执行赋值操作
v_name:=’holly’;
–打印输出
dbms_output.put_line(‘v_name’||v_name)
end;
/

conn scott/tiger;

15.查询 emp 表中id 为7369 的ename 值,并赋值给 v_ename变量,并打印输出

set serverout on
declare
v_ename emp.ename%type
begin
select ename into v_ename from emp where empno=7369
dbms_output.put_line(‘7369的员工姓名位:’||v_ename);
end;
/

16.查询 emp 表中id 为XXXX 的ename 值,并赋值给 v_ename变量,并打印输出

set serverout on
declare
– Scanner input = new Scanner();
– int p_empno = input.nextInt();
– int v_emppno = p_empno;

v_emppno emp.empno%type:=&p_empno; #&:接受参数的固定写法
v_ename emp.ename%type;

begin
select ename into v_ename from emp where empno=v_empno;
dbms_output.put_line(v_empno||’的员工姓名为:’||v_ename);
end;
/

17.根据编号查询许多字符串

set serverout on
declare
–用%TYPE 类型定义与表相配的字段
TYPE T_Recor IS RECORD(
T_no emp.empno%TYPE,
T_name emp.ename%TYPE,
T_sal emp.sal%TYPE);
–声明接受数据的变量
v_emp T_Record;
v_emppno emp.empno%type:=&p_empno;
BEGIN
select empno,ename,sal INTO v_emp FROM emp WHERE
empno=v_emppno;
DBMS_OUTPUT.PUT_LINE
(TO_CHAR(v_emp.t_no)||chr(10)||v_emp.t_name||chr(10)||
TO_CHAR(v_emp.t_sal));
END;
/

18.%ROWTYPE 返回行数据

set serverout on
declare
v_empno emp.empno%TYP:=&no;
rec emp%ROWTYPE;
BEGIN
SELECT * INTO rec FROM emp WHERE empno=v_empno;
DBMS_OUTPUT.PUT_LINE(‘姓名:’||rec.ename||’工资’||rec.sal
||’工作时间:’||rec.hiredate);
END;
/

19.insert

insert into student
(seq_student.nextval,’holly’,
to_date(‘2015-05-06’,’yyyy-MM-dd’),78.8);
commit;

20,插入一条记录并显示

set serverout on
DECLARE
ROW_id ROWID;
info VARCHAR2(40);
BEGIN
UPDATE dept SET DNAME=’财务室’ WHERE DEPTNO=10
RETURNING rowid,dname||’:’||deptno||’:’
||loc
INTO row_id,info;
DBMS_OUTPUT.PUTLINE(‘ROWID:’||row_id);
DBMS_OUTPUT.PUTLINE(info);
END;
/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值