数据的基本查询

1. 准备数据

1.1. 查询数据


INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4002,‘photoshop设计基础‘,‘大众出版社‘,TO_DATE(‘2005-2-1‘,‘yyyy-mm-dd‘),46.50,‘刘晓静‘,‘1‘,9707,null);

INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4003,‘photoshop设计基础‘,‘大众出版社‘,TO_DATE(‘2005-2-1‘,‘yyyy-mm-dd‘),46.50,‘刘晓静‘,‘1‘,9707,null);

INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4004,‘photoshop设计基础‘,‘大众出版社‘,TO_DATE(‘2005-2-1‘,‘yyyy-mm-dd‘),46.50,‘刘晓静‘,‘0‘,null,null)

INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4005,‘数字图形处理‘,‘科学出版社‘,TO_DATE(‘2002-8-1‘,‘yyyy-mm-dd‘),56.40,‘王刚,赵明‘,‘1‘,9702,null);

INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4006,‘数字图形处理‘,‘科学出版社‘,TO_DATE(‘2002-8-1‘,‘yyyy-mm-dd‘),56.40,‘王刚,赵明‘,‘0‘,null,null);

INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4007,‘多媒体基础‘,‘科学出版社‘,TO_DATE(‘2006-1-1‘,‘yyyy-mm-dd‘),43.70,‘赵明‘,‘1‘,9702,null);

INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4008,‘VC网络基础‘,‘青年出版社‘,TO_DATE(‘2004-3-1‘,‘yyyy-mm-dd‘),28.00,‘孙朋‘,‘0‘,null,null);

INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4009,‘VC网络基础‘,‘青年出版社‘,TO_DATE(‘2004-3-1‘,‘yyyy-mm-dd‘),28.00,‘孙朋‘,‘1‘,9703,null);

INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4010,‘数据库设计‘,‘大众出版社‘,TO_DATE(‘2007-9-1‘,‘yyyy-mm-dd‘),76.00,‘王六‘,‘1‘,9705,null);

INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4011,‘通讯原理‘,‘科学出版社‘,TO_DATE(‘2001-6-1‘,‘yyyy-mm-dd‘),45.50,‘佟健刚‘,‘1‘,9704,null);

INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4012,‘VC数据库程开发基础‘,‘科学出版社‘,TO_DATE(‘2006-4-1‘,‘yyyy-mm-dd‘),54.00,‘刘明,孙朋‘,‘0‘,null,null);

INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4013,‘VC数据库程开发基础‘,‘科学出版社‘,TO_DATE(‘2006-4-1‘,‘yyyy-mm-dd‘),54.00,‘刘明,孙朋‘,‘1‘,9701,null);

INSERT INTO BOOKINFO(BOOKID,BOOKNAME,PUBLISH,PUBDATE,PRICE,AUTHOR,STORE,READER,REMARKS)

VALUES(4014,‘数据库原理‘,‘科学出版社‘,TO_DATE(‘2005-1-1‘,‘yyyy-mm-dd‘),38.50,‘高义‘,‘0‘,null,null);

1.2. 查询语句基础


语法:

SELECT

[DISTINCT]

Select_list

FROM table_name

[where_clause]

[group_by_clause]

[having condition]

[order_by_clause]

1.2.1. 查询关键字的顺序及功能


顺序序号


子句关键字


子句功能


1


SELECT


从指定表中取出指定列的数据


2


FROM


指定要查询要操作的表


3


WHERE


用来规定一种选择查询的标准


4


GROUP BY


对结果集进行分组,通常与聚合函数一起使用


5


HAVING


返回选取的结果集中行的数目


6


ORDER BY


指定分组的搜寻条件

1.3. 查询表中列的数据


SELECT * FROM BOOKINFO;

SELECT BOOKID,BOOKNAME,PUBLISH,PUBDATE FROM BOOKINFO;

--指定别名

