数据库基础03基本查询语句

基本查询语句

  • from

SQL查询语句的语法如下:

SELECT <*,COLUMN[NAME],...> FROM TABLE

其中:SELECT用于指定要查询的列,FROM指定要从哪个表中查询。如果要查询所有列,可以再SELECT后面使用*号,如果只查询特定的列,可以直接在SELECT后面指定列名,列名之间需要使用逗号隔开。

示例:查询dept表中的所有记录
SELECT*FROM dept;
  • 使用别名

在SQL语句中可以通过使用列的别名改变标题的显示样式,或者表示计算结果的含义,使用语法是列的别名跟着列名后,中间可以加或者不加一个“AS”关键字。

例如
SELECT EMPNO AS ID,ENAME NAME,SAL*12 ANNUAL_SAL FROM emp;
  • WHERE字句

在SELECT语句中,可以再WHERE字句中使用比较操作符限制查询结果,是可选的。
当查询条件中和数字比较,可以使用单引号引起,也可以不用,当和字符及日期类型的数据比较,则必须用单引号引起。

示例:查询部门10下的员工信息
SELECT*FROM emp WHERE DEPTNO = 10;
查询职员表中职位是'SALESMAN’的职员
SELECT ENAME,SAL,JOB FROM emp JOB ='SALESMAN';
  • SELECT 字句

如果只查询表的部分列,需要在SELECT后面指定列名,例如:

SELECT EMPNO,ENAME,SAL,JOB FROM emp;

查询条件

  • 使用>, <, >=, <=, !=, <>, =

在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');
  • 使用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 SAL > 1000 OR JOB = 'CLERK';
  • 使用LIKE条件(模糊查询)

当用户在执行查询时,不能完全确定某些信息的查询条件,或者只知道信息的一部分,可以借助LIKE来实现模糊查询。LIKE需要借助两个通配符→ %:表示0到多个字符、_:标识单个字符,这两个通配符可以配合使用,构造灵活的匹配条件。

示例:查询职员姓名中第二个字符是'A'的员工信息
SELECT ENAME,JOB FROM emp WHERE ENAME LIKE '_A%'
  • 使用IN和NOT IN

在WHERE字句中可以用比较操作符IN(list)来取出符合列表范围中的数据。其中的参数list表示值列表,当列或表达式匹配于列表中的任何一个值时,条件为true,该条记录则被显示出来。
IN也可以理解为一个范围比较操作符,只不过这个范围是一个指定的值列表,NOT IN(list)取出不符合此列表中的数据记录。

示例:查询职位是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...

BETWEEN...AND...操作符用来查询符合某个值域范围条件的数据,最常见的是使用在数字类型的数据范围上,但对字符类型和日期类型数据也同样适用。

示例:查询薪水在1000-3000之间的职员信息
SELECT ENAME,SAL FROM emp WHERE SAL BETWEEN 1000 AND 3000;
  • 使用IS NULL和IS NOT NULL

空值NULL是一个特殊的值,比较的时候不能使用"="号,必须使用IS NULL,否则不能得到正确的结果。

示例:查询哪些员工的奖金数据为NULL
SELECT ENAME,SAL,COMM FROM emp WHERE COMM IS NULL;

查询哪些员工有奖金

SELECT ENAME,SAL,COMM FROM emp WHERE COMM IS NOT NULL;
  • 查询条件中使用表达式和函数

查询条件中使用字符串函数UPPER,将条件中的字符串变大写后再参与比较

SELECT ENAME,SAL,JOB FROM emp WHERE ENAME = UPPER('rose');

查询条件中使用算术表达式,查询年薪大于10万元的员工记录

SELECT ENAME ,SAL,JOB FROM emp WHERE SAL*12>100000;
  • 使用DISTINCT过滤重复

数据表中有可能存储相同数据的行,当执行查询操作时,默认情况会显示所有行,不管查询结果是否有重复的数据。当重复数据没有实际意义,经常会需要去掉重复值,使用DISTINCT实现。

  • 使用TOP关键字

示例:查询emp表中前5条记录
SELECT TOP 5 *FROM emp;

你可能感兴趣的:(数据库基础03基本查询语句)