常用sql命令@oracle数据类型概括@权限、角色、用户的创建于使用@伪列及其注意事项

1.各种不同权限的用户

系统权限:

用户名:sys/system(用户名默认的是 sys,system);密码:Oracle11g(密码是你安装的密码,oracle11g的密码必须填Oracle11g)

重置用户密码,这里以scott用户为例:

alter user scott identified by tiger;(当忘记密码时,可以采用sqlplus sys/aaa as sysdba;--以数据库管理员的身份登录;alter user identified by 都是关键字)

对SCOTT解:
     alter user scott account unlock;

scott也可以在登录的时候 用一个错误的密码,会让你重新输入密码 和设置密码。

2.oracle数据库命令操作的使用

安装成功后进入DOS界面操作在进行以下操作时,需启动oracle服务(oracleServiceoral),如果要在项目中连接数据库则还需要开启两个服务(oracleOraDb11g_home1第二个、OracleDBConsoleorcl);最好设置成手动的,每次使用之前开启服务,因为oracle非常占内存,如果开机启动,不但导致开机慢还容易导致性能不好的电脑还会开机死机状态。

1)进入oracle命令窗口有以下三种方法:

A、开始--运行—cmd(或win+r输入cmd)回车:输入sqlplus 回车;提示输入正确的用户名和密码;

B、开始—>所有程序-àoracle文件-à应用程序开发—>sqlplus;

    C、开始—>输入sqlplus回车:提示输入正确的用户名和密码;

2)切换用户操作

 A、先退出 再登陆

Exit、quit:退出命令窗口;crtl+c :强制退出(可以从正在输入状态的命令中退出来);sqlplus窗口会直接关闭,cmd窗口会退出。 

oracle;登录命令 cmd下-》sqlplus回车 system/Oracle11g 直接登录或者搜索sqlplus直接输入用户密码

B、也可以不退出直接切换用户

在sql>操作中采用 conn/用户名/密码切换用户;例:conn scott/tiger;注意:登录的时候没有分号结束。

3)oracle 中的表是按照用户进行分类的

   sys 超级用户(权限最高)

   system 数据库管理员(执行大部分管理操作)

   自定用户 测试用户

3.常用oracle命令以及知识点串讲

常用命令:

select * from tabs:查询当前用户下有哪些表(多查询出系统表);

select table_name from user_tables:查询当前用户下的所有表名

desc 表名 :查看表有哪些列(表的结构)

conn system/Oracle11g:连接到用户

create user scott identified by tiger: 创建用户

conn scott/tiger: 切换用户    (用户切换失败提示Not logged on;出现用户没有session权限的提示,应当分配session权限)

用户与密码:

sys/Oracle11g

scott/tiger

hr/hr

dbshop/tiger

 

设置列宽:set linesize 120

设置具体列宽:col ename for 9999(只能是9,小于位数的会用#代替当前值)

sqlplus命令窗口清屏的命令:host cls

设置deptno不重复显示:    break on deptno skip 0;

设置deptno不重复显示并且不同deptno字段中间相隔2行:    break on deptno skip 2;

备份表(创建一个与emp表一样的表):create table emps as select * from emp;

分配权限:

grant 权限名 to 用户名;

SQL> conn system/Oracle11g;//第一步切换到管理员

SQL> grant create session to scott; //为用户受权

提示:Grant succeeded//受权成功

备注当受权成功后,scott就可以登录,但是登录后,当用户创建表时,也会出现权限不足,这就需要通过用户的角色来给用户分配权限的.角色(一个角色包含多个权限):

connect

   create session、create table、resource(对表空间使用权限) ……

   grant connect,resource to scott;

注意:对用用户的创建,权限的分配,只有管理员才能够操作,普通用户不能实现.

创建用户:

    切换到system管理员中 以system管理员进行登录

    1)、Create user 用户名 identified by 密码;(不能是全数字)  //创建用户

    2)、grant create session,create table,resource to 用户名; //给用户分配权限

3)、start  目录(D:\emp.sql);//注意该文件不能放在桌面 (因为目录中不能包含空格否则会出现如下错误:

SQL> start C:\a a a\emp.sql;  Error reading file)

案例:

SQL> create user redarmychen identified by redarmy;

 //创建用户并为用户设置密码为redarmy

SQL>  grant connect,resource to redarmychen;

 //给用户授权 connect,resource

SQL> conn redarmychen/redarmy; //切换到新创建的用户中来

SQL> start c:\emp.sql;  //导入外部sql文件的方式

SQL Plus常见的命令:

conn    切换连接用户

desc    显示表结构

host    执行操作系统命令

start   执行文件系统SQL语句

exit       退出

col        格式化输出

/       执行最近一条SQL或新定义过程

startup    启动数据库实例 (DBA)

shutdown   关闭数据库实例 (DBA)

startup shutdown必须是sys system用户才能够执行;其它用户不能使用.并且此命令只能在sqlplus中执行.不能在客户端工具中使用。

   数据是信息数字表现形式,信息的加工处理是以大量的结构化数据为载体进行的,数据库管理系统的核心是数据库,数据库的主要对象是表,表是结构化数据存储的地方.

   Oracle系统也提供了大量的数据类型主要包括两大类:用户自定义的数据类型、置的数据类型

数据类型:

A、字符型

