ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:20.61KB ,
资源ID:6274791      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6274791.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MySQL数据查询.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MySQL数据查询.docx

1、MySQL数据查询.0.Mysql查询数据本章所用到的数据表/*顾客表*/CREATE TABLE customers( c_id int NOT NULL AUTO_INCREMENT, c_name char(50) NOT NULL, c_address char(50) NULL, c_city char(50) NULL, c_zip char(10) NULL, c_contact char(50) NULL, c_email char(255) NULL, PRIMARY KEY (c_id);/*水果表*/*供货方表*/CREATE TABLE fruits( f_id cha

2、r(10) NOT NULL, s_id INT NOT NULL, f_name char(255) NOT NULL, f_price decimal(8,2) NOT NULL, PRIMARY KEY(f_id) ;CREATE TABLE suppliers( s_id int NOT NULL AUTO_INCREMENT, s_name char(50) NOT NULL, s_city char(50) NULL, s_zip char(10) NULL, s_call CHAR(50) NOT NULL, PRIMARY KEY (s_id) ;/*订单明细表*/CREATE

3、 TABLE orderitems( o_num int NOT NULL, o_item int NOT NULL, f_id char(10) NOT NULL, quantity int NOT NULL, item_price decimal(8,2) NOT NULL, PRIMARY KEY (o_num,o_item) ;/*订单表*/CREATE TABLE orders( o_num int NOT NULL AUTO_INCREMENT, o_date datetime NOT NULL, c_id int NOT NULL, PRIMARY KEY (o_num) ;/*

4、-插入数据-*/INSERT INTO customers(c_id, c_name, c_address, c_city, c_zip, c_contact, c_email) VALUES(10001, RedHook, 200 Street , Tianjin, 300000, LiMing, LMing),(10002, Stars, 333 Fromage Lane, Dalian, 116000, Zhangbo,Jerry),(10003, Netbhood, 1 Sunny Place, Qingdao, 266000, LuoCong, NULL),(10004, JOTO,

5、 829 Riverside Drive, Haikou, 570000, YangShan, sam);INSERT INTO fruits (f_id, s_id, f_name, f_price)VALUES(a1, 101,apple,5.2),(b1,101,blackberry, 10.2),(bs1,102,orange, 11.2),(bs2,105,melon,8.2),(t1,102,banana, 10.3),(t2,102,grape, 5.3), (o2,103,coconut, 9.2),(c0,101,cherry, 3.2),(a2,103, apricot,2

6、.2),(l2,104,lemon, 6.4),(b2,104,berry, 7.6),(m1,106,mango, 15.6),(m2,105,xbabay, 2.6),(t4,107,xbababa, 3.6),(m3,105,xxtt, 11.6),(b5,107,xxxx, 3.6);INSERT INTO suppliers(s_id, s_name,s_city, s_zip, s_call)VALUES(101,FastFruit Inc.,Tianjin,300000,48075),(102,LT Supplies,Chongqing,400000,44333),(103,AC

7、ME,Shanghai,200000,90046),(104,FNK Inc.,Zhongshan,528437,11111),(105,Good Set,Taiyuang,030000, 22222),(106,Just Eat Ours,Beijing,010, 45678),(107,DK Inc.,Zhengzhou,450000, 33332);INSERT INTO orderitems(o_num, o_item, f_id, quantity, item_price)VALUES(30001, 1, a1, 10, 5.2),(30001, 2, b2, 3, 7.6),(30

8、001, 3, bs1, 5, 11.2),(30001, 4, bs2, 15, 9.2),(30002, 1, b3, 2, 20.0),(30003, 1, c0, 100, 10),(30004, 1, o2, 50, 2.50),(30005, 1, c0, 5, 10),(30005, 2, b1, 10, 8.99),(30005, 3, a2, 10, 2.2),(30005, 4, m1, 5, 14.99);INSERT INTO orders(o_num, o_date, c_id)VALUES(30001, 2008-09-01, 10001),(30002, 2008

9、-09-12, 10003),(30003, 2008-09-30, 10004),(30004, 2008-10-03, 10005),(30005, 2008-10-08, 10001);单表查询查询所有字段 查询指定字段【例7.1】从fruits表中检索所有字段的数据SELECT * FROM fruits;SELECT f_id, s_id ,f_name, f_price FROM fruits;查询单个字段【例7.2】查询当前表中f_name列所有水果名称,输入如下语句:SELECT f_name FROM fruits;查询多个字段【例7.3】例如,从fruits表中获取f_na

10、me和f_price两列,输入如下语句:SELECT f_name, f_price FROM fruits;查询指定记录【例7.4】查询价格为10.2元的水果的名称,输入如下语句:SELECT f_name, f_price FROM fruits WHERE f_price = 10.2;1【例7.5】查找名称为“apple”的水果的价格,输入如下语句:SELECT f_name, f_price FROM fruits WHERE f_name = apple;【例7.6】查询价格小于10的水果的名称,输入如下语句:SELECT f_name, f_price FROM fruits W

11、HERE f_price =5;【例7.18】在fruits表中查询s_id = 101或者102,并且f_price大于5,并且f_name=apple的记录价格和名称SELECT f_id, f_price, f_name FROM fruits WHERE s_id IN(101, 102) AND f_price = 5 AND f_name = apple;带OR的多条件查询In(M,N)M和NAnd 和,且【例7.19】查询s_id=101或者s_id=102的水果供应商的f_price和f_name,SQL语句如下:SELECT s_id,f_name, f_price FROM

12、 fruits WHERE s_id = 101 OR s_id = 102;(不能写为=101,102 或者=101or 102(只求了101))【例7.20】查询s_id=101或者s_id=102的水果供应商的f_price和f_nameSELECT s_id,f_name, f_price FROM fruits WHERE s_id IN(101,102);查询结果不重复 使用distinct 语法:select distinct 字段名 from 表名【例7.21】查询fruits表中s_id字段的值,并返回s_id字段值不得重复SELECT DISTINCT s_id FROM

13、fruits;对查询结果进行排序 order by 默认按升序来排序 即ASCOrder by 子节段(ASC)/DESCOrder by 子节段1,字节段2.。单列排序【例7.22】查询fruits表的f_name字段值,并对其进行排序select f_name from fruits ORDER BY f_name;多列排序【例7.23】查询fruits表中的f_name和f_price字段,先按f_name排序,再按f_price排序SELECT f_name, f_price FROM fruits ORDER BY f_name, f_price;备注: 先按照字段1进行排序,如果字

14、段1中的值有相等,那么相等的这些数据将按照字段2,在进行排序. 如果第一列数据中所有的值都是唯一的(值均不相等),将不再对第二列进行排序.【例7.24】查询fruits表中的f_name和f_price字段,对结果按f_price降序方式排序SELECT f_name, f_price FROM fruits ORDER BY f_price DESC;指定排序的方向 ASC 升序, DESC 降序【例7.25】查询fruits表,先按f_price降序排序,再按f_name字段升序排序,SQL语句如下:SELECT f_price, f_name FROM fruits ORDER BY f

15、_price DESC, f_name;分组查询:group by关键字通常和集合函数一起使用例如:max(),min(),count(),sun() ,avg()每一个水果供应商提供多种水果,根据水果供应商分组使用count可以查看水果供应商供应的水果种类数【例7.26】根据s_id对fruits表中的数据进行分组SELECT s_id, COUNT(*) AS Total FROM fruits GROUP BY s_id;group_concat()可以将分组的子元素查看出来【例7.27】根据s_id对fruits表中的数据进行分组,将每个供应商的水果名称显示出来SELECT s_id,

16、 GROUP_CONCAT(f_name) AS Names FROM fruits GROUP BY s_id;having条件过滤【例7.28】根据s_id对fruits表中的数据进行分组,并显示水果种类大于1的分组信息SELECT s_id, GROUP_CONCAT(f_name) AS Names FROM fruits GROUP BY s_id HAVING COUNT(f_name) 1;多字段分组,与多字段排序相同,先按照字段1分组,组中再按照字段2分组.【例7.30】根据s_id和f_name字段对fruits表中的数据进行分组, SQL语句如下,SELECT * from

17、 fruits group by s_id,f_name;group by 和order by 一起使用o_num订单号,订单价格【例7.31】查询总订单价格大于100的订单号和总订单价格SELECT o_num, SUM(quantity * item_price) AS orderTotalFROM orderitemsGROUP BY o_numHAVING SUM(quantity*item_price) = 100;使用limit限制查询结果的数量limit 位置偏移量,行数 位置偏移量即从哪行开始显示【例7.32】显示fruits表查询结果的前4行,输入如下语句:SELECT *

18、From fruits LIMIT 4;记录从0开始【例7.33】在fruits 表中,使用LIMIT子句,返回从第5个记录开始的,行数长度为3的记录SELECT * From fruits LIMIT 4, 3;使用集合函数查询Select 集合函数(目的)(as 新名称) from 表明Count() 求某列的总行数Sum() 求和Avg() 求平均数Max() 求最大值Min() 求最小值count()函数 返回某一列的行总数【例7.34】查询customers表中总的行数SELECT COUNT(*) AS cust_num from customers;【例7.35】查询custom

19、ers表中有电子邮箱的顾客的总数,输入如下语句:SELECT COUNT(c_email) AS email_numFROM customers;【例7.36】在orderitems表中,使用COUNT()函数统计不同订单号中订购的水果种类SELECT o_num, COUNT(f_id) FROM orderitems GROUP BY o_num;sum()求和函数【例7.37】在orderitems表中查询30005号订单一共购买的水果总量,输入如下语句:SELECT SUM(quantity) AS items_totalFROM orderitemsWHERE o_num = 300

20、05;【例7.38】在orderitems表中,使用SUM()函数统计不同订单号中订购的水果总量SELECT o_num, SUM(quantity) AS items_totalFROM orderitemsGROUP BY o_num;avg()平均值函数【例7.39】在fruits表中,查询s_id=103的供应商的水果价格的平均值,SQL语句如下:SELECT AVG(f_price) AS avg_priceFROM fruitsWHERE s_id = 103;【例7.40】在fruits表中,查询每一个供应商的水果价格的平均值,SQL语句如下:SELECT s_id,AVG(f_

21、price) AS avg_priceFROM fruitsGROUP BY s_id;max()最大值【例7.41】在fruits表中查找市场上价格最高的水果,SQL语句如下:mysqlSELECT MAX(f_price) AS max_price FROM fruits;【例7.42】在fruits表中查找不同供应商提供的价格最高的水果SELECT s_id, MAX(f_price) AS max_priceFROM fruitsGROUP BY s_id;【例7.43】在fruits表中查找f_name的最大值,SQL语句如下SELECT MAX(f_name) from fruit

22、s;min()最小值【例7.44】在fruits表中查找市场上价格最低的水果,SQL语句如下:mysqlSELECT MIN(f_price) AS min_price FROM fruits;【例7.45】在fruits表中查找不同供应商提供的价格最低的水果SELECT s_id, MIN(f_price) AS min_priceFROM fruitsGROUP BY s_id;子查询定义两个表tb11和tb12CREATE table tb11 ( num1 INT NOT NULL);CREATE table tb12 ( num2 INT NOT NULL);向两个表中插入数据,IN

23、SERT INTO tb11 values(1), (5), (13), (27);INSERT INTO tb12 values(6), (14), (11), (20);使用any ,some关键字的子查询 同义词Any(只要有,就可以) all(满足所有要求)【例7.53】返回tb12表的所有 num2 列,然后将 tbl1 中的 num1 的值与之进行比较,只要大于 num2的任何值为符合查询条件的结果。SELECT num1 FROM tb11 WHERE num1 ANY (SELECT num2 FROM tb12);带All关键字的子查询【例7.54】返回tbl1表的中比tbl

24、2表num2 列所有值都大的值SELECT num1 FROM tb11 WHERE num1 ALL (SELECT num2 FROM tb12);带exists 关键字的子查询: exists 后的sql语句的结果不为空时,执行exists前的查询【例7.55】查询表suppliers表中是否存在s_id=107的供应商,如果存在则查询fruits表中的记录SELECT * from fruitsWHERE EXISTS(SELECT s_name FROM suppliers WHERE s_id = 107);【例7.56】查询表suppliers表中是否存在s_id=107的供应商

25、,如果存在则查询fruits表中的f_price大于10.20的记录SELECT * from fruitsWHERE f_price10.20 AND EXISTS(SELECT s_name FROM suppliers WHERE s_id = 107);【例7.57】查询表suppliers表中是否存在s_id=107的供应商,如果不存在则查询fruits表中的记录SELECT * from fruitsWHERE NOT EXISTS(SELECT s_name FROM suppliers WHERE s_id = 107);带in关键字的子查询【例7.58】在orderitems表中查询订购f_id为c0的订单号,并根据订单号查询具有订单号的客户c_idSELECT c_id FROM orders WHERE o_num IN(SELECT o_num FROM orderitems WHERE f_id = c0);【例7.59】与前一个例子语句类似,但是在SELECT语句中使用NOT IN操作符SELECT c_id FROM orders WHERE o_n

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1