sqlplubsw中常用命令.docx
- 文档编号:4153051
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:23
- 大小:745.78KB
sqlplubsw中常用命令.docx
《sqlplubsw中常用命令.docx》由会员分享,可在线阅读,更多相关《sqlplubsw中常用命令.docx(23页珍藏版)》请在冰豆网上搜索。
sqlplubsw中常用命令
@d:
\dome.txt或@d:
dome.txt
如果是dome.sql可以用@d:
dome命令查找
一、在Oracle中常用的命令:
1、设置一行可以显示的长度:
setlinesize长度
2、设置一页可以显示的行数:
setpagesize行数。
3、利用文本调用SQL语句:
把SQL语句写在dome.tex文本中,利用@d:
\dome.txt或@d:
dome.txt调用。
如果把SQL语句写在dome.sql可以使用@dome直接调用。
4、其他用户的连接:
conn用户名/密码assysdba.
5、查找别的用户上的表时要使用”用户名.表名”:
select*fromscoot.emp;
6、查找当前用户:
Showuser可以显示当前的用户。
7、查看当前所有的表:
select*fromtab;
8、显示某个表的具体字段信息:
descemp;
9、输入”/”可以重复执行上一条语句。
10、清空屏幕内容:
clearscr;
11、复制表:
creattable新表名称as(子查询);
createtablemyempasselect*fromemp;
createtablemyempasselect*fromempwheredeptno=10;
12、使用showerror可以用来查看的错误信息。
二、在Oracle中常用的SQL语句:
1、显示所有的表:
select*fromtab;
2、查询信息:
selectempno编号,ename姓名fromemp;
3、利用”||”连接字符串:
select'编号是:
'||empno||',姓名是:
'||enamefromemp;
4、筛选重复的记录:
selectdistinctjopfromemp;(注:
每一列的记录都要重复才可以筛选)
5、查询中可以使用四则运算:
selectename姓名,sal*12年收入fromemp;
6、使用where条件语句:
selectename姓名,sal*12年收入fromempwheresal>2000;
7、Isnull的使用:
select*fromempwherecommisnull;
8、Isnotnull的使用:
select*fromempwheresal>1500andcommisnotnull;
10、查找范围的使用:
select*fromempwheresal>1500andsal<3000;
11、betweeen…and的使用:
select*fromempwheresalbetween1500and3000;(包括等于)
12、查找日期:
select*fromempwherehiredatebetween‘03-8月-81’and‘31-12月-81’;
13、整个条件取反:
select*fromempwherenot(sal>1500andcommisnotnull);
14、查找带条件字符串的:
select*fromempwhereename=’SMITH’;内容区分大小写
15、使用or操作:
select*fromempwhereempno=7369orempno=7499orempno=7251;
16、使用in操作:
select*fromempwhereempnoin(7369,7499,7251);
17、notint的使用:
select*fromempwhereempnonotin(7369,7499,7251);
18、查找范围不在in内也没有关系:
select*fromempwhereenamein(’SMITH’,’dfsffs3r443’);
19、”%”、”_”匹配符的使用:
select*fromempwhereenamelike‘_M%’;(”_”表示一位)
20、like的使用:
select*fromempwherehiredatelike‘%81%’;
21、在条件句中使用”<>”和”!
=”不等于操作:
select*fromempwheresal<>1500;
22、排序的使用格式:
23、默认是升序,设置降序用desc:
select*fromemporderbysaldesc;
24、带有2个排序条件的使用:
select*fromemporderbysaldesc,hiredateasc;
三、函数:
请看SQL语句PTP。
(主要掌握下面函数)
1、TO_CHAR函数用于转换一些数据的格式,如时间格式的转换,货币格式的转换,数字的表达式转换。
如:
范例:
转换时间格式:
TO_CHAR(‘1986-8-3’,’yyyy-mm-dd’);
2、DECODE函数,类似于case语句。
主要用于替代一些信息。
如:
3、NVL函数:
(可以将指定的NULL值变为指定的内容)
范例:
NVL(comm,0)
四、多表查询:
1、加where语句的多表查询:
select*fromempe,deptdwheree.deptno=d.deptno;
2、指定别名的:
selecte.empno雇员编号,e.ename雇员姓名,d.deptno部门号,d.dname
部门名称,d.loc部门位置
fromempe,deptd
wheree.deptno=d.deptno
3、和自身的关联:
selecte.empno雇员编号,e.job工作,m.ename领导姓名
fromempe,empm
wheree.mgr=m.empno
4、三个表关联selecte.empno雇员标号,e.job工作,m.ename领导姓名,d.dname部名称
fromempe,empm,deptd
wheree.mgr=m.empnoande.deptno=d.deptno
5、关联条件是between…and:
(注:
表联合的条件不一定是字段相等)
selecte.empno雇员编号,e.ename雇员姓名,d.dname部门名称,e.sal工作,s.grade工作等级
fromempe,deptd,salgrades
wheree.deptno=d.deptnoande.salbetweens.losalands.hisal;
6、在5的基础上增加:
selecte.empno雇员编号,e.ename雇员姓名,d.dname部门名称,e.sal工作,s.grade工资等级,m.ename领导姓名,ms.grade领导工资等级
fromempe,deptd,salgrades,empm,salgradems
wheree.deptno=d.deptnoande.salbetweens.losalands.hisalande.mgr=m.empnoandm.salbetweenms.losalandms.hisal;
7、使用DECODE()函数:
selecte.empno雇员编号,e.ename雇员姓名,d.dname部门名称,e.sal工作,DECODE(s.grade,1,'第五等工资',2,'第四等工资',3,'第三等工资',4,'第二等工资',5,'第一等工资')工资等级,m.ename领导姓名,DECODE(s.grade,1,'第五等工资',2,'第四等工资',3,'第三等工资',4,'第二等工资',5,'第一等工资')领导工资等级
fromempe,deptd,salgrades,empm,salgradems
wheree.deptno=d.deptnoande.salbetweens.losalands.hisaland
e.mgr=m.empnoandm.salbetweenms.losalandms.hisal;
8、右连接,右边全部列出:
(注意:
当有出现列出所有时经常会用到)
selecte.empno雇员编号,e.ename雇员姓名,d.deptno部门号,d.dname部门名称,d.loc部门位置
fromempe,deptd
wheree.deptno(+)=d.deptno;
9、左连接,左边全部列出:
selecte.empno雇员编号,e.job工作,m.ename领导姓名
fromempe,empm
wheree.mgr=m.empno(+);
五、以下是SQL:
199语法对SQL的支持(了解)
10、
11、
12、
13、
14、
六、组函数及分组统计
1、组函数:
例:
selectcount(empno)fromemp;
selectavg(sal)fromemp
selectmax(sal)fromemp
selectSUM(sal)fromempwheredeptno=20;
2、使用GROUPBY进行分组统计:
selectdeptno部门号,AVG(sal)平均工资
fromemp
groupbydeptno;
3、selectdeptno部门号,COUNT(empno)fromemp;
4、
5、
selectjob,sum(sal)su
fromemp
wherejob<>'SALESMAN'
groupbyjobhavingsum(sal)>5000
orderbysu
6、
七、子查询:
1、
select*fromemp
wheresal>(selectsalfromempwhereempno=7654)
andjob=(selectjobfromempwhereempno=7788);
2、先查出一个临时表并起别名作为子查询:
(注:
当查询的字段比较多,又需要用到分组时,可以将分组查询的结果作为一个子查询)。
要求查询出:
部门名称,部门的员工数,部门的平均工资,部门最低收入雇员的姓名:
selectd.dname,ed.s,ed.a,e.ename
from(selectdeptno,count(empno)s,avg(sal)a,min(sal)m
fromemp
groupbydeptno)ed,deptd,empe
whereed.deptno=d.deptnoande.sal=ed.m
3、三种查询操作符:
IN,ANY,ALL参见笔记。
八、数据库更新操作:
1、复制表:
createtablemyempasselect*fromemp;
2、
注:
数据库的更新操作与SQLServer2000的更新操作基本上一样,详细请看数据库更新操作笔记。
九、事务处理:
1、
十、表的管理:
1、常用的数据类型:
2、表建立的语法:
范例:
创建person表:
);
3、复制表的语法:
范例:
复制表的结构:
creattabletempas(select*fromempwhere1=2);
4、删除表格式:
DROPTABLE表名称;
范例:
DROPTABLEmyemp;
5、表的修改:
(1)、增加一个新的字段格式:
范例:
ALTERTABLEpersonADD(addressVARCHAR(200)DEFAULT‘暂无地址’);
(2)、修改原来字段格式:
范例:
ALTERTABLEpersonMODIFY(nameVARCHAR(20)DEFAULT‘无名氏’);
6、为表重命名:
RENAME旧的表名称TO新的表名称;
范例:
RENAMEpersonTOtperson;
7、截断表:
范例:
TRUNCATETABLEtperson;
十一、约束:
1、约束的分类:
2、主键约束:
(PRIMARYKEY)
范例:
pidVARCHAR2(18)PRIMARYKEY,
以上的约束是属于系统自动分配好的约束名称,也可以通过CONSTRAINT指定一个约束的名字。
范例:
CONSTRAINTperson_pid_pkPRIMARYKEY(pid),
3、非空约束:
(NOTNULL)
4、唯一约束(UNIQUE):
也可以通过CONSTRAINT指定一个约束的名字。
范例:
CONSTRAINTperson_name_ukUNIQUE(name)
5、检查约束(CHECK):
也可以通过CONSTRAINT指定一个约束的名字。
范例:
CONSTRAINTperson_name_ckCHECK(sexIN(‘男’,’女’))
十二、外键约束(FOREIGNKEY)(子表中设置的外键在父表中为主键):
1、创建带约束的表:
2、删除表:
3、强制删除,不管约束,而直接删除,但是这种方法一般不使用:
DROPTABLEpersonCASCADECONSTRAINT;
4、如果希望一个表中的数据在删除时,可以自动删除掉其对应的子表记录,则可以使用级联删除的操作。
范例:
十三、修改约束:
1、为已经建好的表添加约束语法格式:
范例:
ALTERTABLEpersonADDCONSTRAINTperson_age_CKCHECK(ageBETWEEN0AND150);
2、删除约束语法格式:
ALTERTABLE表名称DROPCONSTRAINT约束名称;
范例:
ALTERTABLEpersonDROPCONSTRAINTperson_age_CK;
3、ROWNUM(重点)可以用来分页:
ROWNUM:
表示行号,实际上此是一个列,但是这个是一个伪列,此列可以在每一张表中出现。
而且会与自动编号形式出现。
范例:
在查询雇员表上,加入ROWNUM:
SELECTROWNUMempno,ename,job,salhiredateFROMemp;
4、不能使用whereROWNUMBETWEEN5AND10来取出中间的5条。
5、如果想取出后5条可以使用:
十四、集合操作:
1、集合操作的分类:
范例:
SELECT*FROMempUNIONSEELCT*FROMmyemp;
SELECT*FROMempMINUSSEELCT*FROMmyemp;
小结:
十五、视图:
1、创建视图语法:
CREATVIEW视图名称子查询;
2、查询视图语法:
SELECT*FROM视图名称
范例:
SELECT*FROMempv20;
3.删除视图语法:
DROPVIEW视图名称;
范例:
DROPVIEWempv20;
4、直接修改视图语法:
CREATEORREPLACE视图名称AS子查询;(创建视图时使用)
范例:
5、不能更新视图创建的条件语句:
WITHCHECKOPTION;
此时就不能更新deption字段的数据了。
6、创建视图只读语句:
WITHREADONLY;
此时就不能更新视图了。
十六、系列、同义词:
1、系列的创建格式:
范例:
创建自动增长系列myseq:
CREATESEQUENCEmyseq;
注:
创建自动增长系列最为常用。
2、nextval取得系列的下一个内容;currval取得系列的当前内容:
范例:
INSERTINTOtestseq(next,curr)VALUES(myseq.nextval,myseq.currval);
3、删除系列:
DROPSEQUENCE系列名称;
范例:
DROPSEQUENCEmyseq;
4、创建每次的增长幅度:
CREATESEQUENCE系列名称INCREMENTBY长度;
范例:
CREATESEQUENCEmyseq1INCREMENTBY2;
5、修改起始位置(STARTWITH数字):
范例:
CREATESEQUENCEmyseq1INCREMENTBY2STARTWITH10;
6、循环系列(CACHE数字CYCLE):
范例:
CREATESEQUENCEmyseq1INCREMENTBY2STARTWITH10CACHE3CYCLE;
7、同义词:
(作用:
可以让其他用户通过一个名称方便的访问“用户名.表名称”)
范例:
如果在sys用户下创建了同义词emp,就可以在sys用户下直接通过SELECT*FROMemp来访问scott用户下的emp表了。
十七、用户管理、数据库的备份与恢复(具体看笔记)
1、创建用户语法:
CREATEUSER用户名IDENTIFIEDBY密码;
范例:
CREATEUSERtextIDENTIFIEDBYtext123;
2、授权给用户语法格式:
GRANT授权1,授权2...TO用户;
范例:
GRANTCREATESESSIONTOtest;
3、如果要一次性把多个权限一次性赋予一个用户,可以将这些权限定义陈角色,在Oracle中提供了2个主要的角色:
CONNECT、RESOURCE.赋予给用户。
范例:
GRANTCONNECT,RESOURCETOtest;
4、超级管理员修改用户密码语法格式:
ALTERUSER用户名IDENTIFIEDBY密码;
范例:
ALTERUSERtestIDENTIFIEDBYzgc;
5、超级管理员可以让用户密码失效,使用户第一次登入时可以修改密码语法格式:
ALTERUSER用户名PASSWORDEXPIRE;
范例:
ALTERUSERtestPASSWORDEXPIRE;
6.锁住一个用户语法格式:
ALTERUSSER用户名ACCOUNTLOCK;
范例:
ALTERUSERtestACCOUNTLOCK;
7、解锁一个用户语法格式:
ALTERUSSER用户名ACCOUNTUNLOCK;
范例:
ALTERUSERtestACCOUNTUNLOCK;
8、如果想在访问其他用户的表,则在超级管理员中药授予该用户对此张表的访问权限,语法格式为:
GRANT权限(如:
SELECT,DELETE)ON用户.表名称TO用户;
范例:
GRANTSELECT,DELETEONscott.empTOtest;
9、回收权限语法格式:
REVOKE权限ON用户.表名称FROM用户;
范例:
REVOKESELECT,DELETEONscott.empFROMtest;
10.数据库备份使用:
exp;恢复使用:
imp。
备份步骤:
建一个d:
/data文件夹—>在DOS环境下进入到此文件夹—>输入exp—>输入数据库的用户名和密码—>一直按确定键就可以导出数据了。
恢复数据步骤:
在DOS环境下进入到d:
/data—>输入imp—>输入数据库的用户名和密码—>一直按确定键就可以恢复数据了。
十八、嵌套表、可变数组:
注:
这部分内容只做了解。
具体的看笔记。
十九、数据库设计范式PowerDesigner工具
1、数据库的设计范式和SQLServer2000的一样,具体的可以看笔记。
2、在开发中常用Sybase的PowerDesigner工具开发数据库。
(具体的看笔记)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sqlplubsw 常用命令