SQL是用于访问和处理数据库的标准计算机语言;
中文:结构化查询语言;英文全称:Structured Query Language;
而其中的核心就是查询。
简单查询
SELECT字段,字段,字段... [SELECT子句]FROMEMP;(数据来源)[FROM子句]
以上两个语句执行时,先执行FROM子句,再执行SELECT子句。
当查询所有字段信息时可以使用通配符*。
当信息有重复时,可以使用关键字DISTINCT来去除重复。
限定查询
再实际开发中基本上都会使用限定查询
SELECT字段,字段,字段... [SELECT子句]
FROM数据来源 [FROM子句]
WHERE过滤条件 [WHERE子句]
WHERE 子句会根据过滤条件来选择出满足条件的数据。
1.关系运算符
SELECT*FROM EMP WHERE SAL>1000;
查询月薪大于1000的员工信息。
SELECT*FROM EMP WHEREE NAME='SMITH';
查询名为SMITH的员工信息。
SELECT*FROM EMP WHERE JOB<> 'SALESMAN';
查询工作不是SALESMAN(销售)所有员工信息。
2.逻辑运算符
SELECT* FROM EMP WHERE SAL>=1500 AND SAL<=3000;
SELECT* FROM EMP WHERE BETWEEN 1500 AND 3000;
以上两种方式都是查询所有月薪在1500到3000之间的员工信息;但是这两种的有区别的。第一种在数据库中会认为是两个判断条件,而第二种(BETWEEN AND )则只认为是一个判断条件,所有第二种效率更高一点。
3.空判断
SELECT* FROM EMP WHERE COMM IS NULL;
查询没有佣金的员工信息。
4.IN查询
SELECT* FROM EMP WHERE EMPNO IN(7788,7654,6329);
查询员工编号是7788,7654,6329的员工信息。
模糊查询
在了解模糊查询之前要先了解通配符_和%;
_:表示任意一个字符;
%:表示任意位数的任意字符;
同过关键字LIKE来实现模糊查询。
SELECT字段,字段...FROM数据来源WHERE模糊查询的字段LIKE关键内容
SELECT* FROM EMP WHERE ENAME LIKE 'A%';
查询姓名以A开头的员工信息。
SELECT * FROM EMP WHERE ENAME LIKE '%A%';
查询姓名中含有A的员工信息。
SELECT * FROM EMP WHERE ENAME LIKE'_A%';
查询姓名第二个字母是A的员工信息。
排序查询
排序查询:将结果按照指定字段进行升序或者降序来显示,注意指定的字段一般指数字或者日期。
其关键字是 ORDER BY
SELECT字段...FROM数据来源WHERE过滤条件ORDER BY排序字段ASC[DESC]
ASC:升序排列(默认); DESC:降序排列。
SELECT * FROM EMP WHERE JOB='SALESMAN' ORDER BY SAL DESC;
工作是销售并按月薪降序排列员工信息。
多表查询
如果要从多张数据表中查询数据,那么就会用到多表查询,多表查询也叫做连接查询。
SELECT字段...FROM数据源,数据源...WHERE过滤条件ORDER BY排序字段ASC[DESC]
当多表查询时,会产生笛卡尔积。即查询出的数据量是各个数据源的数据量的乘积。这样的数据含有大量没用的重复数据,可以使用WHERE 子句来加过滤条件消除笛卡尔积。
SELECT * FROM EMP,DEPT (EMP和DEPT是两张表)
WHERE EMP.DEPTNO=DEPT.DEPTNO;
通过WHERE使两张数据源中关联字段相等来消除笛卡尔积。注意:这里的消除是指不显示没用的相关数据,实际上并没用真正的去除。所以一般数据量比较大时 不要使用多表查询,会消耗很多性能。
Source:https://www.cnblogs.com/fzxey/p/10883824.html