Oracle数据库(六)SQL*PLUS的使用

1、查看表结构:
1)describe 常用来查看表结构:
describe customers ;
但是通常可以简写为 :desc customers
2)编辑sql语句:
命令 说明
a[ppend] text 将 text 附加到当前行之后
c[hange]/old/new 将当前行中的old替换为new
cl[ear] buff[er] 清除缓存区中的所有行
del 删除当前行
del x 删除第 x 行(行号从 1 开始)
l[ist] 列出缓冲区中的所有的行
l[ist] x 列出第 x 行
r[un] 运行缓冲区中保存的语句
或 也可以使用 / 来运行缓冲区中保存的语句
/
x 将第 x 行作为当前行

	append text 是在查询的内容后面的追加要重新进行查询的内容
3)保存、检索并运行文件
	命令									说明
	sav[e] filename			将sql*plus缓冲区的内容保存到由filename所指定的文件中。append选项说明将缓冲区中的内容追加到一个现有的文件
	[{replace{append}}]		之后;replace选项说明覆盖一个现有文件
	
	get filename			将filename所指定的的文件的内容读入sql*plus缓冲区中
	
	sta[rt] filname			将有filname所制定的文件的内容读入sql*plus缓冲区中,然后试图运行缓冲区中的内容
	
	@ filename				与start命令相同
	
	ed[it]					将sql*plus缓冲区的内容复制到一个名为afiedt.buf的文件中,然后启动操作系统中默认的编辑器,
							。在推出编辑器时,所编辑的文件将被复制到sql*plus缓冲区中。
							
	ed[it] filename			与edit命令相同,但是可以指定要进行编辑的文件,它的文件名可以使用filename参数指定
	
	spo[ol] filename		将sql*plus中输出的结果复制到filename所指定的文件中。
	
	spo[ol] off				将sql*plus中的输出结果复制到filename所指定的文件中,并关闭该文件。
4)格式化列:(没有必要进行学习)
	column命令用于格式化标题和列数据的显示格式。column命令的简化语法如下:
		col[umn] {column | alias} [options]
		· column 指定列名
		· alias 指定要格式化的列的别名
		· options 指定用于格式化列或者别名的一个或者多个选项
	在column命令中,可以使用很多的选项:
	选项					说明
	for[amt] format		将列或者别名的显示格式设置为有format字符串指定的格式。
	
	hea[ding] heading 	将列或者别名的标题中的文本设置为由heading字符串指定的格式
	
	jus[tify]			将列输出设置为左对齐、右对齐或者居中
	[{left | center | right}]
	
	wra[pped]			在输出结果中将一个字符串的末尾换行显示。该选项可能导致单个单词跨越多行。
	
	wor[d_wrapped]		与wrapped选项类似,不同之处在于单个单词不能跨越两行
	
	cle[ar]				清除列的任何格式化(将格式设置会默认)
