知识大全 MySQL中文参考手册-- 常用查询的例子
Posted 知
篇首语:成功需要付出代价,不成功需要付出更高的代价。。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 MySQL中文参考手册-- 常用查询的例子相关的知识,希望对你有一定的参考价值。
MySQL中文参考手册-- 常用查询的例子 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
下面是一些学习如何用MySQL解决一些常见问题的例子 一些例子使用数据库表 shop 包含某个商人的每篇文章(物品号)的价格 假定每个商人的每篇文章有一个单独的固定价格 那么(物品 商人)是记录的主键 你能这样创建例子数据库表 CREATE TABLE shop ( article INT( ) UNSIGNED ZEROFILL DEFAULT NOT NULL dealer CHAR( ) DEFAULT NOT NULL price DOUBLE( ) DEFAULT NOT NULL PRIMARY KEY(article dealer)); INSERT INTO shop VALUES ( A ) ( B ) ( A ) ( B ) ( C ) ( D ) ( D ); 好了 例子数据是这样的 SELECT * FROM shop + + + + | article | dealer | price | + + + + | | A | | | | B | | | | A | | | | B | | | | C | | | | D | | | | D | | + + + + 列的最大值 最大的物品号是什么? SELECT MAX(article) AS article FROM shop + + | article | + + | | + + 拥有某个列的最大值的行 找出最贵的文章的编号 商人和价格 在ANSI SQL中这很容易用一个子查询做到 SELECT article dealer price FROM shop WHERE price=(SELECT MAX(price) FROM shop) 在MySQL中(还没有子查询)就用 步做到 用一个SELECT语句从表中得到最大值 使用该值编出实际的查询 SELECT article dealer price FROM shop WHERE price= 另一个解决方案是按价格降序排序所有行并用MySQL特定LIMIT子句只得到的第一行 SELECT article dealer price FROM shop ORDER BY price DESC LIMIT 注意:如果有多个最贵的文章( 例如每个 ) LIMIT解决方案仅仅显示他们之一! 列的最大值 按组 只有值 每篇文章的最高的价格是什么? SELECT article MAX(price) AS price FROM shop GROUP BY article + + + | article | price | + + + | | | | | | | | | | | | + + + 拥有某个字段的组间最大值的行 对每篇文章 找出有最贵的价格的交易者 在ANSI SQL中 我可以用这样一个子查询做到 SELECT article dealer price FROM shop s WHERE price=(SELECT MAX(s price) FROM shop s WHERE s article = s article) 在MySQL中 最好是分几步做到 得到一个表(文章 maxprice) 见 拥有某个域的组间最大值的行 对每篇文章 得到对应于存储最大价格的行 这可以很容易用一个临时表做到 CREATE TEMPORARY TABLE tmp ( article INT( ) UNSIGNED ZEROFILL DEFAULT NOT NULL price DOUBLE( ) DEFAULT NOT NULL); LOCK TABLES article read; INSERT INTO tmp SELECT article MAX(price) FROM shop GROUP BY article; SELECT article dealer price FROM shop tmp WHERE shop article=tmp articel AND shop price=tmp price; UNLOCK TABLES; DROP TABLE tmp; 如果你不使用一个TEMPORARY表 你也必须锁定 tmp 表 它能一个单个查询做到吗? 是的 但是只有使用我称之为 MAX CONCAT诡计 的一个相当低效的诡计 SELECT article SUBSTRING( MAX( CONCAT(LPAD(price ) dealer) ) ) AS dealer +LEFT( MAX( CONCAT(LPAD(price ) dealer) ) ) AS price FROM shop GROUP BY article; + + + + | article | dealer | price | + + + + | | B | | | | A | | | | C | | | | D | | + + + + 最后例子当然能通过在客户程序中分割连结的列使它更有效一点 使用外键 不需要外键联结 个表 MySQL唯一不做的事情是CHECK以保证你使用的键确实在你正在引用表中存在 并且它不自动从有一个外键定义的表中删除行 如果你象平常那样使用你的键值 它将工作得很好! CREATE TABLE persons ( id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT name CHAR( ) NOT NULL PRIMARY KEY (id) ); CREATE TABLE shirts ( id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT style ENUM( t shirt polo dress ) NOT NULL color ENUM( red blue orange white black ) NOT NULL owner SMALLINT UNSIGNED NOT NULL REFERENCES persons PRIMARY KEY (id) ); INSERT INTO persons VALUES (NULL Antonio Paz ); INSERT INTO shirts VALUES (NULL polo blue LAST_INSERT_ID()) (NULL dress white LAST_INSERT_ID()) (NULL t shirt blue LAST_INSERT_ID()); INSERT INTO persons VALUES (NULL Lilliana Angelovska ); INSERT INTO shirts VALUES (NULL dress orange LAST_INSERT_ID()) (NULL polo red LAST_INSERT_ID()) (NULL dress blue LAST_INSERT_ID()) (NULL t shirt white LAST_INSERT_ID()); SELECT * FROM persons; + + + | id | name | + + + | | Antonio Paz | | | Lilliana Angelovska | + + + SELECT * FROM shirts; + + + + + | id | style | color | owner | + + + + + | | polo | blue | | | | dress | white | | | | t shirt | blue | | | | dress | orange | | | | polo | red | | | | dress | blue | | | | t shirt | white | | + + + + + SELECT s * FROM persons p shirts s WHERE p name LIKE Lilliana% AND s owner = p id AND lor <> white ; + + + + + | id | style | color | owner | + + + + + | | dress | orange | | | | polo | red | | | | dress | blue | | + + + + + cha138/Article/program/MySQL/201311/29382相关参考
MySQL中文参考手册---MySQL文件系统 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这
知识大全 MySQL中文参考手册---MySQL与标准的兼容性
MySQL中文参考手册---MySQL与标准的兼容性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 MySQL中文参考手册--- MySQL与标准的兼容性
MySQL中文参考手册---MySQL与标准的兼容性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
MySQL中文参考手册--创造并使用一个数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 既
从一个MySQL的例子来学习查询语句[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 
从一个MySQL的例子来学习查询语句[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 
从一个MySQL的例子来学习查询语句[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 
知识大全 OracleDataGuard常用维护命令参考手册
OracleDataGuard常用维护命令参考手册 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
MYSQL双机热备配置手册 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!MYSQL双机热备配置手册
Java代码 publicinterfaceIHello publicvoidhello(Stringname); Java代码 publicclassHelloImplimpleme