MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
一、检索单个列
在数据库example中建了一个名为products的表。如下图所示:
利用select语句从products表中检索一个名为prod_name的列。所需的列名在select关键字之后给出,from关键字指出从其中检索数据的表名。
select prod_name from products;
此语句的输出如下图所示:
注:SQL语句不区分大小写,因此SELECT和select是相同的。同样,写成Select也没有关系。许多SQL开发人员喜欢对所有的SQL关键字使用大写,而对所有的列和表名使用小写,这样代码更容易阅读和调试。
二、检索多个列
要想从一个表中检索多个列,使用相同的SELECT语句。唯一不同的是必须在SELECT关键字后给出多个列名,列名之间必须用逗号分隔。但是最后一个列名不加。
SELECT prod_id,prod_name,prod_price FROM products;
此语句的输出如下图所示:
注:从上述输出可以看出,SQL语句一般返回原始的、无格式的数据。数据的格式化是一个表示问题,而不是一个检索问题。
三、检索所有列
除了指定所需的列外,SELECT语句还可以检索所有的列而不必逐个列出它们。这可以通过在实际列名的位置使用星号(*)通配符来达到。
SELECT * FROM products;
注:使用通配符优点:由于不明确指定列名,所以能检索出名字未知的列。
四、检索不同的行
SELECT vend_id FROM products;
此语句的输出如下图所示:
SELECT语句返回14行(即使表中只有4个供应商),因为products表中列出了14个产品。如何检索出有不同值的列表?解决办法就是使用DISTINCT关键字,此关键字指示MySQL只返回不同的值。如果使用DISTINCT关键字,它必须直接放在列名的前边。
SELECT DISTINCT vend_id FROM products;
此语句的输出如下图所示:
五、限制结果
SELECT返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或者前几行,可使用LIMIT子句。
SELECT prod_name FROM products LIMIT 5;
此语句使用SELECT语句检索单个列。LIMIT 5指示MySQL返回不多余5行。此语句的输出如下图所示:
为了得出下一个5行,可指定要检索的开始行和行数,如下所示:
SELECT prod_name FROM products LIMIT 5,5;
LIMIT 5,5指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。此语句的输出如下图所示: