数据库基本查询语句
select基本查詢語句
使用oracle中scott用戶中的表進行的基本查詢語句
select * from emp;
--列出職位為MANAGER的員工的編號,姓名--
select empno,ename from emp where job = 'MANAGER';
--like模糊查詢我也不懂
SELECT * FROM EMP WHERE ENAME LIKE'%*_%'ESCAPE'*';
--找出獎金高于工資的員工
select * from emp where comm>sal;
--找出每個員工工資和獎金的總和
select sal+comm,ename from emp;
--找出部門10中的經理和部門20中的普通員工
select * from emp where
(deptno = 10 and job = 'MANAGER')or (deptno = 20 and job ='CLERK' );
--找出部門10中既不是經理也不是普通員工,而且工資大于等于2000的員工
select * from emp where
deptno = 10 and job not in('MANAGER','CLERK')and sal >= 2000;
--找出有獎金的員工的不同工作
select distinct job from emp where comm is not null and comm>0;
--找出沒有獎金或者獎金低于500的員工
select * from emp where comm is null or comm<500;
--顯示雇員的姓名,根據其服務年限,將最老的雇員排在前面
select ename from emp order by hiredate;
--upper變成大寫
select Upper('adcde') from dual;
select * from emp where ename = upper('smith');
--lower變成小寫
select lower('ADGDFD') from dual;
--initcap首字母變大寫
select initcap(ename) from emp;
-- concat連接兩個字符
select concat ('a','b')from dual;
select 'a'||'b' from dual;
--substr截取字符串
select substr ('abcde',length('abced')-2) from dual;
--從某位開始截取字符,負值代表末尾開始數,正值代表從首尾開始數
select substr ('abcdef',3) from dual;
--length 獲取某個屬性的長度
select length(ename) from emp;
--replace 替換 將ename列中名字所以后名字中的A換成a
select replace (ename,'A','a')from emp;
--instr 得到指定字符在原有中字符中的位置
select instr('hello world','or')from dual ;
--lpad左側填充(指定的長度內用指定字符填充以后的字符)
select lpad ('sminth',11,'*')from dual
--rpad右側填充
SELECT RPAD('king',13,'*') from dual;
--過濾首尾的空格
SELECT TRIM(' hello world ') from dual
----------------------------------------------------
--數值函數
--round四舍五入
select round(413,-2)from dual;
select round (446,-2)from dual;
select round (450,-2)from dual; --從個位開始向前兩位進行四舍五入
select round (412.313,2)from dual;
select round (421.353,2)from dual; --小數點后保留兩位進行四舍五入
--trunc小數點前兩位四舍五入
select trunc(412.13,-2)from dual;
select trunc (412.131,2)from dual;
--mod取余前面的數除后面數取余
select mod(412.323,3) from dual
select mod(10,3)from dual;
------------------------------------
--日期函數
--month_between()
select Months_between(sysdate,hiredate)from emp;
--add_months()增加指定個月
select add_months(sysdate,1)from dual;
select add_months(sysdate ,-2)from dual;
--next_day接下來的指定某個星期幾的日期
select next_day(sysdate,'星期一') from dual;
select next_day(sysdate,'星期二') from dual;
--last_day當前日期月份的最后一天
select last_day(sysdate) from dual;
------------------------------------------
--轉換函數
--to_char
--獲得當前年份
select to_char(sysdate,'yyyy') from dual;
--以當前格式顯示當前日期
select to_char(sysdate,'fmyyyy-mm-dd')from dual;
select to_char(sysdate,'dd-mm-yyyy') from dual;
select to_char(sysdate,'mm-dd-yyyy')from dual;
select to_char(sal,'l999,999,999')from emp;--返回指定格式的字符
select to_char(sysdate,'D')from dual;--顯示當前日期是本周的第幾天
--to_number
select to_number('13')+to_number('15')from dual;--將兩個字符的相加
select to_char('13')+to_number('15')from dual;
select to_char('3')*to_number('4')from dual;
--to_date指定格式輸出日期
select to_date('20090210','yyyymmdd')from dual;
-----------------------------------
----通用函數
--nvl()
-在指定的屬性列中如果有值就返回本值,如果沒有就返回賦予的值即0,括號內只能寫數字
select nvl(comm,0)from emp;
select nvl(comm,11)from emp;
--nvl2()表達式1和2比較,如果值相同就返回表達式3的值,如果不相等就返回表達式2的值。total返回值得列名
select empno,ename,sal,comm,nvl2(comm,sal+comm,sal)total from emp;
?
轉載于:https://www.cnblogs.com/w7589/p/7162230.html
總結
- 上一篇: C#基于LibUsbDotNet实现US
- 下一篇: 在 Windows 10 中映射网络驱动