数据库分三种:
一:小型数据库
微软的: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");