什么是plSQL?普通的SQL是怎样的?它们的用途是什么?

什么是plSQL?普通的SQL是怎样的?它们的用途是什么?,第1张

PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据 *** 作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等 *** 作实现复杂的功能或者计算的程序语言。\x0d\x0a \x0d\x0a使用PL/SQL可以编写具有很多高级功能的程序,虽然通过多个SQL语句可能也能实现同样的功能,但是相比而言,PL/SQL具有更为明显的一些优点:\x0d\x0a⒈能够使一组SQL语句的功能更具模块化程序特点;\x0d\x0a⒉采用了过程性语言控制程序的结构;\x0d\x0a⒊可以对程序中的错误进行自动处理,使程序能够在遇到错误的时候不会被中断;\x0d\x0a⒋具有较好的可移植性,可以移植到另一个Oracle数据库中;\x0d\x0a⒌集成在数据库中,调用更快;\x0d\x0a⒍减少了网络的交互,有助于提高程序性能

SELECT column, group_function

        FROM table

                [WHERE condition]

                        [GROUP BY group_by_expression]

                                [HAVING group_condition]

                                        [ORDER BY column]

        语法:SELECT table.column, table.column FROM table1, table2 WHERE table1.column1 = table2.column2(或者where其他条件)

        where子句中的连接条件,一般要满足数据类型相符,含义一致。

        如果设置别名,则只能使用别名:

        SELECT 别名.column, 别名.column FROM table1 别名1, table2 别名2 WHERE 别名.column1 = 别名.column2(或者where其他条件)

        例子:select e.ename,e.sal,s.grade,s.losal,s.hisal from emp e,salgrade s

                            where e.sal between s.losal and s.hisal--包含边界值

        例子:SELECT table.column, table.column FROM table1, table2 WHERE table1.column(+) = table2.column

        +在左边,代表左边需要扩展/删除。左边是从表,右边是主表。主表显示全部项目,从表跟随主表扩展/删除。

        例子:SELECTtable.column, table.column FROMtable1, table2 WHEREtable1.column = table2.column(+)

        +在右边,代表右边需要扩展/删除。右边是从表,左边是主表。主表显示全部项目,从表跟随主表扩展/删除。

        左右外连接用起来是一样的,只是表格书写位置的区别。

        例子:select w.ename,w.empno,m.ename,m.empno from emp w,emp m

                            where w.mgr=m.empno

        同一张表,设置两个别名,进行同一张表内的互联,如同一个人既是下属又是上级。

        表1 [inner] join 表2 on 表1.列1=表2.列2。

        例子:select e.empno,e.deptno,d.loc

                            from emp e inner join dept d

                            on e.deptno=d.deptno

        inner可以省略,效果一样的。

        主表 left outer join 从表 on 主表.列1=从表.列2

        例子:select d.deptno,d.loc,e.empno,e.ename from dept d left outer join emp e

                            on d.deptno=e.deptno

        从表 right outer join 主表 on 从表.列1=主表.列2

        例子:select e.empno,e.ename,d.deptno,d.loc from emp e right outer join dept d

                            on e.deptno=d.deptno

        例:查询工资高于Jones的员工信息 (也可用自连接查询)

                select * from emp where sal>(select sal from emp where ename='JONES') order by sal

        注意:子查询要用括号括起来,子查询中不要加ORDER BY子句。

        例子:查询哪个部门没有员工 in(列表)

                    select deptno from dept where deptno not in (select distinct deptno from emp)

        例子:查询工资小于任何办事员,且职位不是办事员的员工信息

                    any任意值  >any 大于最小值  <any 小于最大值

                    select ename,sal from emp

                            where sal<any(select sal from emp where job='CLERK')

                                    and job<>'CLERK'

        例子:查询工资大于最高平均工资的员工信息

                    all所有值  >all 大于最大值  <all 小于最小值

                    select ename,sal from emp

                            where sal>all(select avg(sal) from emp group by deptno)

        语法:SELECT column, group_function FROM table [WHERE condition] [GROUP BY group_by_expression]

                    [HAVING group_condition] [ORDER BY column]

        例:查询部门平均工资大于2000的部门信息

                select deptno,avg(sal) from emp group by deptno having avg(sal)>2000

PL/SQLDeveloper是AllroundAutomations公司开发的专业的ORACLE库开发应用工具,其一直备受广大应用开发者青睐。建表或者查看建表语句是日常应用或开发过程中常用的 *** 作,那么如何通过PL/SQL查看建表语句呢,下面我们就通过图文的方式详细的描述一下。

打开PL/SQLDeveloperoracle数据库连接工具

找到需要查看建表语句的表,右键,然后点击DBMS_元数据->DDL查看建表语句,其中找对应表有两种方式:

通过左边对象栏找到对应的表

通过点开SQL窗口直接输入的方法输入对应的表

可以显示对应表的建表语句

另一种方法是:通过第二步找到对应的表,右键,然后点击查看功能

在d出的 *** 作界面,点击查看SQL(V)按钮

可以在右侧的窗口中查看对应表的建表语句了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6820392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存