博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL 批量模式
阅读量:5924 次
发布时间:2019-06-19

本文共 2986 字,大约阅读时间需要 9 分钟。

  hot3.png

Peter
什么是批量模式
•从文件中读取标准SQL 命令
•通过交互模式进行询问
•为什么需要使用批量模式
–重复进行相同询问
–可以通过管道, 详细查询返回结果
–可以把查询结果输出到文件中
–可以很方便把脚本分配给其他用户
–cron job
以批量模式建立表单
•mysql>CREATE TABLE my_address ( first_name varchar(20), last_name varchar(20), email varchar(50), birth DATE )
•批量模式建立方法
CREATE TABLE my_address
(
first_name varchar(20) NOT NULL,
last_name varchar(20) NOT NULL,
email varchar(50) NULL,
birth DATE DEFAUTL “1970-01-01”
)
批量模式查询
•mysql>SELECT pet.name, pet.species, pet.sex,
->event.type, event.remark
-> FROM pet, event
-> WHERE pet.name = event.name AND
-> ( pet.name=“Fluffy”or pet.name=“Buffy”);
•制作批量模式
SELECT pet.name, pet.species, pet.sex, event.type, event.remark
FROM pet, event
WHERE pet.name = event.name AND ( pet.name=“Fluffy”or pet.name=“Buffy”);
使用批量模式
•shell 下的批量模式
shell> mysql -h host -p root my_db < create_table.sql
shell> mysql -h host -p root my_db < query_table.sql
•shell 下得返回结果与mysql 下的返回结果略有区别
•使用-t 参数可以得到mysql 下的相同结果
•mysql 下的批量模式
mysql> source /query_table.sql
mysql> \. /query_table.sql
常用计算
•目标: 用于比较当前数据库中商品价格
•建立商品数据库
mysql> CREATE TABLE shop (
-> article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
-> dealer CHAR(20) DEFAULT '' NOT NULL,
-> price DOUBLE(16,2) DEFAULT '0.00' NOT NULL,
-> PRIMARY KEY(article, dealer));
一般操作
•插入数据并进行普通查询
mysql> INSERT INTO shop VALUES
-> (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
-> (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
•验证数据
mysql>SELECT * FROM shop;
得到当前表单最大值
•目标一: 得到当前表单最大值
mysql> SELECT MAX(article) AS article FROM shop;
•AS 作为表单数据输出COLUMN 标题重命名
高级应用(例一)
•要得到当前最大值的详细信息, 如最贵的商品
mysql> SELECT article, dealer, price FROM shop WHERE price=(SELECT MAX(price) FROM shop);
# 注意, 只能够在4.1 版本后使用
高级应用(例二)
•要得到当前最大值的详细信息, 如最贵的商品
•MySQL 4.1 前可以通过两步完成
第一步:
mysql> SELECT MAX(price) FROM shop;
第二步
mysql> SELECT article, dealer, price
-> FROM shop
-> WHERE price=19.95;
高级应用(例三)
•要得到当前最大值的详细信息, 如最贵的商品
mysql> SELECT article, dealer, price FROM shop ORDER BY price DESC LIMIT 1;
•缺点: LIMIT 只能够返回一个值, 存在多个价钱相同的商品的时候只会返回一个
高级应用(例四)
•目的: 查询每种货物价钱最贵的商品
•mysql> SELECT article, MAX(price) AS price FROM shop GROUP BY article;
高级应用(例五)
•使用组比较,得到最大值, 并同时输出其他信息
mysql> SELECT article, dealer, price FROM shop s1 WHERE price=(SELECT MAX(s2.price) FROM shop s2 WHERE s1.article = s2.article);
•# 这个方法只能够用于MySQL 4.1 或以后版本
高级应用(例六)
•针对MySQL 4.1 之前版本的解决方法:
•第一步,得到产品最大价钱配对
•第二步,为每个产品获得相对应行,获得最大值
mysql> CREATE TEMPORARY TABLE tmp (
article INT(4) UNSIGNED ZEROFILL
DEFAULT '0000' NOT NULL,
price DOUBLE(16,2) DEFAULT '0.00' NOT NULL);
mysql> LOCK TABLES shop READ;
高级应用(例六续)
mysql> INSERT INTO tmp SELECT article, MAX(price) FROM shop GROUP BY article;
mysql>SELECT shop.article, dealer, shop.price FROM shop, tmp WHERE shop.article=tmp.article AND shop.price=tmp.price;
mysql> UNLOCK TABLES;
Mysql> DROP TABLE tmp;
高级应用(变量使用)
•特别的例子方法:
•变量的使用
mysql> SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop;
mysql> SELECT * FROM shop WHERE price=@min_price OR price=@max_price;

                                           

转载于:https://my.oschina.net/u/856019/blog/110562

你可能感兴趣的文章
[C puzzle book] Programming styles
查看>>
Javascript&Jquery获取浏览器和屏幕各种高度宽度方法总结及运用
查看>>
js懒加载
查看>>
小波变换 完美通俗解读【转载】
查看>>
python练习---校园管理系统
查看>>
小程序简介
查看>>
表格行的偶数与奇数
查看>>
基础数据类型之列表,元组
查看>>
1124 Raffle for Weibo Followers
查看>>
如何对文献进行阅读与整理
查看>>
GsonFormat插件
查看>>
SharePoint Portal Server 2003深入指南(部分章节--转)1
查看>>
织梦dedecms标签大全总结
查看>>
中文词频统计及词云制作
查看>>
基础知识(14)- 多线程
查看>>
javascript中break和continue
查看>>
使用maven创建web项目【转】
查看>>
ASP.NET状态管理之十一(总结)
查看>>
年初离职潮的思考
查看>>
C语言 位移 速度 时间 Demo
查看>>