sql中select用法分解

上传人:小** 文档编号:93273199 上传时间:2019-07-19 格式:DOC 页数:10 大小:97.96KB
返回 下载 相关 举报
sql中select用法分解_第1页
第1页 / 共10页
sql中select用法分解_第2页
第2页 / 共10页
sql中select用法分解_第3页
第3页 / 共10页
sql中select用法分解_第4页
第4页 / 共10页
sql中select用法分解_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《sql中select用法分解》由会员分享,可在线阅读,更多相关《sql中select用法分解(10页珍藏版)》请在金锄头文库上搜索。

1、select语句是是最常用的数据查询语句,我们通过例子来逐步了解它的使用。SELECT * FROM departments;这条语句中有2个关键字(keywords) SELECT 和 FROM其中 * 代表通配符号,表示 departments 表中的所有信息。假设departments表中有如下四个字段:department_id, department_name, department_age, department_job那么我们可以认为 SELECT * FROM departments; 这个语句也就等同于SELECT department_id, department_name

2、, department_age, department_jobFROM departments;所以,据此我们可以以此推断,如果我们只想检索 department_name, department_age这两个字段,我们只需要将上述语句修改为:SELECT department_name,depatment_age FROM departments;注意:我们在书写SQL语句时需要知道如下基本常识。 1 我们可以通过多行的书写来完成一条SQL语句,而不必要写成一行。 2SQL语句是不区分大小写的。 3 关键字是不能分离或者简写的 4子句往往是另起一行书写的,这样做是为了增加可读性。 例如:

3、SELECT department_name,department_age FROM departments; 5 关键字通常是大写的,其他的如表名,字段通常小写附加:table(表)的显示规则通常情况下查询结束后,在iSQL-PLUS环境下,显示出来的查询结果具有如下特点。1 字段名通常是大写并且居中的。 2 字符型和日期型数据通常是“左对齐”显示的 3 数字型数据通常是“右对齐”显示的 4 默认显示通常全部是大写Arithmetic Expressions-计算扩展在使用SELECT语句进行查询的过程中我们可以充分的利用一些简单的计算来丰富我们的查询方式与结果。例如:SELECT last

4、_name, salary, salary+300 FROM employees;在这里我们看到了 salary+300 这个emlpoyees表中本来不存在的字段。那么会出现什么样的查询结果呢?我们很容易想到查询结果中会出现3列,他们分别是last_name salary salary+300king 100 400neil10000 10300. . . . .在这里我们我们只需要注意一个问题,那就是字段名。很显然last_name,salary是我们在之前就已纪存在的字段,而salary+300则是系统默认生成的。所以我们可以推断,如果我们不额外指定字段名,那么系统将用查询公式来充当默认

5、的字段名。如何指定一个新的字段名,或将原有的字段定义一个别名呢?我们在下面就会讲到。关于运算查询我们只需注意运算法则,相信这对中国学生来说并不是一个难事。现在我们来讨论一下关于null的概念。我们对如下数据进行比较,null,0,spacenull 代表什么都没有,它没有具体的值与之对应0 代表了一个实实在在的数字space 代表了一个空格,我们完全可以说它是一个字符型数据,使存在的。任何一个数值和null进行and 运算他的结果都是null,当然也包括*,/下面我们来看另外一条重要的语句:给字段(列)定义别名。这个语句非常有用,可以有效地帮助我们检索并显示我们需要的信息。例子:SELECT

6、department_nameAS name, department_id IDFROM departments;SELECT department_name name, salary*12 New salary FROM departments;这两句话,甚至一句话中都有不同的写法,但表述的却是同一个意思。定义别名,关键字AS,给列定义别名我们可以用as, 当然也可以不用例如第一句中后半句,department_id ID。这里我们就没有用as,但同样是给department_id定义一个别名“ID”。同样,我们也可以用双引号来定义别名,就像第二句一样。通过这样的语句,我们在看到的查询结果,

7、列名就由原来的department_name变成了name.这里还有一种SELECT的选择方式,连接选择。顾名思义,这个选择的意思就是将查询结果连接起来,而所用的符号是我们非常常见的“ |”,“或”运算。我们可以这么理解,全假则假,“或”是一个二元运算符,在这里只有当两个字段都为null时才会出现null的查询结果,否则进行连 接显示。例子: SELECT department_name|department_id AS Information FROM departments;显示结果则会出现: king2003333 neil9998888 等等。如果出现department_name为空

