Oracle数据库命令操作

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Oracle数据库命令操作1,查看oracle版本:select*fromv$version2,重新进行数据库连接CONNECTSCOTT/TIGER@MYDBSCOTT登陆名TIGER口令MYDB称为网络服务名或称为连接字符串3,关闭或退出SQL*PlusEXIT”或“QUIT”命令4,查看SQL*Plus的环境参数。通过SHOWALL命令可以查看设置命令的格式为:SET参数[ON|OFF|值]5,设置输出页面的大小。步骤1:输入并执行以下命令,观察显示结果:SELECT*FROMemp;步骤2:在输入区输入并执行以下命令:SETPAGESIZE100SETLINESIZE120或SETPAGESIZE100LINESIZE120步骤3:重新输入并执行以下命令,观察显示结果:SELECT*FROMemp;6,显示当前用户,输入并执行命令:SHOWUSER执行结果是:USER为SCOTT7,使用SPOOL命令记录操作内容。步骤1:执行命令:SPOOLC:\TEST步骤2:执行命令:SELECT*FROMemp;步骤3:执行命令:SELECT*FROMdept;步骤4:执行命令:SPOOLOFF步骤5:用记事本打开C:\TEST.LST并查看内容:8,打开/关闭查询结果表头的显示,默认为ON。Setheadingon/off:打开/关闭查询结果表头的显示,默认为ON。Setfeedbackon/off:打开/关闭查询结果中返回行数的显示,默认为ON。Setechoon/off:打开/关闭命令的回显,默认为ON。Settimeon/off:打开/关闭时间显示,默认为OFF。9,使用DESCRIBE命令查看表结构DESCRIBE(可简写成DESC)来检查表的结构信息。输入并执行以下命令(emp为要显示结构的表名):DESCRIBEemp10,注释的方法是:*在一行的开头处书写REM,将一行注释掉。*在一行中插入“--”,将其后的内容注释掉。*使用/*......*/,可以用来注释任何一段内容。11,保存输入区的内容。步骤1:在输入区重新输入命令:SELECT*FROMemp;SELECT*FROMdept;步骤2:选择“文件”菜单下的“将输入另存为”命令,弹出文件存盘对话框。选择正确的磁盘位置,为存盘的文件起一个名字。如果输入区中的内容是SQL命令或命令序列,则使用扩展名.SQL;否则可以省略或以.TXT做扩展名。在本例中,选SELECT.SQL做文件名。12,创建新用户USER1,口令为ABC123CREATEUSERUSER1IDENTIFIEDBYABC123(createuseruser1identifiedbyabc123)授予连接数据库权限、创建表权限、创建存储过程和表空间使用权限。GRANTCONNECTTOUSER1;(grantconnecttouser1)GRANTCREATETABLETOUSER1;(grantcreatetabletouser1)GRANTCREATEPROCEDURETOUSER1;(grantcreateproceduretouser1)GRANTUNLIMITEDTABLESAPCETOUSER1;(grantunlimitedtablesapcetouser1)使用新账户登录。CONNECTUSER1/ABC123@MYDB输出结果:已连接。步骤5:以创建表的方式复制数据到新账户。CREATETABLEEMPASSELECT*FROMSCOTT.EMP;(createtableempasselect*fromscott.emp)CREATETABLEDEPTASSELECT*FROMSCOTT.DEPT;CREATETABLESALGRADESASSELECT*FROMSCOTT.SALGRADE;13,每个账户对应一个模式(账户.表)以不同的账户登录数据库时,就进入了不同的模式SELECT*FROMSCOTT.EMP;14,显示表的行号输入并执行查询:SELECTrownum,enameFROMemp;15,查询语句中的加减乘除运算加(+)、减(-)、乘(*)、除(/)显示雇员工资上浮20%的结果。输入并执行查询:SELECTename,sal,sal*(1+20/100)FROMemp;显示结果为:ENAMESALSAL*(1+20/100)---------------------------------------------------SMITH800960ALLEN1600192016,在查询中使用列别名。输入并执行:SELECTenameAS名称,sal工资FROMemp;显示结果为:名称工资---------------------------------SMITH800ALLEN160017,在查询中使用字符串常量。输入并执行查询:SELECTename||'IS'||jobAS雇员和职务表FROMemp;输出结果为:雇员和职务表-----------------------SMITHISCLERKALLENISSALESMAN18,消除重复行显示。使用DISTINCT输入并执行查询:SELECTDISTINCTjobFROMemp;19,升序排序【训练1】查询雇员姓名和工资,并按工资从小到大排序。输入并执行查询:SELECTename,salFROMempORDERBYsal;执行结果为:ENAMESAL---------------------------------SMITH800JAMES950注意:若省略ASC和DESC,则默认为ASC,即升序排序。降序排序?【训练2】查询雇员姓名和雇佣日期,并按雇佣日期排序,后雇佣的先显示。输入并执行查询:SELECTename,hiredateFROMempORDERBYhiredateDESC;结果如下:ENAMEHIREDATE------------------------------------ADAMS23-5月-87SCOTT19-4月-87多列排序SELECTename,deptno,hiredateFROMempORDERBYdeptno,hiredate;在排序中使用别名SELECTempno,ename,sal*Months_between(sysdate,hiredate)AStotalFROMempORDERBYtotal;20,条件查询SELECTename,job,salFROMempWHEREjob='SALESMAN';SELECTename,job,salFROMempWHEREsal=3000;SELECTename,hiredateFROMempWHEREhiredate='1-1月-82';SELECTename,job,salFROMempWHEREsal1000ANDsal2000;SELECT*FROMempWHEREjob='CLERK'ORjob='MANAGER';SELECT*FROMempWHERENOTdeptno=10;SELECT*FROMempWHERE(deptno=10ORdeptno=20)ANDsal1500;显示工资在1000~2000之间的雇员信息。输入并执行查询:SELECT*FROMempWHEREsalBETWEEN1000AND2000;21,IN条件查询使用显示职务为“SALESMAN',“CLERK”和“MANAGER”的雇员信息。(in前可以加not)输入并执行查询:SELECT*FROMempWHEREjobIN('SALESMAN','CLERK','MANAGER');运算功能实例[NOT]BETWEEN…AND…用于测试是否在范围内Select*fromempWheresalbetween1000and2000[NOT]IN(…)用于测试是否在列表中Select*fromempWherejobin('CLERK','SALESMAN','ANYLYST')[NOT]LIKE用于进行模式匹配Select*fromempWhereenamelike'%A%'IS[NOT]NULL用于测试是否为空值Select*fromempWherecommisnotnullANYSOME同列表或查询中的每一个值进行比较,测试是否有一个满足,前面必须使用的运算符包括=、!=、=、=、、等Select*fromempWheresalany(selectsalfromempwheredeptno=10)ALL同列表或查询中的每一个值进行比较,测试是否所有的值都满足,前面必须使用的运算符包括=、!=、=、=、、等Select*fromempWheresalall(1000,1500,2000)[NOT]EXISTS测试是否子查询至少返回一行Select'存在雇员SCOTT'fromdualwhereexists(select*fromempwhereename='SCOTT');22,LIKE模糊查询显示姓名以“S”开头的雇员信息如下(%:代表0个或多个任意字符。_:代表一个任意字符。)输入并执行查询:SELECT*FROMempWHEREenameLIKE'S%';显示经理编号没有填写的雇员(判断空值NULL)(也可ISnotNULL)输入并执行查询:SELECTename,mgrFROMempWHEREmgrISNULL;22,函数列表使用求绝对值函数abs。SELECTabs(-5)FROMdual;使用四舍五入函数round。SELECTround(45.923,2),round(45.923,0),round(45.923,-1)FROMdual;使用求余数函数mod。SELECTmod(1600,300)FROMdual;23,字符函数函数功能实例结果abs求绝对值函数abs(−5)5sqrt求平方根函数sqrt(2)1.41421356power求幂函数power(2,3)8cos求余弦三角函数cos(3.14159)−1mod求除法余数mod(1600,300)100ceil求大于等于某数的最小整数ceil(2.35)3floor求小于等于某数的最大整数floor(2.35)2round按指定精度对十进制数四舍五入round(45.923,1)round(45.923,0)round(45.923,−1)45.94650trunc按指定精度截断十进制数trunc(45.923,1)trunc(45.923)trunc(45.923,−1)45.94540函数名称功能实例结果ascii获得字符的ASCII码Ascii('A')65chr返回与ASCII码相应的字符Chr(65)Alower将字符串转换成小写lower('SQLCourse')sqlcourseupper将字符串转换成大写upper('SQLCourse')SQLCOURSEinitcap将字符串转换成每个单词以大写开头initcap('SQLcourse')SqlCourseconcat连接两个字符串concat('SQL','Course')SQLCoursesubstr给出起始位置和长度,返回子字符串substr('String',1,3)Strlength求字符串的长度length('Wellcom')7instr给出起始位置和出现的次数,求子字符串在字符串中出现的位置instr('String','r',1,1)3lpad用字符填充字符串左侧到指定长度lpad('Hi',10,'-')--------Hirpad用字符填充字符串右侧到指定长度rpad('Hi',10,'-')Hi--------trim在一个字符串中去除另一个字符串trim('S'FROM'SSMITH')MITHreplace用一个字符串替换另一个字符串中的子字符串replace('ABC','B','D')ADC如果不知道表的字段内容是大写还

1 / 73
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功