上一篇:【MySQL必知必会(一)】【官方数据库表及SQL脚本导入生成】
使用SELECT语句从表中检索一个或多个数据列
使用SELECT检索表数据,必须至少给出两条信息,想选择什么以及从什么地方选择。
mysql> SELECT prod_name
-> FROM products;
上述语句利用SELECT语句从products表中检索一个名为prod_name的列。所需的列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表命
会发现多次试验这个查询,会发现显示输出的数据顺序不同,如果没有明确排序查询结果,则返回的数据的顺序没有特殊意义。返回数据的顺序是随机的。只要返回行数相同就是正常现象。
多条SQL语句必须以分号分隔。MySQL如同多数DBMS一样,不需要在单条SQL语句后加分号。但特定的DBMS可能必须在单条SQL语句后加上分号。如果使用的是mysql命令行,必须加上分号来结束SQL语句。
SQL语句不区分大小写,许多SQL开发人员喜欢对所有SQL关键字使用大写,对所有列和表名使用小写,这样使代码更易于阅读和调试。
想要从一个表中检索多个列,使用相同的SELECT语句。唯一 的不同是必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔。
在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加,如果在最后一个列名后加了逗号,将出现错误。
mysql> SELECT prod_id, prod_name, prod_price
-> FROM products;
通过在实际列名的位置使用*通配符
mysql> SELECT *
-> FROM products;
减少使用*通配符,但检索不需要的列通常会减低检索和应用程序的性能。
使用DISTINCT关键字 ,只返回不同的值
mysql> SELECT DISTINCT vend_id
-> FROM products;
返回第一行或前几行,可使用LIMIT子句
mysql> SELECT prod_name
-> FROM products
-> LIMIT 5;
LIMIT 5指示MySQL返回不多于5行
mysql> SELECT prod_name
-> FROM products
-> LIMIT 5,5;
LIMIT 5,5指示MySQL返回从行5开始的5行,第一个数为开始位置,第二个数为检索的行数
检索出来的第一行为行0而不是行1。LIMIT 1,1将检索出第二行而不是第一行
mysql> SELECT products.prod_name
-> FROM products;
完全限定的列名
返回某个数据库表的单个列,没有特定的顺序
mysql> SELECT prod_name
-> FROM products;
mysql> SELECT prod_name
-> FROM products
-> ORDER BY prod_name;
按字母顺序排序数据
多个列排序,只要指定列名,列名之间用逗号分开即可
mysql> SELECT prod_id, prod_price, prod_name
-> FROM products
-> ORDER BY prod_price, prod_name;
默认为升序(从A到Z),降序DESC关键字
mysql> SELECT prod_id, prod_price, prod_name
-> FROM products
-> ORDER BY prod_price DESC;
mysql> SELECT prod_id, prod_price, prod_name
-> FROM products
-> ORDER BY prod_price DESC, prod_name;
DESC关键字只应用到直接位于其前面的列名。
如果想在多个列上进行降序排列,必须对每个列指定DESC关键字
给出ORDER BY子句时,应该保证它位于FROM子句之后。如果使用LIMIT,它必须位于ORDER BY之后。使用子句的次序不对将产生错误消息。