8、,而id不为空,则只显示id,反之只显示name.都为空则显示null.所以,利用这个查询原理我们可以把查询变得更人性化。例如:SELECT department_name| IDis a |department_id AS InformationFROM departments;显示结果: king ID is a 2003333这里我们只需要注意 中,空格是要按照一个字符来计算的。也就是说一个空格显示出来就是一个空格。到这里。SELECT语句的用法基本差不多了。实践才是硬道理我们先来讨论一下where语句。例如:SELECT employee_id, last_name, job_id,

9、department_id FROM employees WHERE department_id= 90;很明显,这是一条结构非常清晰的含有where子句的查询语句。我们在这里只需要注意一点,where子句中 “=”号后面如果是数字,我们可以直接写在=号后面,如果是字符串那么我们必须加上单引号 。另外在oracle中,默认的日期输出格式是 DD-MON-RR例如: where hire_date= 01-JAN-95where salary =5000 where name= neil我们再来看一下BETWEEN.AND语句这同样是一个条件控制语句,用于输出一定数值(也可以是字符串)范围内的查

10、询结果例如:SELECT last_name, salaryFROMemployeesWHERE salary BETWEEN 2000 AND 3000;我们在这里需要注意的是,between.and仍然是where条件控制语句的一员,大家用得时候千万不要把where给忘了。哈哈那么我们能用这样的语句来查询字符串类型数据呢?答案是肯定的看这个例子:SELECT last_nameFROMemployeesWHERE last_name BETWEEN king AND neil;这个例子就查询了首字母k和n之间的所有last_name的值。现在我们遇到这样一种情况,现在我们需要查询 mana

11、ge_id=201,205,222的所有员工信息。现在我们知道的是,id为201,205,222的员工远不止三个人,因为一个manage 可以管理多个员工,所以就意味着多个员工可以拥有相同的manage_id.在这里我们就可以使用条件语句where.in.来完成类似的查询了。例如:SELECT employee_id, last_name, salaryFROMemployeesWHERE manage_id IN (201,205,222);有人可以这样问,现在我们可以根据manage_id来限制这个查询,但如果我们只知道老板的名字呢?我们还能不能用这个语句呢?当然可以了例如:SELECT

12、employee_id, last_name, salaryFROMemployeesWHERE manage_id IN (neil,king,merry);说到这里我们可以用一句话来概括这些类似的查询,其实就是他们的共同点:精确查询。无论是where between and ,where in这些都是给定了明确的查询条件的。那么下面我就来讲讲模糊查询。例如:SELECT last_nameFROMemployeesWHERE last_name LIKE S% ;看到这里大家一定恍然大悟。这里我们用到了2个新知识点,模糊查询的关键词LIKE 和 一个通配符 %like就不用多解释了,跟它的

13、字面意思其实是一样的。我们来看看通配符 %代表了所有字符串的集合,但要分场合的,比如s%这里就代表s字母后面所有的字母,而%s就代表s字母前面所有的字母了。那么有没有什么符号能只代表任意一个字母呢?肯定有的,那就是下划线_例如: where last_name like _s%这就表示第二个字母是s的所有数据。我们通过_,%,以及字母的组合会得到很多有趣的检索方式,大家就自己慢慢尝试吧!下面我们再来看看null值查询。在数据表里通常存在很多null值,利用他们来进行检索通常是一个不错的办法例如:SELECT last_name, manage_idFROMemployeesWHERE mana

14、ge_id IS NULL;当我们将查询进行下去的时候,我们会慢慢发现有时候单条件查询已经不能满足我们的需要,通常我们进行多个条件的叠加查询,这时候我们就要引入oracle中的逻辑条件查询规则了。这里一共有三个逻辑限定条件,他们分别是:AND, OR, NOT我们还是通过实例来分析这些查询条件,例如:SELECT employee_id, last_name, job_id, salaryFROMemployeesWHERE salary= 1000 AND job_id like %man%;这里定义了一个需要同时满足 salary=1000和 job id中含有man 2个条件的查询语句。相信大家不难理解。AND就代表两个同时为真才为真,否则都为假!再看这个例子:SELECT employee_id, last_name, job_id, salaryFROMemployeesWHERE salary= 1000OR job_id like %man%;这个例子查询了满足sa

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号