一:
sys 超级用户
system
scott/tiger
===============================================
在cmd里
1、用sys登录;
sqlplus sys/1234@myoracle as sysdba
--查询当前实例名
select instance_name from v$instance;
--查询当前数据库名
select name from v$database;
2、若scott/tiger用户被锁;
alter user scott account unlock;//解锁unlock、上锁lock
conn scott/tiger; //弹出修改密码框,更改scott密码即可
======
忘记密码,修改sys和system用户密码:
----进入sqlplus 进行密码重置----
sqlplus/as sysdba
空
alter user sys identified by 1234; //更改sys的密码为1234
conn sys/1234 as sysdba; //切换到sys
alter user system identified by 1234;//按照此方式更改其余账号的密码
===============================================
1.查看所有用户名称
select username from dba_users;
2.删除用户及用户下的表
drop user 用户名 cascade;
3. 查出用户的session:
SELECT SID, SERIAL# FROM V$SESSION WHERE USERNAME='SCOTT';
4.杀掉用户SCOTT的session:
ALTER SYSTEM KILL SESSION 'SID, SERIAL#';
5.查看当前登录数据库的用户:
SELECT * FROM V$SESSION WHERE TYPE='USER';
6.查看所有用户信息
SELECT * FROM DBA_USERS
7.有时候需要导出某用户下的所有table、view、sequence、trigger等信息,下面的SQL可以将这些信息select出来:
select * from user_tables;
select * from user_views;
select * from user_sequences;
select * from user_triggers;
8.查看当前用户的默认表空间
SQL>select username,default_tablespace from user_users;
9.查看当前用户的角色
SQL>select * from user_role_privs;
10.查看当前用户的系统权限和表级权限
SQL>select * from user_sys_privs;
SQL>select * from user_tab_privs;
11.显示当前会话所具有的权限
SQL>select * from session_privs;
显示指定用户所具有的系统权限
SQL>select * from dba_sys_privs where grantee=’GAME’;
===============================================
二:
表空间
查看表空间
select * form v$tablespace;
查看表空间详细的数据文件
select file_name,tablespace_name from dba_data_files;
创建表空间(创建表空间的时候,指定多个数据文件,以逗号隔开:)
create tablespace 表空间名 datafile '路径+数据文件名1.dbf' size 50m
autoextend on next 10m maxsize unlimited;//数据文件自动扩容,开启自动扩展,一次扩展10m,表空间最大的大小是无限大
查看表空间是否为自动扩展
select tablespace_name,autoextensible from dba_data_files;
alter database datafile '路径+数据文件名' autoextend off;//取消自动扩展
alter database datafile '路径+数据文件名' autoextend on;//开启自动扩展
增加数据文件2
alter tablespace 表空间名 add datafile '路径+数据文件2.dbf' size 50m;
删除表空间,没有删除内部文件
drop tablespace 表空间名;
删除表空间,同时删除内部文件
drop tablespace 表空间名 including contants and datafiles;
===============================================
简化权限管理,引入了角色的概念,角色是具有名称的一组权限的组合
------常用系统预定义角色
1.CONNECT:临时用户
2.RESOURCE:更为可靠和正式的用户
3.DBA:数据库管理员角色,拥有管理数据库的最高权限
创建用户,并授权
一、创建用户的时候指定表空间
create user 新用户 identified by 密码 default tablespace 表空间;//创建用户,并给他指定默认使用的表空间
conn 新用户/密码;//此时连接不了
grant connect,resource to 新用户;//给新用户connect和resource的权限,再conn就可以连接了;
二、给已存在的用户指定表空间
alter user username default tablespace userspace;
===============================================
创建表:=teacher表=======
create table teacher
(tno number(4) not null,
tname varchar2(14) not null,
tid char(18),
gender char(2),
birthdate date);
查看表:
desc teacher;
更改表:
alter table teacher add (sal number(7,2),hiredate date,wechat varchar2(30));
alter table teacher modify(tname varchar2(30));
alter table teacher drop column wechat;
更改列名:
alter table teacher rename column column to xingbie ;
edit,保存之后,/ 执行
增加主键:
alter table teacher add constraint pk_teacher
primary key(tno);
增加唯一约束:
alter table teacher add constraint uk_teacher_tname unique(tname);
增加检查约束:
alter table teacher add constraint ck_teacher_gender
check(gender in ('男','女'));
增加外键约束:
alter table teacher add constraint fk_teacher_deptno_dept foreign key(deptno)
references dept(deptno);
1:先创建一个序列对象
CREATE SEQUENCE sq_num INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE2:插入记录时,在主键上应用序列对象 假设有一个顾客表,有一个主键bh,可以这样做 INSERT INTO customer VALUES( sq_num.NEXTVAL,'张三',........)
CREATE SEQUENCE sq_name --创建序列
[start with n] [increment by n][ maxvalue n|nomaxvalue][cycle|nocycle][cache n|nocache];sq_name.currval -- 当前序号 sq_name.nextval -- 下一个序号 DROP SEQUENCE sq_name; -- 删除序列