您的位置:首页 > 数据库

day07—SQL基本查询

2016-03-03 00:10 246 查看
SQL基本查询

SQL查询语句的语法如下:

SELECT <*, column [alias], …> FROM table;

SELECT关键字选择所要查询的列,列名逗号隔开,FROM后选择要查询的数据表。

使用别名:

SELECT empno AS id , ename "Name" FROM emp;

在列名后加 as 别名,或者双引号,可以在查询表结果,列名显示别名。不用双引号将不会识别大小写。

运算符:>, <, >=, <=, !=, =

在oracle的where子句中,可以用运算符来制定条件查询

比如:查询职员表中薪水低于2000元的职员信息:SELECT ename, sal FROM emp WHERE sal < 2000;

AND,OR关键字:

在SQL中,如果查询条件有多个,可以用and,or并联。and相当于且,or相当于或。使用and关键字,每个并联的条件都要实现才能查询出数据,使用or,只要实现一个条件即可。

比如:查询薪水大于1000并且职位是’CLERK’的职员信息:

SELECT ename, sal, job FROM emp WHERE sal > 1000 AND job = 'CLERK';

查询薪水大于1000或者职位是’CLERK’的职员信息:

SELECT ename, sal, job FROM emp WHERE sal > 1000 OR job = 'CLERK';

LIKE条件:模糊查询

LIKE需要借助两个通配符:

%:表示0到多个字符

_:标识单个字符

例如:查询员工表员工名字第二个字母是A的员工

SELECT ename, job FROM emp WHERE ename LIKE '_A%';

IN和NOT IN:

可以认为是范围定义,IN表示所选条件在不在此范围,NOT IN相反

比如:查询职位是MANAGER或者CLERK的员工:

SELECT ename, job FROM emp WHERE job IN ('MANAGER', 'CLERK');

查询不是部门10或20的员工:

SELECT ename, job FROM emp WHERE deptno NOT IN (10, 20);

BETWEEN…AND…:数值范围查询关键字:

例如:查询薪水在1500-3000之间的职员信息:

SELECT ename, sal FROM emp WHERE sal BETWEEN 1500 AND 3000;

ANY和ALL:

运算符可以和ANY,ALL配合使用:ANY表示“任一的",ALL表示“全部的”

> ANY : 大于最小

< ANY:小于最大

> ALL:大于最大

< ALL:小于最小

SELECT * FROM dual(虚假表,并不存在) WHERE sal>ANY(1000,1500,3000);--选择薪水大于1000,因为大于任一值即可

SELECT * FROM dual(虚假表,并不存在) WHERE sal>ALL(1000,1500,3000);--选择薪水大于3000,因为大于所有值才可

DISTINCT:去除重复,在列名前加此关键字

ORDER BY:对查询出的数据按一定规则进行排序操作(可对一表多列排序)


SELECT <*, column [alias], …> FROM table [WHERE condition(s)] [ORDER BY column [ASC | DESC]] ;

其中,ASC是升序排列,DESC是降序排列

函数:MAX、MIN、***G、SUM、COUNT

分别是:取最大值,最小值,平均值,和值,计数。均忽略NULL值。前四个不讲,下面是COUNT讲解。

COUNT函数用来计算表中的记录条数,例如获取职员表中一共有多少名职员记录:

SELECT COUNT(*) total_num FROM emp; 返回结果就是员工表中的全部条数,例如:20

关联查询:

实际应用中所需要的数据,经常会需要查询两个或两个以上的表。这种查询两个或两个以上数据表或视图的查询叫做连接查询,连接查询通常建立在存在相互关系的父子表之间。语法如下:

SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1 = table2.column2;

或者

SELECT table1.column, table2.column FROM table1 JOIN table2 ON (table1.column1 = table2.column2);

这种连接法称为等值连接(内连接):在有主外键关联关系的表间建立,并将连接条件设定为有关系的列,使用等号”=”连接相关的表。通常等值连接的两表会有相同的列名,通过这两表的这一列连接。

外连接(左/右外连接):内连接返回两个表中所有满足连接条件的数据记录,在有些情况下,需要返回那些不满足连接条件的记录,需要使用外连接,即不仅返回满足连接条件的记录,还将返回不满足连接条件的记录。

外连接的语法如下:

SELECT table1.column, table2.column FROM table1

[ LEFT | RIGHT ] JOIN table2 ON table1.column1 = table2.column2;

全连接:全外连接是指除了返回两个表中满足连接条件的记录,还会返回不满足连接条件的所有其它行。即是左外连接和右外连接查询结果的总和。

SELECT e.ename, d.dname FROM emp e FULL OUTER JOIN dept d ON e.deptno = d.deptno

自连接:自连接是一种特殊的连接查询,数据的来源是一个表,即关联关系来自于单表中的多个列。

想要明白这些知识如何运用,请关注:

/article/3701936.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: