当你初次使用Oracle数据库的时候,我们可能会觉得比较困难,一般来说,初次使用一个数据库的时候,我们最想知道的操作是什么,作者认为可能是如下几个疑问。
1、怎么进入到SQL执行界面
方法一:打开命令提示符,直接输入sqlplus即可进入SQL界面;
方法二:使用Oracle自带的sqlplus程序,打开方式是,从windwos开始菜单中选择到Oracle的安装程序(Oracle - OraDB12Home1),然后“应用程序开发”---"SQL Plus";
方法三:据说可以使用工具-Oracle SQL Developer,这个工具在安装完成Oracle12c后会有,打开方式也是在“应用程序开发”下面,跟“SQL Plus”在一起。(使用浏览器模式访问
,如:http://localhost:1521/isqlplus,这个在Oracle 10g版本是有的,但是据说是从Oracle 11g开始就没有了,该功能被Oracle SQL Developer替换。)
初次使用数据库,进入SQL界面后,可以使用sys或者system系统dba用户来登录。然后来操作数据库,包括建立自己的用户,表结构等。如果你要使用普通用户,比如scott,初次使用时候你需要对你解锁。
2、解锁scott用户并登录scott用户
登录sys用户,并且是以sysdba的身份登录,然后对scott用户进行解锁。
C:\Users\v1000>sqlplus sys as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on 星期六 10月 11 10:33:26 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
输入口令:
连接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> show user;
USER 为 "SYS"
SQL> alter user scott account unlock;
用户已更改。
解锁之后,即可登录scott用户,命令行输入:sqlplus scott/tiger ,初次使用scott时候,系统会提示你密码过期,要你修改,这里建议修改的值还是tiger,这样便于记忆。
C:\Users\v1000>sqlplus scott/tiger
SQL*Plus: Release 12.1.0.1.0 Production on 星期六 10月 11 10:36:43 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
ERROR:
ORA-28001: the password has expired
更改 scott 的口令
新口令:
重新键入新口令:
口令已更改
连接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>
修改密码命令:alter user system identified by pwd123
3、怎么创建Oracle用户
create user c##WolfOfSiberian identified by QuietWolf;
grant connect,resource,dba to c##WolfOfSiberian;(select username from all_users;)
commit;
参考链接:http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_8003.htm#SQLRF01503
4、怎么查看当前操作用户以及当前使用数据库
4.1 查看当前操作用户
show user;
4.2 查看当前使用数据库
适用所有用户:
select SYS_CONTEXT('USERENV','INSTANCE_NAME') from dual;
具有DBA的权限的用户:
select name from v$database;
show parameter name
4.3 查看当前数据库所有表
select table_name from user_tables;
4.4 查看表结构
desc emp;
4.5 其他
-- 查看ORACLE 数据库中本用户下的所有表
SELECT table_name FROM user_tables;
-- 查看ORACLE 数据库中所有用户下的所有表
select user,table_name from all_tables;
-- 查看ORACLE 数据库中本用户下的所有列
select table_name,column_name from user_tab_columns;
-- 查看ORACLE 数据库中本用户下的所有列
select user,table_name,column_name from all_tab_columns;
-- 查看ORACLE 数据库中的序列号
select * from user_sequences;
-- 上面的所有对象,都可以通过下面的SQL语句查询得到
-- 查询所有的用户生成的ORACLE对象
SELECT * FROM user_objects;
-- 查看ORACLE 数据库中所有表的注释
select table_name,comments from user_tab_comments;
-- 查看ORACLE 数据库中所有列的注释
select table_name,column_name,comments from user_col_comments;
-- 给表加ORACLE的注释
COMMENT ON TABLE aa10 IS '系统参数表';
-- 给列加ORACLE的注释
COMMENT ON COLUMN aa10.aaa100 IS '参数类别';
-- 查看表中列的属性,包括 数据类型,是否非空等
DESC aa10;
-- 通过系统表,查看表中列的属性,包括 数据类型,是否非空等
SELECT table_name,COLUMN_ID,column_name,data_type,data_length,DATA_PRECISION,NULLABLE
FROM user_tab_columns
ORDER BY table_name,COLUMN_ID;
--查看所有表空间
selecttablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name
--查看未使用表空间大小
selecttablespace_name,sum(bytes)/1024/1024 from dba_free_space group bytablespace_name;
-- 查看数据库中表、索引占用的数据库空间大小
SELECT * FROM user_segments;
-- 查看所有表的记录数
CREATE TABLE table_count(table_name VARCHAR2(50),columns NUMBER(20));
-- 通过PB运行下面的语句,得到结果集,将结果集在PB下执行,最后提交
select 'insert into table_count values('''||table_name||''', (select count(1)from '||table_name||'));//'||comments from user_tab_comments;
-- 所有表的记录都在table_count了
SELECT * FROM table_count;
4.6 如何查看当前oracle 日期默认格式
select * from nls_session_parameters; select * from nls_instance_parameters; select * from nls_database_parameters; 其中的NLS_TIME_FORMAT就是日期格式,这三句分别是会话级,实例级和数据库级的
5、怎么创建数据库
方法一:使用database configuration Assistant
具体步骤参见:http://blog.csdn.net/wolfofsiberian/article/details/39966549
方法二:SQL命令形式,后面学习后再补充
6、oracle中sql plus是怎么连接数据库的
(1)若在图形界面方式下,则需在主机字符串(Host string)中指明连接描述符。
如果你采用的是默认安装,没有指明连接描述符,通常为orcl。
(2)在命令行方式下,连接命令的格式是:conn username/password@connect_identifier
username:用户名
password:口令
connect_identifier:连接描述符
如果没有指定连接描述符,则连接到系统环境变量ORACLE_SID所指定的数据库。
如果没有设定ORACLE_SID,则连接到的数据库。
如果你的机器上安装过两个或两个以上数据库,那必须在命令中加上@连接描述符。
7、高级语言如何访问Oracle数据库
请参见Java操作Oracle数据库:http://blog.csdn.net/wolfofsiberian/article/details/39803657
8、查询SQL语句执行错误对应的帮助
SQL> host oerr ora 1
ORACLE_HOME not set. Contact Oracle Support Services.
当前还不能正常使用错误的相关帮助提示,解决方案参见:http://blog.csdn.net/wolfofsiberian/article/details/39991017
附录