5)使用变量:
	变量在创建之后,可以再SQL语句中代替实际值使用。由于这些变量通常都用来代替值,因此被称为替代变量(substitution
	variable),在SQL*PLUS中可以使用两种基本的变量类型:
		· 临时变量: 只在使用它的SQL语句中有效,值不能保留
		· 已定义变量: 已定义变量的值会一直保留到被显式地删除,重定义或者退出SQL*PLUS为止。
	为什么变量非常的有用 ?
		变量非常的有用是因为程序员可以使用变量创建一些不懂SQL语句的人也可以运行的脚本,这种脚本可以提示用户为变量
		输入值,并在SQL语句中使用该值。
			select customer_id , name , price
			from customers
			where customer_id = 1 ;
		这个查询能够正常的进行,但是它只能检索出一个信息。如果能够不断地通过修改customer_id的值就源源不断的查找出
		产品的信息。当然,通过使用变量这一手段就能够达到这样的效果。
	
	【1】临时变量:
		在SQL语句中,可以使用字符 & 定义临时变量,后面的跟上要定义的变量名。例如 &product_id_var 就定义了一个名为
		product_id_var 的变量:
			当运行下面的 select 语句时,SQL*PLUS就会提示用户为product_id_var 变量输入一个值,然后再select语句的
		where子句中使用这个变量的值。如果 product_id_var 变量输入为 2 ,那么就会显示产品 #2 的详细信息:
			select product_id , name , price
			from products
			where product_id = &product_id_var ;
		***使用符号 / 可以重复不断地执行查询
		
		(1)控制输出行:
			原行和新行的输出可以使用 set verify 命令控制。如果输入 set verify off ,就会禁止显示原行和新行。
			要重新显示这些行,输入 set verify on 命令。
			
		(2) 修改变量定义字符:
			set define 命令用于指定一个除字符 & 之外的字符,用来定义变量。下面的例子就显示了如何使用 set define 
			命令将变量定义字符设置为井号字符(#),并显示了一个新的 select 语句:
				set define '#'
			下面的这个例子使用 set define 命令将变量字符修改回字符 & :
				set define '&'
		(3)使用变量替换表明和列名
			变量不但可以用来替换列值,还可以用来替换列名和表明。例如,下面这个查询定义了三个变量,分别需要输入一个
			列名(col_var)和一个表名(table_var),以及一个列值(col_val_var):
				select name , &col_var
				from &table_var
				where &col_var = &col_val_var ;
						输入 col_var 的值:  product_type_id
						原值    1: select name , &col_var
						新值    1: select name , product_type_id
						输入 table_var 的值:  products
						原值    2: from &table_var
						新值    2: from products
						输入 col_var 的值:  product_type_id
						输入 col_val_var 的值:  1
						原值    3: where &col_var = &col_val_var
						新值    3: where product_type_id = 1
						
						NAME                           PRODUCT_TYPE_ID
						------------------------------ ---------------
						Modern Science                               1
						Chemistry                                    1
			*** && 用来防止重复输入一个变量。例如:
				select name , &&col_var
				from &table_var
				where &&col_var = &col_val_var ;
				
	【2】已定义变量:
		在 SQL 语句中,可以再使用变量之前就对变量进行定义,在同一个SQL语句中还可以多次的使用这个变量。已定义变量会
		一直保留到显式的将其删除、重定义或退出SQL*PLUS为止。
		可以使用 define 命令定义变量。在使用完变量之后,可以使用 undefine 命令将其删除。本节还将会介绍 accept 
		命令,该命令可以定一个变量,同时为该变量指定一个数据类型。
		
		(1)使用 define 命令定义并查看变量
			define 命令既可以用来定义一个新的变量,也可以用来查看当前已经定义的变量。下面这个例子定义了一个名为
			product_id_var的变量,并将其值设置为 7:
				
					define product_id_var = 7 ;
					
				使用 define 加上变量名就可以查看变量的定义。下面的这个例子就显示了 product_id_var 的定义:
					
					define product_id_var ;
							define product_id_var  ;
							DEFINE PRODUCT_ID_VAR  = "7" (CHAR)
							
				单独使用 define 命令 ,可以看到当前会话所有的变量
				
				已定义变量可以用于指定一个元素,比如 SQL 语句中的一个列值。PS下面的这个查询使用了之前定义的变量
				product_id_var,并且在where子句中引用该变量的值:
					select product_id , name , price
					from products
					where product_id = & product_id_var ;
		(2) 使用 accept 命令定义并设置变量:
			accept 命令用于等待用户为变量输入一个值 。 accept 命令既可以将现有的变量设置为一个新值 , 也可以
			定义一个新的变量,并使用一个值对该变量进行初始化。accept 命令还允许为变量指定数据类型 ,accept 命令的
			简化语法如下所示:
				accept variable_name [type] [FORMAT format] [PROMPT prompt] [HIDE]
			其中:
				· variable_name 指定了为变量分配的名字
				· type 指定了变量的数据类型,可以使用的类型有char 、number 和 date。默认情况下,变量的类型为
				  char。date 类型的变量实际上也是以 char 变量储存的。
				· fromat 指定变量的格式,例子包括A15(15个字符),9999(一个4位的数字)和 DD-MON-YYYY(日期)。
				· HIDE 说明隐藏为变量输入的值。例如,用户可能希望隐藏密码或其他敏感信息。当输入字符时,隐藏值使
				  用星号(*)显示。
				PS:
					accept customer_id_var number format 99 prompt 'Customer id :' ;
		(3) 使用 undefine 命令删除变量:
			undefined 命令用于删除变量。
			PS:
				undefine customer_id_var   ---------> 删除变量 customer_id_var
				undifine date_var          ---------> 删除变量 date_var
				undifine password_var	   ---------> 删除变量 password_var
				
6) 创建简单报表:
	(1)在脚本中临时使用变量:
		下面的脚本 report.sql 在 select 语句的 where 子句中使用了一个名为 product_id_var的变量:
			--suppress display of the statements and verification message
			set echo off
			set verify off
			
			select product_id , name , price
			from products
			where product_id = &product_id_var ;
	(2) 在脚本中使用已定义的变量:
		下面的这个(名为report2.sql) 的脚本使用 accept 命令定义了一个名为product_id_var的变量:
			set echo off
			set verify off
			
			accept product_id_var number format 99 prompt 'Enter product id:'
			
			select product_id , name , price
			from products
			where product_id = &product_id_var ;
			
			--clean up
			undefine product_id_var
	(3)向脚本中的变量添加值:
			在运行脚本是可以向变量传递值。这样做时,必须使用一个数字来引用脚本中的变量。
			下面这个脚本report3.sql就给出了这样一个例子;注意白能量被定义为 &1
			
				set echo off
				set verify off
				
				select product_id , name , price
				from products
				where product_id = &1 ;
				
			运行脚本时,需要在脚本后面提供变量的值 。
			同时在脚本中我们也可以设置多个参数,下面的脚本 report4.sql 在脚本中设置了 &1 和 &2 两个参数。
				set echo off 
				set verify off 
				
				select product_id_type , product_id , name , price
				from products
				where  product_id_type = &1
				and price > &2 ;
				
				--clean up
				undefine 1
				undefine 2
	(4) 添加页眉和页脚
		title 和 btitle 命令可以用来向报表中添加页眉和页脚 。下面地这个脚本report5.sql
		就显示了这样一个例子:
			title 'Product Report'
			btitle 'Thanks for running the report'
			
			set echo off
			set verify off
			set pagesize 300 
			set linesize 300 
			clear columns
			column product_id heading id format 99
			column name heading 'Product Name' format a20 word_wrapped
			column description heading description heading description format a30 word_wrapped
			column price heading price format $99.99
			
			select product_id , name , description , price
			from products ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值