oracle数据库基本语句 oracle数据库连接语句怎么写
大家好,如果您还对oracle数据库基本语句不太了解,没有关系,今天就由本站为大家分享oracle数据库基本语句的知识,包括oracle数据库连接语句怎么写的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
Oracle数据库基本常用命令汇总
以下是对Oracle中的数据库基本常用命令进行了总结介绍需要的朋友可以过来参考下
得到数据库名和创建日期 SELECT name created log_mode open_mode FROM v$database;
ORACLE数据库的计算机的主机名 ORACLE数据库的实例名及ORACLE数据库管理系统的版本信息 SELECT host_name instance_name version FROM v$instance;
为了知道oracle数据库版本的一些特殊信息 select* from v$version;
获取控制文件名字 select* from v$controlfile;
得到Oracle数据库的重做日志配置信息 SELECT group# members bytes status archived FROM v$log; select GROUP# MEMBER from v$logfile;
获取oracle的每个重做日志(成员)文件所存放的具***置 select* from v$logfile;
知道ORACLE数据库的备份和恢复策略和归档文件的具***置 archive log list
知道ORACLE数据库中到底有多少表空间以及每个表空间的状态 select tablespace_name block_size status contents logging from dba_tablespaces; select tablespace_name status from dba_tablespaces;
知道每个表空间存在哪个磁盘上以及文件的名字等信息 SELECT file_id file_name tablespace_name status bytes from dba_data_files; select file_name tablespace_name from dba_data_files;
知道Oracle数据库系统上到底有多少用户和都是什么时候创建的 select username created from dba_users; select username DEFAULT_TABLESPACE from dba_users;
从控制文件中取出信息涉及到以下一些相关的命令
控制文件由两大部份组成可重用的部份和不可重用的部分可重用的部分的大小可用 CONTROL_FILE_RECORD_KEEP_TIME参数来控制该参数的默认值为天即可重用的部份的内容保留天一周之后这部份的内容可能被覆盖可重用的部份是供恢复管理器来使用的这部份的内容可以自动扩展 Oracle数据库管理员可以使用CREAT DATABASE或 CREAT CONTROLFILE语句中的下列关键字(参数)来间接影响不可重用的部份的大小
复制代码代码如下: MAXDATAFILES MAXINSTANCES MAXLOGFILES MAXLOGHISTORY MAXLOGMEMBERS查看控制文件的配置 SELECT type record_size records_total records_used FROM v$controlfile_record_section;
如果您的显示被分成了两部分您需要使用类似于set pagesize的SQL*Plus命令先格式化输出有关的格式化输出命令有以下这些 record_size为每个记录的字节数 records_total为该段所分配的记录个数 records_used为该段所使用的记录个数
知道控制文件中的所有数据文件(DATAFILE)表空间(TABLESPACE)和重做日志(REDO LOG)所使用的记录情况 SELECT type record_size records_total records_used FROM v$controlfile_record_section WHERE type IN(‘DATAFILE‘TABLESPACE‘REDO LOG);
获取控制文件名字 select value from v$parameter where name= control_files;或者 select* from v$controlfile
如何在一个已经安装的Oracle数据库中添加或移动控制文件呢?以下是在一个已经安装的Oracle数据库中添加或移动控制文件的具体步骤
a利用数据字典v$controlfile来获取现有控制文件名字
b正常关闭Oracle数据库
c将新的控制文件名添加到参数文件的CONTROL_FILES参数中
d使用操作系统的复制命令将现有控制文件复制到指定位置
e重新启动Oracle数据库
f利用数据字典v$controlfile来验证新的控制文件名字是否正确
g如果有误重做上述操作如果无误删除无用的旧控制文件
注如果您使用了服务器初始化参数文件(SPFILE)您不能关闭Oracle数据库而且应该在第步使用alter system set control_files的Oracle命令来改变控制文件的位置
复制代码代码如下: SQL> alter system set control_files=‘D:\Disk \CONTROL CTL‘D:\Disk \CONTROL CTL‘D:\Disk \CONTROL CTL SCOPE=SPFILE;由于控制文件是一个极其种要的文件除了以上所说的将控制文件的多个副本存在不同的硬盘上的保护措施外在数据库的结构变化之后您应立即对控制文件进行备份可以用Oracle命令来对控制文件进行备份 alter database backup controlfile to‘D:\backup\control bak;
您也可将备份到一个追踪文件中该追踪文件包含有重建控制文件所需的SQL语句可使用以下SQL语句来产生这一追踪文件 alter database backup controlfile to trace;
lishixinzhi/Article/program/Oracle/201311/19116Oracle数据库基础知识:SELECT语句
Oracle数据库基础知识:SELECT语句
SELECT语句是指用来查询、添加、和删除数据库中数据的语句,和删除数据库中数据的语句,它们是 SELECT、 INSERT、 UPDATE、 DELETE等.下面是Oracle数据库基础知识——SELECT语句,希望对大家有所帮助!
普通用户连接conn scott/tiger
超级管理员连接 conn“sys/sys as sysdba”
Disconnect断开连接
把SQL存到文件 save c:\1.txt
Ed c:\1.txt编辑SQL语句
@c:\1.txt运行SQL语句
Desc emp描述EMP结构
Select* from tab查看该用户下大所有对象
Show user显示当前用户
书写SQL语句的原则
大小写不敏感,但单引和双引内的大小写是敏感的。切记!
关键字不能缩写
可以分行书写,但关键字不能被跨行书写,单引内也不要跨行书写。
一般每个子句是一行
可以排版来增加可读性
字符串用单引
列的别名用双引
SELECT语句
1、简单的Select语句
Select* from table不指定查询的字段
Select attr1,attr2 from table指定查询某些字段
Select attr1,attr2 from table where attr1=xxx查询符合条件的指定字段
2、使用算术表达式+-/*
表达式的运算是有优先级的,和程序中的一样,先乘除后加减,括号强制优先级.
+-*/
先乘除,后加减,括号强制优先级
Select ename,12*sal+300 from emp;
Select ename,12*(sal+300) from emp;
3、连接运算符||
4、使用字段别名 as
别名的'使用原则
1。区分同名列的名称
2。非法的表达式合法化
3。按照你的意愿显示列的名称
4。特殊的别名要双引
5。直接写列的后面
6。使用as增加可读性
5、空值 is null
Null值不等于0,也不等于空格。
Null值是未赋值的值,不入索引。
NULL是双刃剑,使用好了提高性能,你对它不了解,往往是错误的根源,切记!
查询NULL值
因为null不等于null,所以没有行被选出。未知不等于未知,无穷不等于无穷.
6、去除重复行 distinct
SELECT语句显示重复的行。用DISTINCT语法来去掉重复的行。
如果我们想去掉重复的行,我们需要distinct关键字。
在ORACLE数据库的10G前版本,该语句需要排序才能去掉重复的行,而在10G中数据库并不需要
排序,而是使用HASH算法来去掉重复的行,由于避免了排序,从而极大的提高了SQL语句的效率,
因为10G的SQL内核改写了。效率更加的高。因为没有排序,所以输出也是无序的。
7、查询结果排序 order by asc(desc)
Where和order by子句
语法
SELECT*|{[DISTINCT] column|expression [alias],...}
FROM table
[WHERE condition(s)]
[order by column|expression| alias ];
Where一定要放在FROM子句的后面。
显示表的部分行和部分列,使用where子句过滤出想要的行
Select deptno,ename from emp Where deptno=10;
Order by放在最后,用来排序显示结果
不指明都是二进制排序,如果你想按照拼音,部首,笔画,法语等特殊的排序模式,请设定排序的环境
变量,关于国家语言的支持问题我们再DBA体系结构中描述。
默认是升序asc
降序要指定desc
8、比较运算符><(!= or<>) between and
And运算
Select ename,deptno,sal From emp Where deptno=30 and sal>1200;
ENAME DEPTNO SAL
--------------------------
ALLEN 30 1600
WARD 30 1250
MARTIN 30 1250
BLAKE 30 2850
TURNER 30 1500
两个条件的交集,必须同时满足。
in操作 not in
含上下界
In操作,穷举,据说穷举不能超过1000个值,我没有去验证。一般我们也不会穷举到1000个值,如
果到1000请改写你的SQL。
Select deptno,ename,sal from emp Where deptno in(10,20);
9、模糊查询 like
%表示零或多个字符
_表示一个字符
对于特殊符号可使用ESCAPE标识符来查找
Like运算
_通配一个,仅匹配一个字符,
%通配没有或多个字符
10、逻辑运算符 or and not
OR运算
Select ename,deptno,sal From emp Where deptno=30 or sal>1200;
ENAME DEPTNO SAL
--------------------------
ALLEN 30 1600
WARD 30 1250
JONES 20 2975
MARTIN 30 1250
BLAKE 30 2850
CLARK 10 2450
KING 10 5000
TURNER 30 1500
JAMES 30 950
FORD 20 3000
MILLER 10 1300
两个条件的并集,满足一个就可以。
not运算
Select ename,deptno,sal From emp Where ename not like'T%';
ENAME DEPTNO SAL
--------------------------
SMITH 20 800
ALLEN 30 1600
oracle数据库连接语句怎么写
public void testOracle()
{
Connection con= null;//创建一个数据库连接
PreparedStatement pre= null;//创建预编译语句对象,一般都是用这个而不用Statement
ResultSet result= null;//创建一个结果集对象
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");//加载Oracle驱动程序
System.out.println("开始尝试连接数据库!");
String url="jdbc:oracle:"+"thin:@127.0.0.1:1521:XE";// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名
String user="system";//用户名,系统默认的账户名
String password="147";//你安装时选设置的密码
con= DriverManager.getConnection(url, user, password);//获取连接
System.out.println("连接成功!");
String sql="select* from student where name=?";//预编译语句,“?”代表参数
pre= con.prepareStatement(sql);//实例化预编译语句
pre.setString(1,"刘显安");//设置参数,前面的1表示参数的索引,而不是表中列名的索引
result= pre.executeQuery();//执行查询,注意括号中不需要再加参数
while(result.next())
//当结果集不为空时
System.out.println("学号:"+ result.getInt("id")+"姓名:"
+ result.getString("name"));
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
//逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
//注意关闭的顺序,最后使用的最先关闭
if(result!= null)
result.close();
if(pre!= null)
pre.close();
if(con!= null)
con.close();
System.out.println("数据库连接已关闭!");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
OK,本文到此结束,希望对大家有所帮助。