group by group by group by order by asc desc group by group by
group by group by group by order by asc desc group by group by
trungc months_between
public s
数据删除:
语法:
delete from 表名称 [where 删除条件(S)]
数据修改:
语法:
UPDATE 表名称 SET 字段1=值1........[WHERE 更新条件(s)];
写更新操作一定要写上WHERE子句。
数据更新:增加,修改,删除;
1、创建myemp表:create table myemp as select * from emp;
2、数据增加:
语法:
insert into 表名称 [(列名称1,.....)] values(值1,.........);
字符串:使用单引号声明,‘mldn’;
数字:直接编写;
日期:当前日期(SYSDATE)、使用TO_DATE()转换,按照日期格式编写;
子查询:
WHERE子句:单行单列,单行多列,多行单列(IN,ANY(=ANY,>ANY,<ANY),ALL(>ALL,<ALL))
HAVING子句:单行单列数据,并且需要统计函数计算。
FROM子句:
SELECT子句:
分组查询:
语法:
5、SELECT 分组字段或者统计函数
1、FROM
2、WHERE
3、GROUP BY 分组字段
4、HAVING子句:
6、ORDER BY
分组统计查询:
1、基础统计函数的使用:
(1)COUNT()函数:统计数据量;
(2)MAX()函数:
(3)MIN()函数:
(4)SUM()函数:
(5)AVG()函数:
2、分组统计操作的实现:
数据的集合操作:负责连接的查询结果;
UNION/UNION ALL/INTSECT/MINUS
SQL1999:
SELECT [DISTINCT] * | 列【别名】
FROM 表名称1
[CROSS JOIN 表名称2]
[NATURAL JOIN 表名称2]
[JOIN 表名称 ON(条件)|USING(字段)]
[LEFT|RIGHT|FULL OUTER JOIN 表名称2];
1、交叉连接:CROSS JOIN,主要的功能是产生笛卡尔积,简单的实现多表查询;
2、自然连接:NATURAL JOIN,自动使用关联字段消除笛卡尔积;
3、USING子句:一张表中有多个关联字段;
4、ON子句:没有关联字段;
外链接:SQL:1999语法中定义的左外连接,右外连接,全外连接;
表的连接:
内连接(等值连接):所有满足条件的数据都会被显示出来;
外链接(左外连接、右外连接、全外连接):控制左表与右表的数据是否全部显示;
(+)的语法:左外连接:字段=字段(+);
右外连接:字段(+)=字段;
多表查询操作的使用:
1、没有关联字段或者关联条件的两张数据表是永远不可能实现多表查询的;
2、在进行多表查询这样的复杂查询是建议分步骤查询。
SELECT UPPER('hello') FROM dual;(dual虚拟表)
SELECT LOWER(ename) FROM emp;
ORDERED BY 【字段】 【ASC|DESC】,【字段】 【ASC|DESC】,....
SELECT * FROM emp ORDERED BY sal DESC ,hiredate;(默认ASC)
SELECT empno, ename, sal*12 income
FROM emp
ORDERED BY income;
SELECT 列名
FROM 表名
WHERE sal BETWEEN ... AND ...
2,空操作:
IS NULL/IS NOT NULL
SELECT * FROM empty WHERE comm IS NULL
3,IN操作符
类似BETWEEN .... AND ....
SELECT * FROM emp WHERE empno IN (123,456,789)
4、模糊查询LIKE(应用于任意数据类型)
"_":匹配任意一位字符
"%":匹配任意零位,一位,多位字符
SELECT * FROM empno WHERE ename LIKE "%A%"
通用函数:指的是Oracle的特色函数,主要有两个:
1、数字 NVL(列 | NULL,默认值):如果传入的内容是null,则使用默认数值处理,如果不是空则使用原始数值处理;
2、数据类型 DECODE(列 | 字符串 | 数值,比较内容1,显示内容1,比较内容2,显示内容2......[默认显示内容]):设置的内容会与每一个比较内容进行比较,如果内容相同,则会使用显示内容进行输出,如果都不相同,则使用最后的默认信息输出。
总结:
1、每一个函数都只是完成一个独立的功能,并且所有函数都可以在SQL语句中使用;
2、要求可以蓟县每一个函数名称以及作用。
转换函数:
1、字符串 TO_CHAR(列 | 日期 | 数字,转换格式):将日期或数字格式化为指定结构的字符串;
2、日期 TO_DATE(列 | 字符串,转换格式):按照指定的转换格式编写字符串后将其变为日期型数据
3、数字 TO_NUMBER(列 | 字符串):将字符串变为数字。
标记:
1、日期:年(yyyy)、月(mm)、日(dd);
2、时间:时(hh、hh24h)、分(mi)、秒(ss);
3、数字:任意数字(9)、本地货币符号(L)。
日期函数:
伪列:SYSDATE,(SYSTIMESTAMP).
例子:
select sysdate from dual;
select ename,job,sal from emp;
SYSDATE伪列包含是日期时间的内容;
三个日期的操作公式:
1、日期+数字=日期(表示若干天之后的日期);
2、日期-数字=日期(表示若干天之前的日期);
3、日期-日期=数字(天数)。
例子:实现日期的基本操作:
select sysdate-7,sysdate+240 from dual;
select empno,ename,job,sysdate-hiredate from emp;
四个日期处理函数:
1、日期 ADD_MONTHS(列 | 日期,月数)在指定的日期上增加若干个月之后的日期;
2、数字 MONTHS_BETWEEN(列 | 日期,列 | 日期)返回两个日期之间的所经历的月数;
3、日期 LAST_DAY(列 | 日期)取得指定日期所在月的最后一天;
4、日期 NEXT_DAY (列 | 日期 ,星期X)返回下一个指定的一周时间数对应的日期。
select empno,ename,hiredate