SELECT BOOKID AS B_ID,BOOKNAME B_NAME,PUBLISH,PUBDATE FROM BOOKINFO;

1.4. 去除查询结果中的重复记录


语法:

SELECT DISTINCT select_list

FROM table_name;

SELECT DISTINCT(BOOKNAME),PUBLISH,PUBDATE FROM BOOKINFO;

1.4.1. distinct对NULL值得处理


如果表中有多个null的数据,服务器会把这些数据视为相等

SELECT DISTINCT(READER)FROM BOOKINFO;

1.5. 返回查询的部分数据(ROWNUM)


查询BOOKINFO表中前2行记录

SELECT BOOKNAME,PUBLISH,READER

FROM BOOKINFO

WHERE ROWNUM <3;

1.6. 单一条件查询


语法:

SELECT 列名1,列名2……

FROM 表名

WHERE 条件;

SELECT BOOKNAME,PUBLISH

FROM BOOKINFO

WHERE PUBLISH=‘科学出版社‘;

1.6.1. 查询中使用比较表达式


比较表达式


作用


=(等于)


<(小于)


>(大于)


<>(不小于)


<=(小于等于)


>=(大于等于)


!=(不等于)

1.6.2. 比较运算符


SELECT BOOKNAME,PUBLISH,PRICE

FROM BOOKINFO

WHERE PRICE>50;

1.6.3. 使用比较运算符比较字符


SELECT BOOKNAME,PUBLISH,AUTHOR

FROM BOOKINFO

WHERE BOOKNAME<=‘多媒体基础‘;

1.7. 使用简单逻辑表达式

1.7.1. AND运算符


AND运算符表示逻辑“与”的关系;当使用AND运算符组合两个逻辑表达式时,只有两个表达式均为TRUE时才返回TRUE;

SELECT BOOKNAME,PUBLISH,PUBDATE,STORE

FROM BOOKINFO

WHERE PUBLISH=‘科学出版社‘ AND STORE=‘1‘;

1.7.2. OR运算符


OR运算符实现逻辑“或”的运算关系,当使用OR运算符组合两个逻辑表达时,只要其中一个表达式的条件TRUE,结果便返回TRUE;

SELECT BOOKNAME,PUBLISH,PRICE

FROM BOOKINFO

WHERE PUBLISH=‘科学出版社‘ OR PRICE>50;

1.7.3. NOT运算符


NOT运算符实现逻辑“非”的运算关系,用于对搜集条件的逻辑求反;

SELECT BOOKNAME,PUBLISH

FROM BOOKINFO

WHERE NOT PUBLISH=‘大众出版社‘;

上面操作相当于下面操作:

SELECT BOOKNAME,PUBLISH

FROM BOOKINFO

WHERE  PUBLISH!=‘大众出版社‘;

1.7.3.1. NOT运算符对NULL值得处理


--要求在BOOKINFO表中查询编号不大于9704(包含没有读者)的所有图书记录;

--没有查出READER为NULL的数据,如果READER为NULL,READER>9704这个条件不成立;

SELECT BOOKNAME,PUBLISH,AUTHOR,STORE,READER

FROM BOOKINFO

WHERE NOT READER>9704;

--相当于

SELECT BOOKNAME,PUBLISH,AUTHOR,STORE,READER

FROM BOOKINFO

WHERE READER<=9704;

1.7.4. AND,OR,NOT的组合使用


当AND和OR同时出现时,出现下面的运算关系:NOT优先级最高,而后是AND,最后是OR

Condition1 OR  Condition2
AND Condition3

Condition1 OR (Condition2 AND Condition3)

SELECT BOOKNAME,PUBLISH,AUTHOR,PRICE,STORE,READER

FROM BOOKINFO

WHERE PUBLISH=‘青年出版社‘ OR PUBLISH=‘科学出版社‘

AND NOT PRICE>50;

--相当于

SELECT BOOKNAME,PUBLISH,AUTHOR,PRICE,STORE,READER

