频道栏目
首页 > 资讯 > 其他综合 > 正文

数据库限定查询语法以及操作及范例

17-06-19        来源:[db:作者]  
收藏   我要投稿

限定查询的格式

认识限定查询:筛选数据(where语句);

Where子句:可以设置一系列的过滤条件,可以使用逻辑运算进行连接。

限定运算符:

1.关系运算符(>, <, >=, <=, =, !=, <>):进行大小或相等的比较,其中不等于有两种,!=和<>;

2.判断null(IS NULL, IS NOT NULL):判断某一列的内容(值)是否是null;

3.逻辑预算符(AND, OR, NOT):和C语言一样的使用方法;

4.范围查询(BETWEEN最小值AND最大值):在一个指定范围中进行查找,查找结果为:“最小值<=内容<=最大值”;注:查询范围可以是数字,字符串或者是日期型数据;

5.范围查询(IN):通过IN可以指定一个查询的范围;

6.模糊查询(LIKE):可以对指定字段进行模糊查询;

限定查询的范例:

A.统计基本工资高于1500的全部雇员信息:

SELECT *

FROM emp

WHERE sal>1500;

注:第一步:执行FROM子句,来控制数据的来源;

第二步:执行WHERE子句,使用限定字符进行数据行的过滤(也就是说可以使用数据列的别名,不可以使用SELECT后定义的数据列的别名,因为SELECT是在WHERE后执行);

第三步:执行SELECT子句,确定要显示的数据列;

B.查询基本工小于等于2000:

SELECT *

FROM emp

WHERE sal<=2000;

C.查询SMITH的详细资料:

SELECT *

FROM emp

WHERE ename=’SMITH’;

D.查询所有办事员的雇员信息:

SELECT *

FROM emp

WHERE job=’CLERK’;(列名不区分大小写)

F.查询所有不是办事员的雇员信息:

SELECT *

FROM emp

WHERE job<>(!=)’CLERK’;

G.查询工资在1500~300的全部雇员信息:

SELECT *

FROM emp

WHERE sal>=1500 AND sal <=3000;

H.查询职位是销售人员,并且基本工资高于1200的所有雇员的信息:

SELECT *

FROM emp

WHERE job=’SALESMAN’ AND sal>1200;

关系运算符查询范例:

1.要求查询出10部门中的经理或者20部门业务员的信息:SELECT * FROM emp WHERE (deptno=10 AND job=’MANAGER’) OR (deptno = 20 AND job = ‘CLERK’);

2.查询不是办事员的且基本工资大于2000的全部雇员的信息:

第一种方式:

SELECT *

FROM emp

WHERE (job != 'CLERK') AND (sal>2000);

第二种方式:

SELECT *

FROM emp

WHERE NOT (job='CLERK' AND sal<=2000);

3.使用BETWEEN AND 操作查询出工资范围在1500~300(包含1500和3000)的全部雇员信息:

SELECT *

FROM emp

WHERE sal BETWEEN 1500 AND 3000;

4.查询在1981年雇佣的全部雇员信息:

SELECT *

FROM emp

WHERE hiredate BETWEEN '01-1月-81' and '31-12月-81';

NULL判断查询

5.查询出所有领取佣金的雇员的完整信息:

实现一

SELECT *

FROM emp

WHERE comm IS NOT NULL;

实现二

SELECT *

FROM emp

WHERE NOT comm IS NULL;

6.查询出所有不领取佣金的雇员且这些雇员的基本工资大于2000:

SELECT *

FROM emp

WHERE (comm IS NULL) AND (sal>2000);

7.查询不收取佣金或收取佣金低于100的员工:

SELECT *

FROM emp

WHERE (comm IS NULL) OR (comm<100);

8.查询收取佣金的员工中的不同工作:

SELECT DISTINCT job

FROM emp

WHERE comm IS NOT NULL;

列表的范围查询:

1.查询出雇员编号是7369,7788,7566的雇员信息:

第一种表示方式:

SELECT *

FROM emp

WHERE empno=7369 OR empno=7788 OR empno=7566;

第二种表示方式:

SELECT *

FROM emp

WHERE empno IN (7369,7788,7566);

2.查询雇员编号不是7369,7788,7566的雇员信息:

SELECT *

FROM emp

WHERE NOT empno IN (7369,7788,7566 );

注:使用NOT IN操作是有一点需要注意,关于NULL的问题:如果现在使用的是IN操作判断的范围数据之中包含了null不会影响最终的查询结果;如果使用NOT IN,里面NULL,直接后果就是没有任何的数据显示(原因:使用NOT IN 或者 IN 其目只是显示部分内容,如果说下现在 有一列数据不可能为null, 并且NOT IN 里面判断null的条件满足了,那么就表示查询全部数据);

SELECT *

FROM emp

WHERE empno!=7369 AND empno!=7788 AND empno!=NULLl;

上述查询的另一种查询方式,注意由于NULL值不能参与比较运算符,导致条件不成立,查询不出来数据。

LIKE模糊查询:

语法:

满足模糊查询:字段|值LIKE 匹配标记;

不满足模糊查询:字段|值 NOT LIKE 匹配标记;

如果现在想对某一列进行模糊查询,可以使用LIKE子句完成, 通过LIKE 可以进行关键字的模糊查询, 在LIKE子句中有两个通配符:

百分号(%)可以匹配任意类型和长度的字符(可以代表0位,1位,2位等等), 如果是中文则使用两个百分号(%%);

下划线(-):匹配单个任意字符,它常用来限制包大师的字符长度;

注:如果模糊查询中不设置关键字,那么就是查询全部信息;

1.查询姓名是以S开头的全部雇员信息:

SELECT *

FROM emp

WHERE ename LIKE 'S%';

2.查询雇员姓名第二是M的全部雇员信息:

SELECT *

FROM emp

WHERE ename LIKE '_M%';

3.查询出姓名中任意位置包含“F”的雇员信息:

SELECT *

FROM emp

WHERE ename LIKE '%F%';

4.查询出雇员的姓名的长度为6的或者超过6位的:

SELECT *

FROM emp

WHERE ename LIKE '______%';

5.查询出雇员基本工资中包含1或者在81年雇佣的全部雇员:

SELECT *

FROM emp

WHERE sal LIKE '%1%' OR hiredate LIKE '%81%';

6.查询部门10中的全部经理,部门20中的所有办事员,既不是经理又不是办事员但其薪金大于或者等于2000的所有员工的详细资料,并且要求这些雇员的姓名之中包含有字母S或者字母K:

SELECT *

FROM emp

WHERE ((deptno=10 AND job='MANAGER') OR (deptno=20 AND job='CLERK') OR ((job NOT IN ('MANAGER','CLERK') AND

sal >= 2000))) AND (ename LIKE '%S%' OR ename LIKE '%K%');

相关TAG标签
上一篇:六月WEB安全技术专题——说说那些安全的事
下一篇:OSPF详解一之OSPF基础
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站