ORACLE:
目前分为12C(cloud云)和11G(grid网格)版本
--数据库基本概念 data--数据 database--数据库 DBMS--数据库管理系统 RDBMS--关系型数据库管理系统 ORDBMS--对象关系型数据库管理系统 --SQL概述 SQL(Structured query language)结构化查询语言 --SQL 分类 SELECT --数据库查询语句DQL INSERT DELETE UPDATE MERGE--数据库操作语句DML CREATE ALTER DROP TRUNCATE RENAME COMMENT--数据库定义语句DDL COMMIT ROLLBACK SAVEPOINT--事物控制语句TCL --OracloraDb11g_home1INSListener这个是网络监听器的服务,开始才能通过外部访问。 --OrcalService ORCL:数据库实例服务 --比较运算符: >,>=,<,<=,=,<>,!=,^= --特殊运算符:[not]between...end [not] like [not] in is [not] null --多条件使用:and or not 连接 /*--单行函数练习 查询与表无关 FROM 后面是 dual*/ --转小写,大写,单词首字母大写 select lower('Hello'),upper('Hello'),initcap('Hello evan') from dual; -------------------------------------------字符串 --去掉指定字符(去全部,去左边字符,去右边字符) select TRIM('H'FROM 'HELLOHH'), ltrim('helloh','h'), rtrim('helloh','h') FROM dual; --补齐(参数解释:数值,几位数,不够用什么补)输出:*100和100* select lpad(100,4,'*'),rpad(100,4,'*') from dual; --查找位置,相当于indexOf,ORCALE的索引从1开始返回7 select instr('hello tom','tom') from dual; --substr()//返回llo,ll select substr('hello',3), substr('hello', 3, 2) from dual; --连接字符,和求长度 select concat('hello','evan'),length('abc') from dual; --替换 select replace('hello','h','a') from dual; --------------------------------------------number --四舍五入[小数点后保留几位小数][小数点前保留几位] select round(123.456,2),round(123.456,-2),round(123.45,0), round(123.45) from dual; --去尾数 不进行四舍五入 select trunc(12.456,2),trunc(12.456,-2),trunc(12.456,0),trunc(12.456) from dual; --取模(求余数) select mod(13,2) from dual; ----------------------------------------date --获取当前日期 +2代表加两天或者-2 select sysdate +2 from dual; --加月份 select add_months(sysdate,3) from dual; --月份范围 select months_between(sysdate, hiredate)from emp; --获取当前月份的最后一天 select last_day(sysdate)from dual; --获取年月日year,month,day select extract(day from sysdate) FROM dual; --计算天数差 select round(to_number(TO_DATE('2015-07-24','YYYY-MM-DD')-TO_DATE('2015-07-23','YYYY-MM-DD')))from dual; --计算小时差 select round(to_number(TO_DATE('2015-07-24','YYYY-MM-DD')-TO_DATE('2015-07-23','YYYY-MM-DD'))*24)from dual; ------------------------------------转换函数 --to_char:将日期或数值按指定格式转换成字符 select to_char(sysdate,'yyyy-mm-dd HH24:MI:ss DAY')from dual;--hh:mi:ss day星期几 select to_char(123456)from dual; select to_char(105,'L9,999,999.00')from dual;--¥105.00 --to_date:将指定格式的字符串转换为日期 SELECT TO_DATE('1998-09-02','YYYY-MM-DD')FROM DUAL; --to_number:字符串转换成数值 SELECT TO_NUMBER('123')FROM DUAL; ----------对空值的转换,comm列中空的用0代替 select ename,nvl(comm,0)from emp; -------val2:[comm数据列,不为空用0,为空用1] select ename,comm,nvl2(comm,0,1)from emp; ----nullif(列名,为空用什么代替) ---------------------------------分支判断 ---case练习 select ename, deptno, sal, case when deptno=10 then sal+10 when deptno=20 then sal+20 else sal end as addsal from emp; ---decode select ename, deptno, sal, decode(deptno, 10,sal+10, 20,sal+20, 30,sal+30, sal) from emp; ---------------------------集合函数 --max,min,count,sum,avg select MAX(hiredate), MIN(hiredate),MAX(sal), MIN(sal) from emp; select count(*)from emp; ------------分组 --group by 将查询结果按指定列分组 --having 指定分组必须要满足的条件 --非分组列必须包含在group by 中 select deptno,max(sal),min(sal) from emp group by deptno having deptno in (10,20);