FROM BOOKINFO

WHERE (PUBLISH=‘青年出版社‘ OR PUBLISH=‘科学出版社‘)

AND NOT PRICE>50;

1.8. 有关NULL值的判断


语法:

判断一个值是否为NULL,采用IS [NOT] NULL判别式;

SELECT BOOKNAME,PUBLISH,PRICE,READER

FROM BOOKINFO

WHERE READER IS NOT NULL;

1.9.有关模糊查询


语法:

表达式 [NOT] LIKE 条件

LIKE子句结合通配符使用:

“_”可以替代一个字符;

“%”可以代替个数不确定的字符;

1.9.1. “_”通配符


SELECT BOOKNAME,PUBLISH,PRICE,READER

FROM BOOKINFO

WHERE BOOKNAME LIKE ‘通__理‘;

1.9.2. “%”通配符


“%”表示任意字符的匹配,且不计字符的多少;

SELECT BOOKNAME,PUBLISH,PRICE,READER

FROM BOOKINFO

WHERE PUBLISH LIKE ‘科学%‘;

1.10. 指定范围查询


语法:

表达式 [NOT] BETWEEN 表达式1 AND 表达式2

SELECT BOOKNAME,PUBLISH,PRICE,READER

FROM BOOKINFO

WHERE PRICE BETWEEN 35 AND 50;

--相当于

SELECT BOOKNAME,PUBLISH,PRICE,READER

FROM BOOKINFO

WHERE PRICE >=35 AND PRICE<=50;

--日期

SELECT BOOKNAME,PUBLISH,PRICE,READER,PUBDATE

FROM BOOKINFO

WHERE PUBDATE BETWEEN TO_DATE(‘2004-9-1‘,‘yyyy-mm-dd‘)
AND  TO_DATE(‘2007-9-1‘,‘yyyy-mm-dd‘);

1.11. 如何限制检索数据范围


语法:

表达式 [NOT] IN (表达式1,表达式2… …);

SELECT BOOKNAME,PUBLISH,PRICE,READER,PUBDATE

FROM BOOKINFO

WHERE READER
IN(9702,9705,9701);

--相当于

SELECT BOOKNAME,PUBLISH,PRICE,READER,PUBDATE

FROM BOOKINFO

WHERE READER=9702 OR
READER=9701 OR READER=9705;

1.12. 排序查询结果

1.12.1.基本排序


ORDER BY子句子句一定要放在所有子句的最后;

升序排序:ASC

降序排序:DESC

SELECT BOOKNAME,PUBLISH,PRICE,READER,PUBDATE

FROM BOOKINFO

WHERE READER IS NOT NULL

ORDER BY READER;

--使用NULLS LAST关键字将NULL值放到最后

SELECT BOOKNAME,PUBLISH,PRICE,READER,PUBDATE

FROM BOOKINFO

ORDER BY READER

NULLS LAST;

1.12.2. 多列排序


使用ORDER BY子句可以根据两列或多列的结果进行排序,只需要用逗号分隔不同的关键词即可;

SELECT BOOKNAME,PUBLISH,PRICE,READER,PUBDATE

FROM BOOKINFO

ORDER BY READER,PRICE ASC;

时间: 2024-11-05 20:30:19

数据的基本查询的相关文章

高级数据操作--子查询

一.子查询——标量子查询 子查询的概念 思考: 如何得到php_student表中成绩最高的学生的记录? 1 select * from php_student order by score desc limit 1; 但是,存在一个逻辑问题,如果最高分有很多人,怎么办! 1 insert into php_student values 2 (null,'观世音','female',17,5000,'南海',100), 3 (null,'如来','male',17,6000,'西天',100);

数据表格 - DataGrid - 查询

