您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > win7下安装oracle(修改oracle的配置文件)
SQL(StructuredQueryLanguage)结构化查询语言第一课:客户端1.SqlPlus(客户端),命令行直接输入:sqlplus,然后按提示输入用户名,密码。2.从开始程序运行:sqlplus,是图形版的sqlplus.3.、oracle11gR2已经不支持图形版Toad:管理,PlSqlDeveloper:三个默认用户:syssystemDonglin2000scotttiger将外面共享的文件夹共享到tool目录下mount–tcifss–ousername=administrator//192.168.1.32文件夹名称toolOracle11g中必须开启的服务:OracleServiceORCLMysql中查询某个表的创建语句showcreatetabledepartment;Mysql中查看表结构showcreatetableuser;只有InnoDB结构的表才支持事务等的处理。查询数据库支持的引擎:showengines;mysql中创建一个utf-8编码的数据库CREATEDATABASE`ssh2`CHARACTERSET'utf8'COLLATE'utf8_general_ci';第二课:更改用户1.sqlplus/assysdba用默认的sys用户登录sqlplussys/Donglin2000assysdba;在sql命令行里用sys登陆2.alteruserscottaccountunlock;(解锁)更改登录用户:SQLalteruserlisiidentifiedbylisi;第三课:tablestructure1.描述某一张表:desc表名2.select*from表名2.查看用户所有表select*fromuser_all_tables第四课:select语句:1.计算数据可以用空表:比如:select2*3fromdual2.selectename,sal*12annual_salfromemp;与selectename,sal*12annualsalfromemp;区别,加双引号保持原大小写。不加全变大写。3.selectename||‘abcd’如果连接字符串中含有单引号,用两个单引号代替一个单引号。第五课:distinct——完全不同的;清晰的selectdeptnofromemp;selectdistinctdeptnofromemp;selectdistinctdeptnojobfromemp去掉deptno,job两者组合的重复。更多的项,就是这么多项的组合的不重复组合。第六课:Whereselect*fromempwheredeptno=10;select*fromempwheredeptno10;不等于10select*fromempwhereename='bike';selectename,salfromempwheresalbetween800and1500(=800and=1500)空值处理:selectename,sal,commfromempwherecommis(not)null;selectename,sal,commfromempwhereename(not)in('SMITH','KING','abc');字段名区分大小写selectenamefromempwhereenamelike'_A%';_代表一个字母,%代表0个或多个字母.如果ename里含有特殊字符如%,则应使用转义字符selectename,salfromempwhereenamelike‘%\%%’;也可自己制定转义字符selectename,salfromempwhereenamelike‘%$%%’escape‘$’;第七课:orderbyselect*fromdept;select*fromdeptorderbydeptdesc;(默认:asc)desc为倒序排列selectename,sal,deptnofromemporderbydeptnoasc,enamedesc;第八课:sqlfunction1:selectename,sal*12annual_salfromempwhereenamenotlike'_A%'andsal800orderbysaldesc;selectlower(ename)fromemp;selectenamefromempwherelower(ename)like'_a%';等同于selectenamefromempwhereenamelike'_a%'orenamelike'_A%';selectsubstr(ename,2,3)fromemp;从第二字符截,一共截三个字符.selectchr(65)fromdual结果为:Aselectascii('a')fromdual结果为:97–A:65selectround(23.652,1)fromdual;结果为:23.7--从小数点后1位开始近似selectround(23.652,-1)fromdual;20--从小数点后-1位开始近似selectto_char(sal,'$99,999.999')fromemp;--格式化日期或数字为一个固定格式的字符串selectto_char(sal,'L99,999.999')fromemp;人民币符号,L:代表本地符号这个需要掌握牢:selecthiredatefromemp;显示为:HIREDATE----------------17-12月-80----------------改为:selectto_char(hiredate,'YYYY-MM-DDHH:MI:SS')fromemp;显示:BIRTHDATE-------------------1980-12-1712:00:00-------------------selectto_char(sysdate,'YYYY-MM-DDHH24:MI:SS')fromdual;//也可以改为:HH12-------------------2007-02-2514:46:14to_date函数:字符串转为日期笨法:Selectename,sal,hiredatefromempwherehiredate‘20-2月–81’;selectename,hiredatefromempwherehiredateto_date('1981-2-2012:34:56','YYYY-MM-DDHH24:MI:SS');如果直接写birthdate'1981-2-2012:34:56'会出现格式不匹配,因为表中的格式为:DD-MM月-YY.to_number字符串转为数字selectsalfromempwheresal888.88无错.但selectsalfromempwheresal$1,250,00;会出现无效字符错误.改为:selectsalfromempwheresalto_number('$1,250.00','$9,999.99');nvl把空值改为0selectename,sal*12+nvl(comm,0)fromemp;这样可以防止comm为空时,sal*12相加也为空的情况.第九课:Groupfunction组函数max,min,avg,sum,count求出表中记录的条数selectto_char(avg(sal),'99999999,99')fromemp;selectround(avg(sal),2)fromemp;结果:2073.21selectcount(*)fromempwheredeptno=10;selectcount(ename)fromempwheredeptno=10;count某个字段,如果这个字段不为空就算一个selectcount(distinctdeptno)fromemp;selectsum(sal)fromemp;第十课:Groupby语句需求:现在想求,求每个部门的平均薪水.selectavg(sal)fromempgroupbydeptno;selectdeptnoavg(sal)fromempgroupbydeptno;selectdeptno,job,max(sal)fromempgroupbydeptno,job;求薪水值最高的人的名字.selectename,max(sal)fromemp;出错,因为max只有一个值,但等于max值的人可能好几个,不能匹配.应如下求:selectenamefromempwheresal=(selectmax(sal)fromemp);Groupby语句应注意,出现在select中的字段,如果没出现在组函数中,必须出现在Groupby语句中.第十一课:Having对分组结果筛选Where是对单条纪录进行筛选,Having是对分组结果进行筛选.selectavg(sal),deptnofromempgroupbydeptnohavingavg(sal)2000;查询平均工资,薪水大于1200,按部门编号进行分组,分组后平均薪水大于1500,按工薪倒充排列.selectavg(sal)fromempwheresal1200groupbydeptnohavingavg(sal)1500orderbyavg(sal)desc;执行顺序:Select*fromemp—wheresal1000—groupbydeptno—having…—orderby…第十三课:子查询谁挣的钱最多(谁:这个人的名字,钱最多)select语句中嵌套select语句,可以在where,from后.问那些人工资,在平均工资之上.selectename,salfromempwheresal(selectavg(sal)fromemp);查找每个部门挣钱最多的那个人的名字.selectename,deptnofromempwheresalin(selectmax(sal)fromempgroupbydeptno)查询会多值.部门之间的最高薪水会混淆(例如30部门的最高薪水=20部门某个人的薪水,它会查出各个部门中薪水等于某个最高薪水的人)应该如下:把selectmax(sal),deptnofromempgroupbydeptno;当成一个表.语句如下:selectename,salfromempjoin(selectmax(sal)max_sal,deptnofromempgroupbydeptno)ton(emp.sal=t.max_salandemp.deptno=t.deptno);——表的连接每个部门的平均薪水的等级.分析:首先求平均薪水(当成表),把平均薪水和另外一张表连接.selectgrade,deptnofromsalgradejoin(selectavg(sal)avg_sal,deptnofromempgroupbydeptno)ton(t.avg_salbetweensalgrade.losalandsalgrade.hisal)第十四课:self_table_connection自连接把某个人的名字以及他的经理人的名字求出来(经理人及这个人在表中同处一行)分析:首先求出这个人的名字,取他的编号,然后从另一张表与其相对应编号,然后找到经理的名字.selecte1.ename,e2.enamefromempe1,empe2wheree1.mgr=e2.empno;e1、e2的约束条件empno编号和MGR都是编号。第15课:SQL1999_table_connectionsselectename,dname,gradefromempe,deptd,salgradeswheree.deptno=d.deptnoande.salbetweens.losalands.hisalandjob'CLERK';有没有办法把
本文标题:win7下安装oracle(修改oracle的配置文件)
链接地址:https://www.777doc.com/doc-3390083 .html