SQL(Structured Query Language )被称为结构化查询语,SQL 是操作和检索关系型数据库的标准语言。SQL是在90年代开发出来的,最早使用SQL的数据库就是Oracle,而且随着时间的发展,基本上只要是数据库都支持了SQL语句,不同的数据库会存在在若干差异,但是基本的核心语法永远都是一样的。
Sql语句很多,在oracle数据库中,主要的sql语句分为5大类
- Select查询语句 DQL
- DML语句(数据操作语言)
Insert / Update / Delete/merge
- DDL语句(数据定义语言)
Create / Alter / Drop / Truncate(删除数据立即生效)
- DCL语句(数据控制语言)
Grant(赋于权限 ) / Revoke(回收权限 )
- 事务控制语句
Commit / Rollback / Savepoint
模式和模式对象
一个模式(schema)为模式对象(scehma object)的一个集合,每一个数据库用户对应一个模式。模式对象为直接引用数据库数据的逻辑结构,模式对象包含如表、视图、索引、聚集、序列、同义词、数据库链、过程和包等结构。模式对象是逻辑数据存储结构,每一种模式对象在磁盘上没有一个相应文件存储其信息。一个模式对象逻辑地存储在数据库的一个表空间中,每一个对象的数据物理地包含在表空间的一个或多个数据文件中。
筛选查询语句
简单查询之中是将所有的内容一起进行显示,可是,在某些时候是需要进行数据筛选的,例如:查询工资范围1000~1500的,或者是查询雇佣时间在1980年的,此时就必须使用限定查询的语法,也只是增加了一个WHERE子句而已。
SELECT [DISTINCT] * | 列 别名,列 别名,.... FROM 表名称 [别名] [WHERE 条件(s)] ; |
对结果排序
在之前的查询中,有一定的顺序,但是这个顺序是由数据库自己指定的,如果现在希望可以按照某些字段排序,例如:基本工资或雇佣日期,则就必须使用ORDER BY子句完成排序操作。
SELECT [DISTINCT] * | 列 别名,列 别名,.... FROM 表名称 [别名] [WHERE 条件(s)] [ORDER BY 排序字段 ASC | DESC,排序字段]; |
ASC表示的是升序(默认),而DESC表示的是降序(需要自己指定)。
多表关联查询(连接查询)
之前的所有查询都是从emp一张表中取出的数据,如果现在要求从多张表中一起查询数据的话,那么就必须使用多表查询的概念,以下是多表查询的语法:
SELECT [DISTINCT] * | 列 别名,列 别名 FROM 表名称1 别名,表名称2 别名,.... [WHERE 条件(s)] [ORDER BY 排序字段 ASC | DESC,排序字段 ASC | DESC] ; |
单行函数
数据库从使用来讲,有很多种,但是对于程序人员最需要掌握的实际上是两块内容:SQL语句、单行函数,而所谓单行函数就是指可以完成某些固定操作的函数,由数据库提供,一般单行函数的语法如下:
函数名称(操作的列 | 具体的数值 [,若干参数]) |
在Oracle之中,单行函数主要分为以下的五种:字符串函数、数值函数、转换函数、日期函数、通用函数,只有掌握这些函数之后,才可以让开发变得更加的方便。
字符函数
字符函数主要是指的接收一个字符,同时将字符处理之后返回,常用的字符函数有:UPPER()、LOWER()、INITCAP()、REPLACE()、LENGTH()、SUBSTR()、CONTACT()。
但是在调用函数操作的时候,Oracle有一点不方便:所有的操作必须按照标准的SQL语句编写。
范例:进行大小写转换,UPPER()、LOWER()
SELECT UPPER('Hello'),LOWER('Hello') FROM emp ; |
数值函数
数值函数常用经常面试有三种:ROUND()、TRUNC()、MOD()
范例:验证ROUND()函数 —— 表示的是四舍五入,而且是带小数点的
SELECT ROUND(789.63871) FROM dual ; |
直接使用ROUND()函数则意味着直接将小数点之后的内容进行四舍五入。
日期函数
在讲解日期函数之前必须首先先确定一个问题,如何取得当前的系统时间,如果要取的话直接使用SYSDATE即可。
SELECT SYSDATE FROM dual ; |
在日期操作中有如下的三个计算公式:(注意:这是在数据库中才成立)
1、 日期 – 数字 = 日期;
2、 日期 + 数字 = 日期;
3、 日期 – 日期 = 数字(天数);
转换函数
在Oracle之中可以将字符串、数字、日期型数据进行互相的转换,使用TO_CHAR()、TO_DATE()、TO_NUMBER()三个函数完成。
范例:观察日期的转换,将日期变为字符串
SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd') FROM dual ; |
聚合函数
组函数(统计函数)
在SQL语法之中,定义了以下的几个常用的统计函数:
1、 COUNT():统计数据量;
2、 SUM():求和;
3、 AVG():求平均;
4、 MAX():最大值;
5、 MIN():最小值;