我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL编程实战-使用SQL*Plus

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL编程实战-使用SQL*Plus

使用SQL*Plus

1、查看表结构

SQL> desc  regions_copy

 Name                                     Null?    Type

 ------------------------------------------------- ----------------------------

 REGION_ID                                 NOT NULLNUMBER

 REGION_NAME                                       VARCHAR2(25)

 

2、编辑SQL语句

SQL> list

  1 CREATE OR REPLACE PROCEDURE update_product_price (

  2 p_product_id IN products.product_id%TYPE,

  3 p_factor IN NUMBER

  4  ) AS

  5 product_count INTEGER;

  6 BEGIN

  7  --count the number of products with the

  8  --supplied product_id (should be 1 if the product exists)

  9 SELECT COUNT(*)

 10  INTOproduct_count

 11  FROMproducts

 12 WHERE product_id = p_product_id;

 13

 14  --ifthe product exists (product_count =1) then

 15 --update that product's price

 16  IFproduct_count = 1 THEN

 17 UPDATE products

 18  SETprice = price * p_factor

 19 WHERE product_id = p_product_id ;

 20 COMMIT;

 21  ENDIF;

 22 EXCEPTION

 23   WHEN OTHERS THEN

 24*   ROLLBACK;

 25 END update_product_price;

 

SQL> l

  1* select dbms_metadata.get_ddl('TABLE','GEGIONS_COPY','HR') from dual

SQL>c/GEGIONS_COPY/REGIONS_COPY

  1* select dbms_metadata.get_ddl('TABLE','REGIONS_COPY','HR') from dual

SQL> LIST

  1* select dbms_metadata.get_ddl('TABLE','REGIONS_COPY','HR') from dual

 

(1)常用编辑命令        

 

A[PPEND] text        将text附加到当前行之后

C[HANGE] /old/new    将当前行的old替换为new

CL[EAR] BUFF[ER]       清除缓冲区中的所有行

DEL            删除当前行

DEL x            删除第x行

L[IST]            列出缓冲区中的所有行

L[IST] x            列出第x行

R[UN]            运行缓冲区中保存的语句

/            同上

x            将第x行作为当前行

 

SQL> l

  1 SELECT EMAIL

  2* FROM EMPLOYEES

SQL> l 1

  1* SELECT EMAIL

SQL>APPEND, SALARY

  1* SELECT EMAIL, SALARY

SQL> L

  1 SELECT EMAIL, SALARY

  2* FROM EMPLOYEES

 

SQL> RUN

  1 SELECT EMAIL, SALARY

  2* FROM EMPLOYEES

 

 

3、保存、检索并运行文件

 SQL> select dbms_metadata.get_ddl('TABLE','REGIONS_COPY','HR') from dual

SQL>save  /s01/regions_copy_get_ddl.sql

 

SQL> get/s01/regions_copy_get_ddl.sql

  1* selectdbms_metadata.get_ddl('TABLE','REGIONS_COPY','HR') from dual

 

SAVE filename[{REPLACE|APPEND}]   将sqlplus缓冲区的内容保存到由filename所指定的文件中

GET filename    将filename所指定的文件的内容读入sqlplus缓冲区

START filename |@ filename    运行文件中的内容,首先读入缓冲区

EDIT        打开一个编辑器,编辑缓冲区内容,然后写回缓冲区

         SPOOL filename

SPOOL  OFF将输出的内容写入文件中

 

SQL>EDIT

 在LINUX中默认为vi编辑器,在Windows中默认为Notepad编辑器。

 

修改默认编辑器

 

DEFINE  _EDITOR = 'editor'

DEFINE   _EDITOR = 'vi'

 

 

4、格式化列

COLUMN  {column|alias}[option]

指定要格式化的列名

指定要格式化的列的别名

选项

选项option

FOR[MAT] format    指定列的显示格式,由format确定

HEA[DING] heading    列

JUS[TIFY]        列的输出的对齐方式

[{left|center|right}]

WRA[PPEND]    将一个字符串的末尾换行显示

WORD_WRAPPED    同上,保证单个单词不能跨行

CLE[AR]   清除列的任何设置为默认

 


对于format

  • 1、对于字符串,可以使用Ax,指定字符的宽度

  • 2、对于数字,可以指定显示格式

  • 3、对于日期,指定显示格式,例如MM-DD-YYYY

 

 

 

