首页 > 数据库 > Oracle > oracle数据库学习笔记
一、
1、
2、
3、
二、
1、
基本语法:
Select {[distinct/all]/columns/*}
From {table/view/other select}
[Where conditions]
[Group by columns]
[Having conditions]
[Order by conditions]
Select语句执行的基本顺序是:From子句最先执行,然后才是where子句和select子句。
1)
Select * from table
2)
Select column1, column2……
3)
可以用AS指定,也可以直接指定。
4)
Select distinct column from table
筛选查询:
1)
可以在where子句中使用比较运算符来筛选数据。
2)
SQL语言提供了LIKE、IN、BETWEEN、IS NULL等关键字来筛选匹配的数据,这些关键字的功能功能分别是匹配字符串,查询目标值,限定值的范围和判断值是否为空。
LIKE关键字:放在where子句中,常用的通配符有”_”下划线,代表一个字符的数据,百分号“%”表示任意长度的字符。例如“M%”表示以M开头的任意长度的字符,“%M%”表示带有M的任意长度的字符。
可以在LIKE前面加上NOT,如果LIKE表示正,则NOT LIKE则表示为假,另外,在IN、BETWEEN、IS NULL前面也可以加上NOT,表示否定。
IN关键字:放在where子句中,当表示数值是否满足一个组中的一个条目时,可以用IN来表示。IN关键字的格式为IN(目标值1,目标值2…..)
BETWEEN关键字:放在where子句中,表示数值是否在两个指定的数值之间。通常使用BETWEEN…..AND 和 NOT…BETWEEN…..AND。当使用此查询条件时,必须满足第一个数值小于第二个数值。
IS NULL关键字:空值在技术上来说是未知的,不确定的,但空值与空字符串不一样,因为空值是不存在值的,而空字符串是长度为0的字符串。
因为空值是未知的,所以并不是所有的空值都相等。例如某个表中两个学生的年龄为空,但是无法确定两个同学的年龄是否相等。
逻辑筛选:
逻辑筛选位于where子句中,逻辑筛选常用的关键字为AND、OR、NOT
分组查询:
数据分组的目的是用来汇总数据或为整个分组显示单行的汇总信息,通常在查询结果集中使用GROUP BY,常与聚集函数一起使用,其语法格式为:
SELECT column_list
From table
Where 子句
GROUP BY column_list
HAVING子句对GROUP BY 的结果进一步筛选,最后输出符合HAVING 子句条件的记录。HAVING子句与WHERE 子句的用法大致相似,唯一不同的是HAVING子句中可以包含聚集函数,如count、sun、avg。
排序查询:
可以使用ORDER BY 子句对结果集进行排序。其语法为:
Select column_list
From table_name
[Where conditions]
[group by column_list]
ORDER BY [ASC/DESC]
ORDER BY 子句可以对结果集中的一列或多列进行排序,并且第一个排序为主要排序,接下来的排序为次要排序。
多表关联查询:
多表关联查询时,一般是要为表指定别名,因为关联的表中有相同的字段名,这样必须用表名和列名来确定,为了方便,多数情况下是要为表去别名的。而且一般是在where子句中来确定。
多表关联查询有以下几种:
1)
内连接是一种常用的连接方式,一般使用INNER JOIN 来实现,其中INNER可以省略不写,在使用内连接时必须在from子句后定义一个ON子句,表示内连接的条件。其语法格式如下:
Select column_list
From table1 JOIN table2
ON join_conditons
2)
内连接进行多表查询时,只返回符合查询条件和连接条件的行,外连接扩展了内连接的结果集,外联接可以返回部分或全部的结果集,这主要看是选取哪种外连接。外连接有三种:
左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)、完全外连接(FULL JOIN),与内连接不同的是外连接不仅给出了满足查询条件和连接条件的行,而且还能够包含左表(左外连接)、右表(右外连接)、两个表(完全连接)中所有不符合查询条件的行。
3)
自然连接是指在检索多个表,oracle会将第一个表中的列与第二个表中具有相同名称的列进行自动连接,也就是说在结果集中不会出现相同列。这个任务有oracle自动完成,自然连接的关键字为NATURAL JOIN。
4)
交叉连接的结果是笛卡尔集,一般很少用。
2、
1)
ASCII(c)和CHR(i)函数:c表示一个字符,表示返回c的ascii码值,i表示一个ascii码值,CHR表示返回i对应的字符。可以看出两者互逆。
CONCAT(S1,S2)函数:表示将字符串S2连接到字符串S1后面。
INITCAP(s)函数:该函数将字符串s的每个单词的第一个字母大写,其它字母小写。
INSTR(S1,S2,i,j)函数:该函数返回字符S2在字符串S1中第j次出现的位置,搜索从字符串S1的第i个字符开始,当没有发现S2时,返回0.
LENGTH(s)函数:该函数用于返回字符串s的长度,如果s为null,则返回值为null。
LOWER(s)和UPPER(s)函数:这两个函数用于返回字符串s的小写和大写形式,这两个函数经常出现在where子句中。
LTRIM(s1,s2)、RTRIM(s1,s2)和TRIM(s1,s2)函数:这三个函数分别用来删除s1左边的字符串s2,s1右边的字符串s2,s1左右两边的字符串s2.
REPLACE(s1,s2,s3)函数:该函数使用s3字符串替换在s1字符串中出现的所有的s2字符串,返回新字符串。
SUBSTR(s,i,j)函数:该函数表示从字符串s的第i各位置开始截取长度为j的子字符串。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21161149/viewspace-1117441/ ,如需转载,请注明出处,否则将追究法律责任。