oracle笔记

sqlplus 进入数据库:
<1>以超级管理员的身份进行登录
user_name:conn/as sysdba   不是使用的sys用户,他是操作系统认证的只要你是administrator权限用户,不需要密码就可以进。
password:system
<2>
user_name:system as sysdba
password:system

exit ---->退出根目录
cls------->清屏

锁定或者解锁用户:
alter user 用户名 account lock;
alter user 用户名 account unlock;


给连接权限 
grant connect to 用户; 
给资源权限 
grant resource to 用户; 
给DBA权限 
grant dba to 用户;
给角色名给用户:
grant 角色名 to 用户名;
取消角色名:
revoke 角色名 from 用户名;

给用户分配或者取消具体的系统权限:
grant create 对象名 to 用户名;
grant 操作 on 表名 to 用户名;
grant all on 表名 to 用户名;  --将某表的所有权授予某用户
grant execute on 用户名.存储过程名 to


-----------------------
查看所有用户:
SQL> select * from all_users;


--创建表空间
create tablespace tansunftp
logging
datafile 'D:\oracle\product\10.2.0\oradata\tansun\TANSUNFTP.DBF'
size 32m
autoextend on
next 32m maxsize 1024m
extent management local;
--创建用户并指定表空间
create user tansunftp identified by tansunftp
default tablespace tansunftp
temporary tablespace temp;
--给用户授予权限
grant connect,resource,dba to tansunftp;

修改用户密码:
alter user user_name identified by password [default tablespace 表空间名]
修改用户的表空间名:
alter user default tablespace 表空间名
删除用户:
Drop 表空间名 用户名;


修改表空间:
alter tablespace 表空间名  add datafile '路径\*.dbf' size 尺寸;




查询权限可以使用所有的表:
select table_name from all_tables where owner='用户名';

查询当前数据库实例名
方法一:select instance_name from v$instance;
方法二:show parameter instance

查询数据库的SID:
SQL>select instance_name from v$instance; 

删除表中的数据:
TRUNCATE TABLE tableName 

确认你Oracle编码是否可以存储中文
select userenv('language') from dual;

查看Oracle编码:
select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';

AMERICAN_AMERICA.WE8MSWIN1252

修改字符集:
 --修改oracle数据库字符集:(在SQL Plus中)
    sql> conn / as sysdba;
  sql> shutdown immediate;
    sql> startup mount;
    sql> alter system enable restricted session;
    sql> alter system set job_queue_processes=0;
    sql> alter system set aq_tm_processes=0;
    sql> alter database open;
   sql> alter database character set internal_use AL32UTF8;
  sql> shutdown immediate;
    sql> startup;
  
ZHS16GBK支持中文
	

创建用户:
create user db_xm identified by db_xm
grant dba to db_xm;

Oracle语法:
动态执行SQL语句 execute immediate 'sql statement';
Oracle的输入和输出必须加上begin和end才可以,end之后必须加入分号(;)

增加列
alter table table_name add column_name(...)
修改列名
alter table table_name column old_column_name rename to new_column_name;
删除列
alter table table_name drop column  column_name;
修改列的默认值:
alter table table_name modify(列名 约束 ...)
修改
alter table table_name rename to new_name;
更新命令:
update 表名 set 列名=值,。。。 where 条件
——————查询资料
修改表中的列的字段类型
alter table table_name modify 字段名 字段类型 ;
根据已有的表创建新表:
SQL Server中:
select *  into new_table from oldtable where 1=0 
Oracle 和 mysql中:
create table newtable as select * from oldtable where 1=0 



事务:事务具有原子性,是最小的工作单元
一个事务可以有多条SQL语句,如果一个执行不成功,则整个事务执行不成功。
用于事务控制的语句:
commit - 提交并结束事务处理
rollback -撤销事务中已完成的工作
savepoint-回滚点,事务中可以回滚的点

数据控制语言(DCL)
事务控制语句(TCL)
数据库操纵语言(DML)
数据定义语言(DDL)

SQL操作符中:集合操作符:union   union all  intersect   minus
———————查询资料

操作符的优先级:
1、算术操作符
2、连接操作符
3、比较操作符
4、not > and > or


SQL函数——————查询资料

约束(table_name表示你的表名)
1、添加外键约束:
alter table table_name  add constraint 约束名 foreign key(列名) references 另一个表名(列名)
2、删除约束:
alter table table_name drop constraint 约束名;
3、移走主键约束:——————查询资料
alter table table_name drop primary key cascade ;
4、禁用约束或者启用约束:
alter table table_name disable(或者enable) constraint 约束名 ;
5、查询约束信息:
select * from user_constraints where table_name='表名' ;


序列:——————查询资料
create sequence  ;————创建简章序列,默认从1开始,每次增长1
create table mytab(
id number ,
name varchar2(10)
)
使用方法:
insert into mytab(myseq.nextval,'tom');
insert into mytab(myseq.nextval,'jack')
创建序列举例:
create sequence 序列名
increment by 5 --每次增长多少
start with 0 --从**开始
maxvalue 50 
minvalue -50;

同义词:————查询资料
create  synonym name for 表名; --给表创建同义词 
create public synonym name for 表名;————任何用户都可以访问、

你可能感兴趣的:(oracle)