toolbar头部工具栏 <script type="text/javascript"> $(function () { $("#datagrid").datagrid({ url: "<%=homePage%>/testController/datagrid.ajax?type=list", title: "标题", iconCls: "icon-save", pagination

ExtJS 4.2 业务开发(二)数据展示和查询

本篇开始模拟一个船舶管理系统,提供查询.添加.修改船舶的功能,这里介绍其中的数据展示和查询功能. 目录 1. 数据展示 2. 数据查询 3. 在线演示 1. 数据展示 在这里我们将模拟一个船舶管理系统,并提供查询.添加.修改的功能. 大致的目录结构如下: ShipMgrTab.js :船舶业务的入口. controller 目录:存放船舶业务的逻辑控制文件. model 目录:存放船舶业务的model文件. store 目录 :存放船舶业务的store文件. view 目录 :存放船舶业务的组件

使用JDBC连接MySQL数据库--典型案例分析(八)----实现员工数据的分页查询

转载请注明:http://blog.csdn.net/uniquewonderq 问题: 使用JDBC连接Mysql数据库,实现对Emp表数据的分页查询功能. 方案: 对于较大的数据量,通常采用分页查询的方式.不同的数据库产品有不同的数据库级的分页查询策略.例如:Oracle通常使用rownum的方式:而Mysql使用limit的方式. Oracle采用rownum和子查询实现分页查询,SQL语句如下, select * from (select rownum rn,empno,ename,jo

[.NET] SQL数据总笔数查询

[.NET] SQL数据总笔数查询 程序下载 范例下载:点此下载 原始码下载:点此下载 NuGet封装:点此下载 数据查询 开发系统时,使用C#执行SQL查询指令,就可以从SQL数据库里查询所需数据. SELECT Id, Name FROM Users 数据总笔数查询 当数据量过多时,系统会需要采用分页的方式来分批取得数据,但在这之前需要先取得数据总笔数,来告知系统共有多少数据等待处理.这时可以改写原有的SQL查询指令,在其中加入COUNT(*),来计算查询结果的总笔数.(将查询指令改写为子查

查询一个月最后一天的总用户数,数据库中没有保存最好一天的数据,就查询本月数据库已存有的最后一天的数据

select total_user from a_user_no where date_time=(select max(date_time) from a_user_no  where '2013-05'+ "'=to_char(date_time,'yyyy-mm')); 通过max 函数来去5月份出现最大日期的数据 查询一个月最后一天的总用户数,数据库中没有保存最好一天的数据,就查询本月数据库已存有的最后一天的数据,布布扣,bubuko.com

DataTable利用内置函数过滤数据,用于查询

DataTable利用内置函数过滤数据,RowFilter用法,写法如下: ? string strName = string.Empty;//查询条件  string strSQL = string.Empty;//SQL  DataView datav = dt.DefaultView; //利用Defaultview  if (!string.IsNullOrEmpty(textBox1.Text.Trim()))  {      strName = textBox1.Text.Trim(

使用LinQ实现对数据对象的查询

因为项目需要,接触到了LinQ,经过一段时间的学习,对LinQ有了简单的认识,本文就这个话题做个简单的叙述. 首先,应该写出几个问题,从宏观上了解一下.LinQ是什么?为什么使用LinQ?使用它有什么好处? 语言集成查询(Language Intergrated Query),是一组用于C#和vb语言的扩展,它允许编写C#或者vb代码以查询数据库相同的方式操作内存数据.----百度百科 通俗点说,它就是查询数据的.那么为什么要用它来查询数据呢,使用它有什么有点吗? 我们从稍微抽象一点的角度来考虑

通过PHP调用天市数据的火车查询接口

前置条件 在开始前,请作如下准备 1.学会用PHP输出"Hello World" 2.去 天市数据 申请火车查询专用的KEY 操作步骤 1.配置好PHP开发环境 2.新建一个index.php文件,并输入以下内容: <?php require_once 'curl.func.php'; $appkey = 'your_appkey_here';//你在天市申请的appkey $start = '杭州';//utf8 $end = '北京';//utf8 $ishigh = 0;