oracle笔记

数据库分三种:
一:小型数据库
    微软的:access
            foxbase 
二:中性数据库
     瑞典   MySql
     微软   sql server
     IBM:  informix
三:大型数据库
    美国Sybase  sybase
    美国Oracle  oracle
     IBM        db2

连接命令:conn 用户/密码
判断连接:disc
修改密码:passw
显示当前用户名:show user
退出命令:exit
执行脚本:start D:\文件名称
编辑脚本:edit D:\文件名称

 


系统用户:sys 密码 默认密码change_on_install 主机字符串写 oracle数据库名 as sysdba
          system  密码 默认manager 安装时可修改sa
   scott 密码 tiger 

 

创建用户:create user 用户名 identified by 密码 (密码必须字母开头,不能使用保留字)创建用户必须要赋予权限 否则普通用户不能创建

删除用户 drop user 用户名 (如果这个用户创建表了,就需要加一个参数cascade);

更改用户口令:password 用户名;

赋予一个角色:grant connet to 用户名

 

oracle权限分为两种:
一:系统权限 -- 用户对数据库相关的权限 (系统权限大概有140多个,对象权限有25个)
 角色分两种:
1:预定义角色(connect(连接权限)、dba(系统所有权限)、resource(可以在任何表空间建表))     
      赋予权限 grant connect to 用户名;
  grant dba to 用户名;
  grant resource to 用户名;
2:自定义角色
 
二:对象权限 -- 用户对其他用户的数据对象操作的权限(数据对象是指:数据库里的表,试图,触发器,存储过程等。。)
对象权限有(select、insert、update、delete、all、create index....)
对象给对象赋权:grant select on 表名 to 用户; 赋权后才能对别的表进行操作
(如果是对象权限 想让权限传递 需要加上with grant option)
(如果是系统权限 想让权限传递 需要加上with admin option)
  如果收回了权限 那么传递的权限一概收回。。。。。
 
 收回权限 revoke 权限 on 表 from 用户

 账户锁定: 连续登录次数过多将不能再登录
sql> create profile 文件名 limit
  failed_login_attempts 次数 password_lock_time 时间;(时间为天数)
sql>alter user tea profile 文件名;
 账户解锁:
sql>alter user 用户名 account unlock;

《字符型》
char 定长 最大2000字符 查询效率高 浪费空间 最好 变量多长就定义多长
varchar2 变长 最大4000字符 可节省空间 效率低。
《数字型》
number 范围很大10的-38次方到10的38次方 可表示整数,也可以表示小数
number(5,2)表示总共是5位,有2位小数
number(5)表示一个5位整数范围
《日期类型》
date 包括年月日和时分秒
timestamp 是date的拓展 很精确
《图片类型 也可以存声音 视频》
blob 二进制数据 4G

表空间:存放表的地方。。。
《创建表:》
create table UserInfo(
uid number(4),
uname varchar2(20),
usex char(2),
birthday date,
money number(5,2)
);
《修改表:》
增加一个字段:alter table 表名 add(字段 类型);
修改字段长度:alter table 表名 modify(字段 类型);
删除字段:    alter table 表名 drop column sal;(轻易不要删除字段)
修改表的名字:rename 表名 to stu;
删除表 :      drop table 表名

《增加数据:》
insert into 表名 values('','','','','') 添加日期注意下:格式是“01-3月-2010”《月份必须带汉字》
可以修改格式:alter session set nls_date_format="yyyy-mm-dd" ;(注意 是 临时生效,以后在查询的时候还是需要按oracle的格式进行)
插入null值:insert into 表名('','','',null);
查询空值的时候:select * from 表名 where 条件 is null; 非空的话是is not null;
《修改字段》跟ssqlserver 一样 不解释 修改多个字段 中间用逗号隔开
《删除数据》
delete from 表  ----这样删 表中的所以数据都没了 如果删之前先保存 (Savepoint 别名) oracle可以把他写日志了  可以恢复的 使用回滚命令 (rollback to 别名)
drop table 表名; 删除表结构 和数据
truncate table 表名 删除表中数据 表结构还在 不写日志 速度快 不能恢复

重点《查询数据》
查看表结构:desc 表
取消重复行:select distinct 字段名 from 表名
如果有空值的话 使用nvl(字段,0)来表示
oracle 中也有like操作符
% :表示任意0到多个字符;
_ :表示任意单个字符;

oracle 使用到函数的时候(max min avg等等)
不能直接跟列名一起查询 必须用子查询语句
select name,money from 表名 where money>(select avg(money) from 表名);

java连接oracle
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:localhost:1521:oracle","system","sa");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值