字符数据类型可以用于声明包含了多个字母数字数据的字段。固定长度的字符类型

   char:用于存储固定长度的字符,一旦声明长度固定(不论你存储的实际大小,但是大小绝对不能大于声明的长度)长度不足时,采用空格补充。1B的默认大小,最大尺寸为2000B。

nchar与char的解析是一样的,不过ncarh存储的是Unicode字符数据

可变长度的字符类型varchar与char类似,但是它是用于存储可变的字符串,而char用于存储固定的字符串。

nvarchar与varchar解析是一样的,不过nvarchar用于存储的数据位双字节的数据

B、日期型

  date 短日期格式(1990-10-10)

  Timestamp长日期格式(1990-10-10 10:10:10)

C、数字型

Number(2),代表:声明一个2位数字的整数。

Number(3,2)代表:声明为3数字位,并且小数后有2位。

D、文本型-àlob数据类型

Blob:可以存储图像,音频文件及视频等文件。

Clob:字符格式的大型对象,oracle数据àunicode格式的编码

Bfile:用于存储二进制格式的文件。

E、rowid 伪劣类型

用于在oracle内部保存表中的每条记录的物理地址。

4.创建表命令与过程再现

插入语句:

向表中插入一条新的(全字段)记录

insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values(1111,'test','test','7369',to_date('1992-12-12','yyyy-mm-dd'),100,100,20);

或者写成:insert into emp values(2222,'test','test','7369',to_date('1992-12-12','yyyy-mm-dd'),100,100,20);

向表中插入一条新的(部分字段)记录

SQL>  insert into emp(empno,ename,hiredate,deptno) values(3333,'test',to_date('1992-12-12','yyyy-mm-dd'),30);

注意:在插入操作的时候如果有关联,一定要插入相应关联的字段的值.备注:插入之后都需要手动的提交 commit;

    SQL是structured Query Language(结构化查询语言)的缩写。可以使用sql语句建立或删除数据库的对象,插入,修改和更新数据库中的数据,并且可以对数据库执行各种日常管理的操作。它是所有关系数据库管理系统的标准语言.换句话说使用sql可以对所有的关系数据库进行操作。

5. SQL按照功能分类:

数据库定义语言

DDL(Data Definition Language):用于创建、修改、删除数据库对象。

数据库操作语言

DML(Data Manipulation Language)用于:查询,添加修改或删除存在数据库对象中的数据。

数据库控制语言

DCL(Data Control Language)用于控制访问数据库中特定对象的用户、grant revoke

Oracle系统中经过对Sql语言扩展被称为PL/SQL语言。

数据查询语言

DQL:(Data Query Language) SELECT 数据查询语言

6.集合运算符

UNION 并集 并去掉重复的行

UNION ALL 并集 不去除重复的行

MINUS  差集

INTERSECT 交集(oracle特有的)

7、伪列

1)、rowNum的伪列

SQL> select ename, rownum from emp; //rownum为查询的结果加上序列号

 

ENAME      ROWNUM

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

SMITH            1

ALLEN            2

WARD            3

 

SQL> select ename,rownum from emp where rownum<=5; //查询记录的前五条记录

ENAME      ROWNUM

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

SMITH            1

ALLEN            2

WARD            3

JONES            4

MARTIN          5

注意:如果把rownum用于比较条件时,只能用于小于、小于等于。

对于等于、大于 、大于等于不使用.

但有个特殊值就是大于等于1 或者等于1的时候可以。这就与rownum的产生原理有关.就是每当从磁盘拿出结果时,加上序列号。通过测试分析

测试

SQL> select ename,rownum from emp where rownum >5;//当使用大于判断时,没有查询出任何结果.

ENAME      ROWNUM

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

分析:当从磁盘读取的数据时,加上序列号为1,1>5不成立,读取数据,加上序号为1(这里很关键?),>5不成立,读取数据…….因此说1是特殊值.

RowNUM与Order By连接的问题

SQL> select ename,sal,rownum from emp  order by sal; //注意观察 rownum的输出结果.

 

ENAME        SAL     ROWNUM

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

test         100.00         15

SMITH      800.00          1

JAMES      950.00         12

ADAMS    1100.00         11

WARD     1250.00          3

以上说明先执行的rownum 再执行的排序.

解决方法:

SQL> select ename,sal,rownum from (select * from emp order by sal);//通过子查询实现

ENAME        SAL     ROWNUM

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

test         100.00          1

SMITH      800.00          2

JAMES      950.00          3

……..

rowid伪列:代表数据库表中记录的唯一标识(也可以理解成数据库表中该条记录的物理地址)。

SQL> select ename,sal,rowid from emp;

ENAME        SAL ROWID

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

SMITH      800.00 AAADVsAABAAAI1qAAA

ALLEN     1600.00 AAADVsAABAAAI1qAAB

…….

备注说明: 当使用rowid查询时,速度最快.

SQL> select empno,rowid from emp where empno =7369;

 

     EMPNO ROWID                                                               

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

      7369 AAAR3sAAEAAAACXAAA 

 

select empno,rowid from emp where rowid='AAAR3sAAEAAAACXAAA';

    EMPNO ROWID                                                               

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

      7369 AAAR3sAAEAAAACXAAA 

 

posted @ 2013-04-09 21:47  yangkai_keven  阅读(293)  评论(0编辑  收藏  举报