上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
SQL语言入门教程( 6)
作者:未知 申领版权
2010年12月12日 共有 1316 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:
    

(14)组合条件和布尔运算符

以下的SQL语句中就含有组合条件:
    SELECT column1, SUM(column2)
    FROM "list-of-tables"
    WHERE "condition1" AND "condition2"; 
    AND运算符可以在WHERE子句中连接两个或者多个条件。AND条件的两旁必须都为true(真),即两个条件都同时满足的时候,这些行才将被显示。
    当然,你也可以使用OR运算符,它也可以在WHERE子句中连接两个或者多个条件。但是,只要OR运算符两旁有一个为true的时候条件就满足了,因此行才会被显示。所以你使用OR运算符的时候,可以是OR运算符两旁只有一个为true或者两旁都为true。
    下面举个例子吧:
    SELECT employeeid, firstname, lastname, title, salary
    FROM employee_info
    WHERE salary >= 50000.00 AND title = 'Programmer'; 
    这条SQL语句是从employee_info表中选择salary大于等于50000.00并且title等于'Programmer'的列employeeid、 firstname、 lastname、 title和 salary。此时必须AND运算符两旁的条件都为真,行才会最为检索结果返回。如果其中有一个条件为假,那么就什么都没有显示。
    你可以使用圆括号将条件括起来,虽然它们也不一定是必须的,但是括起来看起来更清晰一些,这是一个编程习惯的问题。比如 :
    SELECT employeeid, firstname, lastname, title, salary
    FROM employee_info
    WHERE (salary >= 50000.00) AND (title = 'Programmer'); 
    下面再举个例子:
    SELECT firstname, lastname, title, salary
    FROM employee_info
    WHERE (title = 'Sales') OR (title = 'Programmer'); 
    这条语句将从employee_info表中选择title等于'Sales'或者等于'Programmer'的列firstname、 lastname, title和 salary。
    

    

(15)IN 和 BETWEEN 条件运算符

下面是IN条件运算符的SQL语句:
    SELECT column1, SUM(column2)
    FROM "list-of-tables"
    WHERE column3 IN (list-of-values); 
    下面是BETWEEN条件运算符的SQL语句:
    SELECT column1, SUM(column2)
    FROM "list-of-tables"
    WHERE column3 BETWEEN value1 AND value2; 
    实际上,IN条件运算符是一个设置成员测试运算符,也就是说,它用于测试是否一个数值处在IN关键字之后提供的数值之中。举个例子如下:
    SELECT employeeid, lastname, salary
    FROM employee_info
    WHERE lastname IN ('Hernandez', 'Jones', 'Roberts', 'Ruiz'); 
    这条语句是从employee_info表中选择lastname等于Hernandez、Jones、 Roberts或者 Ruiz名字之一的列employeeid、 lastname和 salary。如果它在其中就将返回行。
    IN条件运算符可以使用混合条件来替代,比如你可以使用等号运算符或者使用OR运算符等等,但是结果是一样的,例如:
    SELECT employeeid, lastname, salary
    FROM employee_info
    WHERE lastname = 'Hernandez' OR lastname = 'Jones' OR lastname = 'Roberts' OR lastname = 'Ruiz'; 
    你可以观察到,利用IN运算符时语句会更加简短并且容易读,特别是在你测试两个或者三个数值以上的时候尤为突出。
    当然你也可以使用NOT IN 来在你的列表中排除行的。
    而BETWEEN条件运算符是用与测试一个数值是否处在BETWEEN关键字两边指定数值的中间,比如:
    SELECT employeeid, age, lastname, salary
    FROM employee_info
    WHERE age BETWEEN 30 AND 40; 
    这条SQL语句是从employee_info表中选择age处于30到40岁之间(包括30岁和40岁)的列employeeid、age、 lastname和salary。
    这条语句同样可以不用BETWEEN运算符,而使用混合条件来替代,例如:
    SELECT employeeid, age, lastname, salary
    FROM employee_info
    WHERE age >= 30 AND age <= 40; 
    当然,你也可以类似于NOT IN的方法,使用NOT BETWEEN来排除一些数据。

    

(16)数学运算符

标准的ANSI SQL-92支持下面四个基本的算术运算符:

    

    

    
-
    

    
*
    

    
/
    

    
%
    
求余
    

其中求余运算符决定除法的余数。这个运算符不是ANSI SQL支持的,但是,绝大多数的数据库支持他。下面是一些有用的数学函数,因为可能要用到它,所以我这里要集中提一下。在ANSI SQL-92中不支持这些函数,但是它们可能对于某些特殊的RDBMS是有效的。然而它们对于几个主要的数据库系统都是有效的。下面就说说这些数学函数吧:

    
ABS(x)
    
返回x的绝对值
    
SIGN(x)
    
当x为负数、零、正数的时候分别返回x的符号-1、0或者1
    
MOD(x,y)
    
返回x除以y的余数,跟x%y作用一样
    
FLOOR(x)
    
返回小于等于x的最大整数
    
CEILING(x) 或 CEIL(x)
    
返回大于等于x的最小整数
    
POWER(x,y)
    
返回x的y次方的数值
    
ROUND(x)
    
返回最接近于x的数
    
ROUND(x,d)
    
返回小数点数为4的接近于x的数
    
SQRT(x)
    
返回x的平方根
    

下面举个例子:
    SELECT round(salary), firstname
    FROM employee_info 
    上面这条语句将从employee_info表中选择salary最接近的数以及firstname列。

    

 

相关新闻

testtest
上善制度的炼成
新时代呼唤管理理论创新——大卫�梯斯与动态能力理论
创业的不变逻辑
创新管理需要回答的5个问题
十一、弥离
十、转院
九、生机
八、传染
七、求血

您可能对这些感兴趣  

A0、A1、A2、A3图纸折叠方法
dos命令的其它用处
系统外部命令
DOS命令全集:(网络收集3 )
DOS命令全集:(网络收集2 )
DOS命令全集:(网络收集 )
SQL优化34条
MS SQL Server查询优化方法
学习存储过程
事务全攻略

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》