5、设置页面大小

 SETPAGESIZE  100

页面最大大小为50000

 

6、设置行数大小

SETLINESIZE  100

 

7、清除列格式

SQL> COLUMN product_id  CLEAR    --清除指定列

 

SQL> CLERA COLUMN  --重置列格式,还原默认格式

 

8、使用变量

使用变量

变量被创建以后,可以在SQL语句中代替实际值使用。

SQLPLUS中可以使用两种基本的变量类型

1、临时变量,只在使用它的SQL语句中有效,值不能保留

2、已定义变量的值会一直保留到被显式的删除

 

(1)临时变量

& 使用&定义临时变量,后面跟变量名。

临时变量  &variable_name

 

--控制输出行

SQL>  SET VERIFY OFF  --禁止显示原行和新行的信息


SQL>  SETVERIFY  ON  

 

-- 修改变量定义字符

SQL> SET DEFINE '#'

SQL> SET DEFINE '&'


-- &&防止重复输入

 

--  定义变量

在SQL语句中,可以在使用变量之前对变量进行定义。在同一个SQL语句中还可以多次使用这个变量。

已定义变量会一直保持到显式的将其删除、重定义或退出SQLPLUS为止。

使用DEFINE命令定义并查看变量

 

  1. 使用ACCEPT命令定义并设置变量

ACCEPT命令用于等待用户为变量输入一个值。

ACCEPT命令既可以将现有的变量设置为一个新值,也可以定义一个新变量。

ACCEPT variable_name [type] [FORMAT format] [PROMPT prompt] [HIDE]

 type:变量类型,可以指定CHAR、NUMBER、DATE

默认为CHAR

 format:指定变量的格式

 prompt:提示文本,提示用户输入变量

 HIDE:隐藏为变量输入的值,例如密码信息,隐藏符号为*

 

9i以前显示为***,10g中不显示。

 

 

-- 删除已经定义的变量。

 

SQL>undefine  definename;

 

SQL> UNDEFINE v_customer_id

SQL> UNDEFINE v_date

SQL> UNDEFINE v_password

SQL> UNDEFINE v_product_id

 

9、创建简单的报表

在sqlplus中可以使用临时变量或者已定义变量,这样可以创建脚本来提示用户输入一些变量,然后使用这些变量来生成一些报表。

如果需要生成复杂的报表,需要使用oracle reports之类的软件。


 

-- 脚本中使用accept

 

ACCEPT variable_name [type] [FORMAT format]  [PROMAT  prompt]  [HIDE]

[eg]

SQL> ACCEPT v_customer_id NUMBER FORMAT 99 PROMPT 'Customer id'

 

-- 添加页眉和页脚

TTITLE和BTITLE命令可以用来向报表中天剑页眉和页脚。

[eg]

TTITLE LEFT 'Run date:' _DATE CENTER 'Run by the ' SQL.USER '  user '

RIGHT 'Page: ' FORMAT  999  SQL.PNO  SKIP 2


Run date: 12-AUG-07             Run by the HR user                         Page:    1

 

 

-- 计算小计

break on子句可以让sqlplus根据列值的范围分隔输出结果。

compute子句可以让sqlplus计算一列的和

两者可以结合使用

 BREAK ON product_type_id

 COMPUTE SUM  OF price ON product_type_id

 SET ECHO OFF

SET VERIFY OFF

SET PAGESIZE 50

SET LINESIZE 70

CLEAR COLUMNS

COLUMN price HEADING Price FORMAT $999.99

SELECT product_type_id,name,price

FROM products

ORDER BY product_type_id;

CLEAR COLUMNS

 

 

10、从SQL*PLUS获取帮助

SQL> HELP

SQL> HELP INDEX

SQL> help index

