第一部分。
1:创建用户。
create user 用户名 identified by 口令 [account lock|unlock]
语法解析:lock|unlock创建用户时是否锁定,默认为锁定状态。锁定的用户无法正常的登录进行数据库操作。
2:oracle用户对数据库管理或对象操作的权利,分为系统权限和数据库对象权限。数据库对象权限,比如对表中的数据进行增删改操作等,拥有数据库对象权限的用户可以对所拥有的对象进行对应的操作。
系统权限比如:create session,create table等,拥有系统权限的用户,允许拥有相应的系统操作。
还有一个概念就是数据库角色(role),数据库角色就是若干个系统权限的集合。
1):connect角色:connect是使用oracle的简单权限,拥有connect角色的用户,可以与服务器建立连接会话(session,客户端对服务器连接,称为会话)。
2):resource角色:resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)等。
3):dba角色:用户system拥有dba角色。
系统权限只能由dba用户授权,对象权限由拥有该对象的用户授权。
赋予权限。grant角色|权限 to 用户(角色)
**权限。revoke 角色|权限 from 用户(角色)
修改用户的密码。
alter user 用户名 identified by 新密码。
修改用户处于锁定(非锁定)状态。
alter user 用户名 account lock|unlock
3:客户端链接服务器前,服务器要启动监听服务,并且客户端工具要安装oracle客户端,并且在客户端要建立本地网络服务名。
第二部分。在oracle开发中,客户端把sql语句发送给服务器,服务器对sql语句进行编译、执行,把执行的结果返回给客户端。oracle sql语句由如下命令组成:
数据定义语言(ddl),包括create(创建)命令、alter(修改)命令、drop(删除)命令等。
数据操纵语言(dml),包括insert(插入)命令、update(更新)命令、delete(删除)命令、select … for update(查询)等。
数据查询语言(dql),包括基本查询语句、order by子句、group by子句等。
事务控制语言(tcl),包括commit(提交)命令、s**epoint(保存点)命令、rollback(回滚)命令。
数据控制语言(dcl),grant(授权)命令、revoke(撤销)命令。
create table 表名 ()
alter table 表名 add constraint 约束名约束内容。
例子:create table infos
stuid varchar2(7) not null, -学号学号=‘s’+班号+2位序号
stuname varchar2(10) not null, -姓名。
gender varchar2(2) not null, -性别
age number(2) not null年龄。
seat number(2) not null座号。
enrolldate date, -入学时间。
stuaddress varchar2(50) default '地址不详住址。
classno varchar2(4) not null --班号班号=学期序号+班级序号
alter table infos add constraint pk_infos primary key(stuid) ②
alter table infos add constraint ck_infos_gender
check(gender = 男' or gender = 女')
alter table infos add constraint ck_infos_seat
check(seat >=0 and seat <=50) ④
alter table infos add constraint ck_infos_age
check(age >=0 and age<=100) ⑤
alter table infos add constraint ck_infos_classno
check((classno >=1001' and classno<='1999') or
classno >=2001' and classno<='2999'))
alter table infos add constraints un_stuname unique(stuname)
语法结构:简单查询。
select *|列名|表达式 from 表名 where 条件 order by 列名。
语法结构:根据结果集创建表。
create table 表名 as select语句。
使用上面命令创建的新表中,不存在任何约束,并且把查询的数据一起插入到新表中。如果只复制表结构,只需使查询的条件不成立(比如where 1=2),就不会查询从出任何数据,从而复制一个表结构。
语法结构:根据结果集创建表。
insert into 表名(列名1,列名2……)values (值1,值2……)
insert into 表 select子句。
to_date('2009-8-9 06:30:10','yyyy-mm-dd hh24:mi:ss ')
语法结构:update操作。
update 表名 set 列名1=值,列名2=值…… where 条件。
语法结构:delete操作。
delete from表名 where 条件。
语法结构:truncate (删除所有数据)
truncate table 表名
truncate是ddl命令,删除的数据不能恢复;delete命令是dml命令,删除后的数据可以通过日志文件恢复)
distinct消除重复行。
集合运算就是将两个或者多个结果集组合成为一个结果集。集合运算包括:
intersect(交集),返回两个查询共有的记录。
union all(并集),返回各个查询的所有记录,包括重复记录。
union(并集),返回各个查询的所有记录,不包括重复记录。
minus(补集),返回第一个查询检索出的记录减去第二个查询检索出的记录之后剩余的记录。
当使用集合操作的时候,要注意:查询所返回的列数以及列的类型必须匹配,列名可以不同。
第三部分::例子:
select ename,job,sal from emp
where sal解析:
:在oracle的表的使用过程中,实际表中还有一些附加的列,称为伪列。伪列就像表中的列一样,但是在表中并不存储。
伪列只能查询,不能进行增删改操作。两个伪列:rowid和rownum。
rownum与rowid不同,rowid是插入记录时生成,rownum是查询数据时生成。rowid标识的是行的物理地址。rownum标识的是查询结果中的行的次序。
例子:select * from
(select rownum r,ename,job,sal ①
from emp where rownum<=10)
where r>5
**解析:1 内部查询中得到rownum 并且用别名r记录,供外层条件③使用。
2 内部查询的rownum,与外出的rownum列是平等的两列。
3 使用的r是内层产生的rownum,在外层看来,内层查询的rownum是正常的一列。
字符函数。数字函数。
oracle笔记
1 查看表的结构 desc tabledescription 2 set timing on 打开操作表的时间记录。3 消除重复行 distinct 4 大小写不区分的是列名,而不是里面的数据。1 可以对某一列直接进行加减乘除。两列相加。2 如果有一列为null,所得结果也为空。使用nvl函数处理n...
Oracle笔记
第1页1.oracle 的使用 1.1.sqlplus 的命令 初始化表的位置 set nls lang american 设置编码才可以使用下面脚本 cd oracle home rdbms cd demo 我们目前使用的是oralce 9i 9201 版本 select from v versi...
oracle笔记
clear 清屏。col title for a20 设置title的字符最多有20个。oracle介绍。rdbsrdb 基本的存储结构是,二维表。表头。行。列。字段。sql的分类 dsl 关键字 select dml 操作 insert delete update ddl 定义 create dr...