2022年2022年管理信息系统数据库查询 .pdf
《2022年2022年管理信息系统数据库查询 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年管理信息系统数据库查询 .pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 数据查询在关系数据库中查询数据时,只需执行一个SQL 查询语句,通过各种查询条件,就可以得到一个从数据库中返回的查询结果,这个查询结果的内容来自该数据库中的一张或几张表。数据查询是SQL 语言的主要功能之一。基本查询语句完整的 SQL 查询语句为:SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HA VING ORDER BY AORDERS | DEORDERS SELECT 语句根据WHERE 子句的查找条件表达式,通过匹配从FROM 子句指定的基本表或视图中找出满足条件的记录,再按照选择字段表,返回相应的字段值形成结果集。结果集中的一条条记录有
2、时也被形象地称为“ 行” 。GROUP BY 子句将结果按BY 后的 进行分组。如果 HAVING 子句 中包含聚合函数,则计算每组的汇总值。如果 GROUP 子句带 HAVING 短语,则只有满足指定条件的组才会输出。ORDER BY 子句将结果集中的数据按升序或降序排列。(1) 简单查询简单查询语句为:SELECT FROM WHERE 简单的 SQL 查询只包括 、FROM 子句和WHERE 子句,分别说明需查询的字段、查询的表或视图以及查找条件等。SELECT 子句中的 可以是由一组字段、星号、表达式或变量(包括局部变量和全局变量)构成。【例 1】从客户情况表中查询所有客户的客户编号、
3、客户姓名。SELECT CNO, CNAME, CSEX , CAGE , CRANK , CTEL FROM CUSTOMERS 该查询为无条件查询,查询语句中只使用SELECT 、FROM子句,查询结果是CUSTOMERS 表中指定字段表的所有值。例 1的 查询结果CNO CNAME CSEX CAGE CRANK CTEL50000 梁亮男26 注册会员8008801001 50001 吴丹女28 VIP 会员NULL50002 张艳女21 普通会员8008801013 50003 刘杰男31 注册会员NULL50004 袁玲女29 注册会员8008801056 50005 王芳女25
4、VIP 会员NULL 50006 张涛男33 普通会员8008801092 50007 王伟男35 金卡会员NULL名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 28 页 - - - - - - - - - 2 如果 写为 *,则会返回表中所有的字段。例 2 的查询结果【例 2】查询全体客户的详细订单表。SELECT * FROM ORDERS CNO PNO OTEL OADD OQUANT 50001 200002 8008808001 北京市朝阳区光华路599 号
5、2 50001 200004 8008808021 北京市海淀区增光路282 号1 50002 200001 8008808032 北京市朝阳区十里堡路128 号1 50003 200002 8008808035 北京市宣武区虎坊桥路295 号2 50004 200005 8008808096 北京市西城区德外大街682 号2 50005 200005 8008808122 北京市宣武区燕家胡同37 号1 50006 200007 8008808078 北京市朝阳区光华路126 号1 50007 200002 8008808062 北京市朝阳区八里庄北里986 号2 【例 3】更改商品表PRO
6、DUCTS 商品编号 PDESC 为 “ 描述 ” 。SELECT PNO , PNAME, PCNO , PRICE , 描述 =PDESC FROM PRODUCTS 如果指定的字段名不是标准的标识符格式时,应使用引号定界符。另外,选择字段表的表达式还可以是一个计算表达式,通过计算得到用户所需要的数据。例3的查询结果PNO PNAME PCNO PRICE 描述200001 迷你小闹钟1003 15.5 可爱牌 |产地上海200002 计算机安全学1001 60.2 机械工业出版社2005 年版200003 IP 电话卡1002 25.5 价值 100 元200004 数据库原理1001
7、30 机械工业出版社2006 年版200005 泛函分析1001 20.5 共328 页200006 甜甜奶粉1004 155 100% 新西兰原料200007 手机充值卡1002 40 价值 50 元200008 胡萝卜米粉1004 32 100% 进口原料名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 28 页 - - - - - - - - - 3 【例 4】查询客户的出生年份。SELECT CNAME, CSEX, 出生年份= 2006-CAGE FROM CUS
8、TOMERS WHERE CSEX= 女 其中: 出生年份 不是原表的字段名,需加上引号,用来指明其字段名称。而2006-CAGE 则为计算表达式,用来计算客户的出生年份。例4的查询结果CNAME CSEX 出生年份吴丹女1978 张艳女1985 袁玲女1977 王芳女1981 SELECT 子句中有两个可选参数ALL 和DISTINCT 。DISTINCT 返回的查询结果会删除其中的重复项,而使用ALL 不会删除重复项,仅仅将重复项分开显示。ALL 是默认的参数选项。【例 5】执行语句SELECT PCNO FROM PRODUCTS WHERE PNO200005 默认为ALL,查询结果见
9、表。如果想删除返回表中的重复项,则需将执行语句改为SELECT DISTINCT PCNO FROM PRODUCTS WHERE PNO200005 加了 “ DISTINCT ” 关键字的查询结果见表。带ALL 属性的查询结果PCNO1003 1001 1002 1001 带DISTINCT 属性的查询结果PCNO 1001 1002 1003 【例 6】在客户情况表 CUSTOMERS 和订单表 ORDERS 中都存在客户编号CNO 字段,在查询两个表中的CNO 时应使用下面语句格式加以限定:SELECT CNAME, CUSTOMERS.CNO, PNO FROM CUSTOMERS,
10、 ORDERS WHERE CUSTOMERS.CNO=ORDERS.CNO 用 .这种格式可以区分不同表中的同名字段。CUSTOMERS .CNO 表示CUSTOMERS 表中的 CNO 字段,ORDERS .CNO 则表示 ORDERS 表中的 CNO 字段,通过这种办法就可以将两个属于不同表的相同字段分开。FROM 子句还可以为基本表或视图指定别名。用法为:FROM as, 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 28 页 - - - - - - - - -
11、 4 【例 7】将例 6中的语句用表的别名格式表示。SELECT CNAME, First.CNO FROM CUSTOMERS as First, ORDERS as Second WHERE First.CNO=Second.CNO 例6的查询结果CNAME CNO PNO吴丹50001 200002 吴丹50001 200004 张艳50002 200001 刘杰50003 200002 袁玲50004 200005 王芳50005 200005 张涛50006 200007 王伟50007 200002 CNAME CNO 吴丹50001 吴丹50001 张艳50002 刘杰50003
12、 袁玲50004 王芳50005 张涛50006 王伟50007 例7的查询结果WHERE 子句可包括各种条件运算符。WHERE 子句中的条件运算符名称功能说明运算符比较运算符大小比较、= 、=、=、!、! 范围运算符表达式值是否在指定的范围BETWEEN AND NOT BETWEENAND 字段表运算符判断表达式是否为字段表中的指定项IN 、NOT IN模式匹配符判断值是否与指定的字符通配格式相符LIKE 、NOT LIKE空值判断符判断表达式是否为空IS NULL 、 IS NOT NULL逻辑运算符用于多条件的逻辑连接NOT 、AND 、OR名师资料总结 - - -精品资料欢迎下载 -
13、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 28 页 - - - - - - - - - 5 【例 8】查询所有 28 岁的客户姓名。SELECT CNAME FROM CUSTOMERS WHERE CAGE=28 查询结果仅包含一条记录:“ 吴丹 ” 。【例 9】查询所有不是“ VIP 会员 ” 的客户信息。SELECT * FROM CUSTOMERS WHERE CRANKVIP 会员 例9的查询结果CNOCNAMECSEXCAGECRANKCTEL50000梁亮男26注册会员8008801001500
14、02张艳女21普通会员800880101350003刘杰男31注册会员NULL50004袁玲女29注册会员800880105650006张涛男33普通会员800880109250007王伟男35金牌会员NULL注意: WHERE 子句的查询条件里的不等于符号为,而不是 != 。【例 10】查询所有价格低于30 元的商品的编号、名称和价格。SELECT PNO, PNAME, PRICE FROM PRODUCTS WHERE PRICE30 【例 11】查询所有年龄小于27 岁的客户编号、姓名和年龄。SELECT CNO, CNAME, CAGE FROM CUSTOMERS WHERE CA
15、GE27 例10的查询结果PNOPNAMEPRICE200001迷你小闹钟15.50200003IP电话卡25.50200005泛函分析20.50例11的查询结果CNOCNAMECAGE50000梁亮2650002张艳2150005王芳25名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 28 页 - - - - - - - - - 6 【例 12】查询所有年龄在26 岁与 31 岁 (包括 26 岁和31 岁)之间的客户的姓名、年龄、性别SELECT CNAME, CAG
16、E, CSEX FROM CUSTOMERS WHERE CAGE BETWEEN 26 AND 31 例12的查询结果例13的查询结果CNAMECAGECSEX梁亮26男吴丹28女刘杰31男袁玲29女CNOCNAMECRANK50001吴丹VIP会员50002张艳普通会员50005王芳普通会员50006张涛VIP会员【例 13】查询 “ VIP 会员 ” 、“ 普通会员 ” 的客户编号、姓名和会员类别。SELECT CNO, CNAME, CRANK FROM CUSTOMERS WHERE CRANK IN (VIP 会员,普通会员) IN 后面跟的是一个字段表,用户只需定义字段表的内容就
17、可以得到自己所需的查找内容。【例 14】查询所有商品分类编号为“1001”、“1002”的商品的编号、名称和分类号。SELECT PNO, PNAME, PCNO FROM PRODUCTS WHERE PCNO IN(1001, 1002) NOT IN 的功能与 IN 相反,用于用户查找不属于指定字段表的内容。例14的查询结果例15的查询结果PNOPNAMEPCNO200002计算机安全学1001200003IP电话卡1002200004数据库原理1001200005泛函分析1001200007手机充值卡1002CNOCNAMECRANK50000梁亮注册会员50003刘杰注册会员5000
18、4袁玲注册会员50007王伟金牌会员名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 28 页 - - - - - - - - - 7 正则表达式:用于匹配的匹配串可以是一个含有合法符号的字符串如:“ abcd” ,也可以是含有通配符的字符串。百分号“% ” 可匹配任意类型和长度的字符,其长度也可以为0。如: c%e 表示以c 开头,以e 结尾的任意长度的字符串,“ come” ,“ cope” ,“ combe” 等都满足该匹配。下划线 “ _”匹配单个任意字符,常用来限
19、制表达式的字符长度。如:1_2 表示以 1 开头,以 2 结尾的长度为3 的任意字符串。如“1 a2” ,“132”等。方括号 “ ”要求匹配的对象为方括号内中的字符或字符串。如:a-f或集合 abcdef)都可以表示从a 到 f 之间的任何一个字符。“ ”的使用与 “ ”相同,不过它要求所匹配对象为指定字符以外的任一个字符。如“ A%” 表示除 “ A” 以外的字符【例 15】查询所有非 “ VIP 会员 ” 、“ 普通会员 ” 的客户编号、姓名和会员类别。SELECT CNO, CNAME, CRANK FROM CUSTOMERS WHERE CRANK NOT IN (VIP 会员,
20、普通会员) 模式运算符判断字段值是否与指定的字符串格式相匹配,可用于CHAR 、VARCHAR 、TEXT 、 NTEXT 、DATETIME 和 SMALLDATETIME 等类型查询。【例 16】查询客户编号为“50001”的客户的详细情况。SELECT * FROM CUSTOMERS WHERE CNO LIKE 50001 例16的查询结果CNOCNAMECSEXCAGECRANKCTEL50001吴丹女28VIP会员 NULL【例 17】查询所有编号以“500”开头的客户的姓名和编号。SELECT CNO, CNAME FROM CUSTOMERS 例17的查询结果CNAMECNO
21、梁亮50000吴丹50001张艳50002刘杰50003袁玲50004王芳50005张涛50006王伟50007名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 28 页 - - - - - - - - - 8 例18的查询结果CNOCNAME50005王芳50007王伟【例 18】查询所有姓 “ 王” 的客户且全名为两个字符的客户姓名。SELECT CNO, CNAME FROM CUSTOMERS WHERE CNAME LIKE 王_ 例19的查询结果PNOPNAME
22、200002计算机安全学200007手机充值卡【例 19】查询商品名称含有“ 机 ” 的商品名称。SELECT PNO, PNAME FROM PRODUCTS WHERE PNAME LIKE %机% 【例 20】查询所有姓 “ 梁张刘 ” 的客户的姓名和编号。SELECT CNO, CNAME FROM CUSTOMERS WHERE CNAME LIKE 梁张刘% 【例 21】查询所有不姓王的客户的姓名和编号。SELECT CNO, CNAME FROM CUSTOMERS WHERE CNAME LIKE 王% 该查询还可以写为:SELECT CNO, CNAME FROM CUSTO
23、MERS WHERE CNAME NOT LIKE 王% 例20的查询结果例21的查询结果CNOCNAME50000梁亮50002张艳50003刘杰50006张涛CNOCNAME50000梁亮50001吴丹50002张艳50003刘杰50006张涛如果用户要查询的数据项中本身就含有“% ”,由于 “% ”是通配符,所以需要使用ECSAPE 短语。【例 22】查询商品描述中有“% ” 及“ 出版社 ” 的商品名称和商品描述。SELECT PNAME,PDESC FROM PRODUCTS WHERE PDESC LIKE %!%出版社% ESCAPE ! 表达式中的 ! 为换码字符,其作用是使!
24、 后面的字符 % 不再具有通配符的含义,而是转义为普通字符。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 28 页 - - - - - - - - - 9 例22的查询结果PNAMEPDESC计算机安全学机械工业出版社2005年版数据库原理机械工业出版社2006年版甜甜奶粉100%新西兰原料胡萝卜米粉100%进口原料空值判断符用来判断表达式是否为空,在数据库中如果某一数据项下没有输入数据,那么它的值将记为空 (IS NULL )。【例 23】查询所有登记了联系电话的客户
25、的编号、姓名和电话。SELECT CNO, CNAME, CTEL FROM CUSTOMERS WHERE CTEL IS NOT NULL 例23的查询结果CNOCNAMECTEL50000梁亮8008801001 50002张艳8008801013 50004袁玲8008801056 50006张涛8008801092 逻辑运算符用于多条件的逻辑连接。其优先级由高到低为:NOT,AND,OR,但用户可以使用括号来改变优先级。【例 24】查询年龄在 30 岁以下的女性客户姓名、性别和年龄。SELECT CNAME, CSEX, CAGE FROM CUSTOMERS WHERE CSEX=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年管理信息系统数据库查询 2022 管理信息系统 数据库 查询
限制150内