首先是安裝Oraclemysql
在安裝中打開了scott的用戶,如下是scott用戶中自帶的表。sql
安裝中注意點:本人實在虛擬機中安裝好,而後將虛擬機看成服務器,因此將ip給固定了。服務器
關鍵的配置路徑:C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN,配置方法略,配置完成後須要重啓服務。oracle
plsql develop的安裝app
安裝路徑不能有空格和中文;函數
配置D:\tool\InstantClient\bin 和D:\tool\InstantClient\bin\oci.dll到plsql中spa
配置環境變量TNS_ADMIN,路徑爲tnsnames.ora的放置路勁code
select * from emp; /* select * from emp where comm is not null; select 7*8 from dual; select sal from emp where sal between 2000 and 4000; select ename from emp where ename like '__O%';--第三個字符是O的 update emp set ename = 'TUR%NET' where ename = 'TURNER'; select * from emp where ename like '%"%%' escape '"';--escape是指下面的那個符號是轉譯符(能夠換成別的符號) select * from emp order by comm desc ; select * from emp order by comm desc nulls last;--排序中的null默認排在首行,這樣能夠要他到最後 select deptno,sal from emp order by deptno asc ,sal desc; */ /* 函數:必需要有返回值; 單行函數:對某一行中的某個值進行處理 數值函數 ceil,floor,round,trunc 字符函數 日期函數 轉換函數 通用函數 多行函數:對某一列的全部行進行處理 max() min count sum avg */ /* --統計員工工資總和 select sum(sal) from emp; --統計員工獎金總和 2200 (直接忽略空值) select sum(comm) from emp; --統計員工人數 14 select count(*) from emp; --統計員工平均獎金 550這裏不忽略空值就會出錯 select avg(comm) from emp; --統計員工的平均獎金 157 select (sum(comm)/count(1)) from emp; --數值函數 select ceil(45.434) from dual;--向上取整 select floor(45.66) from dual;--向下取整 --四捨五入 select round(45.65,1) from dual;--四捨五入 select round (45.65,-1) from dual;--這個是精確到十位數 --截斷 select trunc(45.65,1) from dual; --求餘 select mod(9,2) from dual; --字符函數substr(str1,起始索引,長度) 起始索引無論寫0仍是1 都是從第一個字符開始截取 select substr('abcdef',0,3) from dual; --abc select substr('abcdef',1,3) from dual;--abc --獲取字符串的長度length select length('abcde') from dual;--5 --去除字符左右兩邊的字符trim select trim(' hell o ') from dual;--能夠刪除先後的空格 select floor(-12.5) from dual;---13 select trim ('0' from '00232004100') from dual;--能夠自定義去除 --替換字符串 select replace('hello','l','g') from dual; --日期函數 select sysdate from dual; --查詢3個月後今天的日期 select add_months(sysdate,3) from dual; --查詢3天后的日期 select sysdate + 3 from dual; --查詢員工入職時間 select ceil(sysdate - hiredate) from emp; --查詢員工的週數 select (sysdate - hiredate)/7 from emp; --查詢員工入職的月數 select months_between(sysdate,hiredate) from emp; --轉換函數 數值轉字符 字符轉數值 日期 --字符轉數值to_number(str) --雞肋,基本不會用 select 100+'10' from dual;--默認已經幫咱們轉了 select '10'+100 from dual; select to_char(sal,'$9,999.99') from emp; --日期轉字符 select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual; select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; select to_char(sysdate,'d') from dual;--表明一個星期的第幾天 select to_char(sysdate,'dd') from dual;--表明一個月中的第幾天 select to_char(sysdate,'ddd') from dual;--表明一年中的第幾天 select to_char(sysdate,'day') from dual;--表明星期幾 select to_char(sysdate,'dy') from dual;--表明星期幾縮寫 --字符轉日期 select to_date('2017-04-20','yyyy-mm-dd') from dual; --查詢1981年到1985年入職的員工信息 select * from emp where hiredate between to_date('1981','yyyy') and to_date('1985','yyyy'); */ --通用函數 /* nvl(參數1,參數2) 若是參數1 = null,就返回參數2 nvl2(參數1,參數2,參數3) 若是參數1 = null 就返回參數3 不然返回參數2 nullif(參數1,參數2) 若是參數1 = 參數2 那麼返回null,不然返回1 select nvl(comm,0) from emp; select nullif(5,5) from dual; select coalesce(null,null,3,4,5) from dual;--返回第一個不是null的數 */ /* 條件表達式 case 字段: when 值1 then 值 when 值2 then 值 else 默認值 end case .. when 通用的寫法oracle和mysql均可以使用 oracle 的特有寫法decode(列名,值1,值1.1,值2,值2.1,值3.1) select case ename when 'JONES' then '約翰' when 'WARD' then '劉備' else '路人' end from emp; select decode(ename,'JONES','約翰','WARD','劉備','路人')from emp; */ /* 分組表達式group by select 分組的條件,分組以後的操做 from 表名 group by 分組的條件 having 條件過濾 */ --分組統計全部部分的平均工資,找出平均工資大於2000的部門 select deptno,avg(sal) avgsal from emp group by deptno having avg(sal) > 2000; /* --sql的編寫順序 --select .. from .. where .. group by .. having .. order by --sql的執行順序 --from .. where .. group by .. having .. select .. order by */