oracle的常用的命令符Word格式文档下载.docx
《oracle的常用的命令符Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《oracle的常用的命令符Word格式文档下载.docx(74页珍藏版)》请在冰豆网上搜索。
connassysdba
sys
tsinghua
sqlplus"
sys/tsinghuaassysdba"
connsys/zlassysdba
修改表结构
altertabletestmodify(namenotnull);
altertabletestadd(namevarchar2(20));
altertabletestdropcolumnsex;
altertabletestsetunusedcolumnsex;
altertabletestdropunusedcolumns;
更改用户密码
sql>
alteruser管理员identifiedby密码;
创建表空间的数据文件
createtablespacetestdatafile'
d:
\oracle\binbo.dbf'
size10m;
创建用户
createuser用户名identifiedby用户名;
bfile类型实例
创建目录
createdirectorytnpdiras'
c:
\'
;
删除目录
dropdirectorytnpdir
授权
crantreadondirectorytnpdirtoscott;
建表
createtablebfiletest(idnumber(3),fnamebfile);
添加数据
insertintobfiletestvalues(1,bfilename('
TMPDIR'
'
tmptest.java'
));
查看用户
showuser
检查语句是否有错
showerror
锁定用户
alteruser用户名accountlock
解除用户
alteruser用户名accountunlock
删除用户
dropuserzl;
给用户创建表权限
grantcreatetableto用户名;
授管理员权限
grantdbato用户名;
给用户登录权限
grantconnectto用户名
给用户无限表空间权限
grantunlinmitedtablespaceto用户名;
收回权限
revokedbafrom用户名;
查看用户下所有的表
select*fromuser_tables;
查看名称包含log字符的表
selectobject_name,object_idfromuser_objects
whereinstr(object_name,'
LOG'
)>
0;
查看某表的创建时间
selectobject_name,createdfromuser_objectswhereobject_name=upper('
&
table_name'
);
查看某表的大小
selectsum(bytes)/(1024*1024)as"
size(M)"
fromuser_segments
wheresegment_name=upper('
查看放在ORACLE的内存区里的表
selecttable_name,cachefromuser_tableswhereinstr(cache,'
Y'
再添加一个表空间的数据文件
altertablespacetestadddatafile'
\oracle\test1.dbf'
建表SQL>
createtablestuden(stunoint,stunamevarchar(8)notnull,stubirthdatedefaultto_date('
1987-5-9'
YYYY-MM-DD'
向表结构中加入一列SQL>
altertablestudenadd(stuphotovarchar(9));
从表结构中删除一列SQL>
altertablestudendropcolumnstuphoto;
修改表一列的长度SQL>
altertablestudenmodify(stunonumber(4));
隐藏将要删除的一列SQL>
altertablestudensetunusedcolumnstuphoto;
删除隐藏的列SQL>
altertablestudendropunusedcolumns;
向表中加入约束SQL>
altertablestudenaddconstraintpkprimarykey(stuno);
删除约束SQL>
altertablestudendropconstraintpk;
创建表
createtable用户名(namevarchar2(20),passwordvarchar(20))tablespace空间名;
添加字段
altertabletestadd(column_xchar(10)notnull);
更改字段
altertableempmodify(column_xchar(20));
删除字段
如待删除域属于某个索引,则不允许删除操作,必须将此域先设置为NULL。
altertableempmodify(column_xnull);
updateempsetcolumn_x=null;
commit;
altertableempdrop(column_x);
选择表空间
alteruser用户名defaulttablespacetest;
管理员删除别的用户中的表
droptable用户名.表名;
退出
exit;
默认进入
/assysdba"
查看数据库
showparameterblock;
写大量语句用记事本,新建方式。
输入"
ed"
回车
保存后
/"
运行;
查询用户有多少表
select*fromtab;
SQLServer取时间
selectgetdate
oracle取时间
sysdate;
操作表结构数据库定义语言命令
(不记录在日志文件中)
createtable建表
createtabletest(namevarchar2(20),agedate,sexchar
(2));
insertintotest(name,age,sex)values('
aa'
sysdate,'
男'
bb'
to_date('
1888-8-8'
"
yyyy-aa-ddhh24:
mi:
ss"
),'
select*fromtest;
查询男和女总数
selectsex,count(sex)fromtestgroupbysex;
---------------------------------------------------------------
test表中数据输入test1表中
SQLSserver---select*intotest1fromtest;
oracle---createtabletest1asselect*fromtest;
更改会话时间
altersessionsetnls_date_format='
yyyy-mm-ddhh24:
ss'
showparameterblock表和视图
showparameterdate查数据结构
SQLServer中
--删除表中相同数据
createtabletest1asselectdistinct*fromtest;
--删除表数据
truncatetabletest;
--把test中数据输入到test1中
insertintotest(select*fromtest1);
rowid(表中存储地址相当表id)和rownum(表序号)称伪列(用法)
selectname,age,sex,rowid,rownumfromtest1;
查出前三行
select*fromtestwhererownum<
=3;
查出后三行
select*from(selectnamen,agea,sexs,rownumrfromtest)wherer>
(selectcount(*)fromtest)-3;
删除后三行
deletefromtestwherenamenotin(selectnamefromtestwhererownum<
=(selectcount(*)fromtest)-3);
删除相同行
deletefromtestwhererowidnotin(selectmax(rowid)fromtestgroupbyname,age,sex);
删除所有表
select'
droptable'
||tname||'
:
'
fromtab;
spoolc:
\test.sql;
spooloff
@c:
altertable修改表
truncatetable节段表(只删除数据)
droptable删除表
查看表结构
desc表名;
查出成绩的前三名
select*from(select*fromstuorderbyscoredesc)whererownum<
更改字符集
startupmount
altersystemenablerestrictedsession;
altersystemsetjob_queue_processes=0;
alterdatabaseopen;
alterdatabasecharactersetZHS16GBK;
shutdown
startup
将一张表或几张表中的域重新组合后插入新表。
假定原先的两张表为emp,work,现选择部分数据域合并为emp_work
建立emp_work
insertintoemp_newselecta.no,sysdate,a.name,b.service_durationfromempa,workbwherea.no=b.no;
这样的方式仍然要使用回滚段,为加快数据迁移速度,可将insert替换成insert/*+APPEND*/(大小写不论),指示oracle以直通方式直接写数据文件,绕过回滚空间。
insert/*+APPEND*/intoemp_newselecta.no,sysdate,a.name,b.service_durationfromempa,workbwherea.no=b.no;
DDL数据定义语言(create,alter,drop)
DML数据操纵语言(insert,select,delete,update)
TCL事务控制语言(commit,savepoint,rollback)
DCL数据控制语言(GRANTREVOKE)
一个表中的某一列输到另一个表中
insertintostu1(name)(selectnamefromstu);
事务
rollback;
提交
COMMIT-提交并结束事务处理
ROLLBACK-撤销事务中已完成的工作
SAVEPOINT–标记事务中可以回滚的点
updateorder_mastersetdel_date='
30-8月-05'
Whereorderno<
='
o002'
savepointmark1;
deleteFROMorder_masterWhereorderno='
savepointmark2;
rollbackTOSAVEPOINTmark1;
COMMIT;
换名
setsqlprompt"
scott>
"
GRANT授予权限
GRANTSele