Enter Help [topic] for help.

 @             COPY         PAUSE                    SHUTDOWN
 @@            DEFINE       PRINT                    SPOOL
 /             DEL          PROMPT                   SQLPLUS
 ACCEPT        DESCRIBE     QUIT                     START
 APPEND        DISCONNECT   RECOVER                  STARTUP
 ARCHIVE LOG   EDIT         REMARK                   STORE
 ATTRIBUTE     EXECUTE      REPFOOTER                TIMING
 BREAK         EXIT         REPHEADER                TTITLE
 BTITLE        GET          RESERVED WORDS (SQL)     UNDEFINE
 CHANGE        HELP         RESERVED WORDS (PL/SQL)  VARIABLE
 CLEAR         HOST         RUN                      WHENEVER OSERROR
 COLUMN        INPUT        SAVE                     WHENEVER SQLERROR
 COMPUTE       LIST         SET                      XQUERY
 CONNECT       PASSWORD     SHOW

11、自动生成SQL语句

现在想生成一个脚本,删除数据库中所有的表。

SQL> select 'DROP TABLE ' || table_name || ';'
  2  from user_tables;

'DROPTABLE'||TABLE_NAME||';'
------------------------------------------
DROP TABLE REGIONS;
DROP TABLE LOCATIONS;
DROP TABLE DEPARTMENTS;
DROP TABLE JOBS;
DROP TABLE EMPLOYEES;
DROP TABLE JOB_HISTORY;
DROP TABLE REGIONS_COPY;
DROP TABLE BINARY_TEST;
DROP TABLE COUNTRIES;

9 rows selected.


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL编程实战-使用SQL*Plus

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

利用Mybatis Plus实现一个SQL拦截器

SQL拦截器是一种用于拦截和修改Mybatis执行的SQL语句的工具,通过使用SQL拦截器,开发人员可以在执行SQL语句之前或之后对其进行修改或记录,本文就来借助一下Mybatis-Plus实现一个SQL拦截器吧
2023-05-19

掌握SQL Server实战教程之SQL Server的安装指南

目录前言一. 数据库的介绍1.1 数据库的分类1.2 MS SQL介绍二. MS SQL的安装2.1 从网站下载安装包2.2 开始安装 选择基本版本2.3 安装SSMS三. 连接数据库3.1 数据库的连接3.2 创建数据库总结前言本文沐风
2023-04-19

掌握SQL Server实战教程之SQL Server的安装指南

对于项目来说最重要的一环莫过于数据库了,一个良好的数据库能够让项目更加清晰、条理分明,下面这篇文章主要给大家介绍了关于掌握SQL Server实战教程之SQL Server的安装指南,需要的朋友可以参考下
2023-05-16

mybatis-plus使用sql的date_format()函数来查询数据

前言 上次我们工具类对传入的时间数据进行了切割,这次就是使用date_format()函数对数据库存储的事件类型数据进行切割,并查出符合条件的数据。 DATE_FORMAT()函数介绍 DATE_FORMAT()函数接受两个参数: date
2023-08-17

Flink SQL 实战:HBase 的结合应用

本文主要介绍 HBase 和 Flink SQL 的结合使用。HBase 作为 Google 发表 Big Table 论文的开源实现版本,是一种分布式列式存储的数据库,构建在 HDFS 之上的 NoSQL 数据库,非常适合大规模实时查询,

Android编程之数据库Sql编程实例分析

本文实例讲述了Android编程之数据库Sql编程实现方法。分享给大家供大家参考。具体分析如下: Android中安装轻量级数据库Sqlite,现在测试数据库基本操作。 数据库基本操作:创建表,插入,删除可以用execSQL();读取可以用
2022-06-06

mybatis-plus如何使用sql的date_format()函数查询数据

目录前言myBAT编程客栈is-plus使用DATE_FORMAT()函数总结前言上次我们工具类对传入的时间数据进行了切割,这次就是使用date_format()函数对数据库存储的事件类型数据进行切割,并查出符合条件的数据。DATE_F
2023-02-02

怎么使用ChatGPT编写SQL JOIN查询

本篇内容主要讲解“怎么使用ChatGPT编写SQL JOIN查询”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用ChatGPT编写SQL JOIN查询”吧!一、ChatGPT 如何帮助 S
2023-07-05

高效SQL编程:LOWER函数的作用

在 SQL 编程中,LOWER 函数是一个非常有用的字符串处理函数,它用于将给定的字符串转换为小写形式。这对于进行不区分大小写的文本比较和搜索非常有用。具体来说,LOWER 函数的作用是将输入的字符串中的所有大写字母转换为小写字母,而其他
高效SQL编程:LOWER函数的作用
2024-10-24

编程热搜

目录