创建数据库:
查看当前用户的所有表:
select * from tab;
切换用户:
create user kfc identified by a123`
语法:
Conn 用户名/密码 as 角色[sysdba sysoper normal]
Conn system/manager; //使用system用户登录
Conn sys/change_on_install as sysdba/sysoper; //使用超级管理员sys登录时必须跟上角色
查询scott用户自己的emp表:
Select * from emp;
其他用户如果想要查询scott的表则使用:
Select * from scott.emp //查询scott用户的emp表
角色权限管理
创建数据库用户:
create user kfc identified by a123`
Create user 用户名(自定义) identified by 密码;--确保使用数据库管理员登录上去[as sysdba | sysoper]
创建完成后需要授权,否则无法登录[登录被拒绝]
权限:系统权限[对数据库的操作] 对象权限[数据表 视图等]
角色:系统角色 对象角色
语法:grant 角色 to 用户
grant connect to kk
角色 | 作用 |
---|---|
connect | 仅允许连接上来 |
DBA | 系统管理员权限最大 |
Resource | 允许创表,视图等对象的操作 |
具体操作:
权限名: 增insert 删delete 改update 查select 所有all
授权
语法:Grant 权限 on 表名 to 用户
grant select,insert on scott.users to kk
收回权限
语法:Revoke 权限 on 表名 from 用户
数据库表设置
数据量过大 可以进行如下设置:
Set linesize 200; //设置行宽
Set pagesize 20; //设置每一页显示的数据量
Java连接oracle
//jdbc:oracle:thin:@地址:端口:数据库名称
String url="jdbc:oracle:thin:@localhost:1521:oracl";//注意需要导入oraclejar包
Class.forName("oracle.jdbc.driver.OracleDriver");
//odbc方式
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//jdbc:odbc:数据源名称
String url="jdbc:odbc:mycon";
Connection con=DriverManager.getConnection(url,"scott","tiger");
在oracle中创建自增序列: sequence
从序列中查看下一个值: select 序列名称.nextval from 表名 (dual)
从序列中查看当前值: select 序列名称.currval from 表名
**序列一旦显示出来,该数字作废,例如:查出来的是2,则在插入进表中时,则是下一个数2
用代码创建自增序列
Create sequence 序列名称
Increment by 整数值 //每次的增量
Start with 整数值 //起始值
Nomaxvalue //没有上限
手工创建
Oracle中的数据类型
类型 | 名字 |
---|---|
数字类型 | number(可以被int所替代) |
整数 | number(n) /number(n,m) n表示总长度,m表示小数位) |
字符串类型 | varchar2(n) 可以被varchar(n)所替代 |
日期类型 | date |
大文本类型 | clob(可以存储4G的文本内容) |
二进制类型 | blob(可以存储视频 图片 音频等二进制文件) |
创建约束
oracle中的约束 除了默认值约束和其他数据库不一样,其他约束均和其他数据库一致
基本格式
Alter table 表名 add constraint 约束名称 约束关键字 表达式
主键约束
alter table 表名 add constraint 约束名城 primary key(列名)
唯一键约束
alter table 表名 add constraint 约束名称 unique(列名)
默认值约束
alter table 表名 modify (列名 数据类型 default 默认值)
alter table stuinfo modify (sex varchar2(2) default '男');
alter table users add constraint ck_name check(length(username) between 2 and 4)
alter table stuinfo add constraint ck_sex check (sex in (‘男’,’女’));
外键约束
alter table 外键表名 add constraint 约束名称 foreign key(外键列) references 主键表名(主键列)
删除约束
alter table 表名 drop constraint 约束名称
多表联合查询:
Select 字段列表 from 表A,表B where 表A.主键=表B.外键
select s.sname 姓名,s.sex,s.age,c.exam from stuinfo s,chengji c where s.id=c.sid