1. SQL(基础查询)
1.1. 基本查询语句
1.1.1. FROM子句
SQL查询语句的语法如下:
- SELECT <*, column [alias], …> FROM table;
其中:SELECT用于指定要查询的列,FROM指定要从哪个表中查询。如果要查询所有列,可以在SELECT后面使用*号,如果只查询特定的列,可以直接在SELECT后面指定列名,列名之间用逗号隔开。例句如下,查询dept表中的所有记录:
- SELECT * FROM dept;
1.1.2. 使用别名
在SQL语句中可以通过使用列的别名改变标题的显示样式,或者表示计算结果的含义,使用语法是列的别名跟在列名后,中间可以加或不加一个“AS”关键字。例如:
- SELECT empno AS id ,ename "Name", sal * 12 "Annual Salary" FROM emp;
别名可以直接写,不必用双引号引起来。但是如果希望别名中区分大小写字符,或者别名中包含字符或空格,则必须用双引号引起来。
1.1.3. WHERE子句
在SELECT语句中,可以在WHERE子句中使用比较操作符限制查询结果,是可选的。
当查询条件中和数字比较,可以使用单引号引起,也可以不用,当和字符及日期类型的数据比较,则必须用单引号引起。例如查询部门10下的员工信息:
- SELECT * FROM empWHERE deptno = 10;
查询职员表中职位是’SALESMAN’的职员:
- SELECT ename, sal, job FROM emp WHERE job = 'SALESMAN';
图-1 用where子句定义查询条件
1.1.4. SELECT子句
如果只查询表的部分列,需要在SELECT后指定列名,例如:
- SELECT empno, ename, sal, job FROM emp;
图-2查询指定的列
1.2. 查询条件
1.2.1. 使用>, <, >=, <=, !=, <>, =
在WHERE子句中的查询条件,可以使用比较运算符来做查询。比如:查询职员表中薪水低于2000元的职员信息:
- SELECT ename, sal FROM emp WHERE sal< 2000;
查询职员表中不属于部门10的员工信息(!=等价于<>):
- SELECT ename, sal, job FROM emp WHERE deptno != 10;
查询职员表中在2002年1月1号以后入职的职员信息,比较日期类型数据:
- SELECT ename, sal, hiredate FROM emp
- WHERE hiredate>to_date('2002-1-1','YYYY-MM-DD');
1.2.2. 使用AND,OR关键字
在SQL操作中,如果希望返回的结果必须满足多个条件,应该使用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<