MYSQL必知必会读书笔记第四章之检索数据
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
使用Select语句返回的数据,可能会发现显示的数据会与其他的地方顺序不同。出现这种情况很正常。如果没有明确排序查询结果。则返回的数据没有特殊意义。返回数据的顺序可能是是数据被添加到表中的顺序,也可能不是。只要返回相同数目的行,就是正常。
注意:SQL语句和大小写 请注意,SQL语句不区分大小写,因此select和SELECT是相同的。同样,写成Select也没有关系。许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列名和表名使用小写。这样做使代码更易于阅读和调试。不过,一定要认识到虽然SQL是不区分大小写的,但有些标识符(如数据库名,表名,列名)可能不同:在MYSQL4.1 及之前的版本中,这些标识符默认是区分大小写的;在MySQL 4.1.1 版本中,这些标识符默认是不区分大小写的。
使用空格: 在处理SQL语句时,其中所有空格都被忽略。SQL语句可以在一行上给出,也可以分成许多行。多数SQL开发人员认为将SQL语句分成多行更容易阅读和调试。
数据表示: 从上述输出可以看到,SQL语句一般返回原始的、无格式的数据。数据的格式化是一个表示问题,而不是一个检索问题。因此,表示(对齐和显示上面的价格值,用货币符号和逗号表示其金额) 一般在显示该数据的应用程序中规定。一般很少使用实际检索出的原始数据。
使用通配符: 一般,除非你确定需要表中的每个列,否则最好不要使用通配符
检索未知列 :使用通配符最大的一个优点。由于不明确指定列名,所以能检索出名字未知的列。
返回唯一值:SELECT DISTINCT vendor_id FROM products;
不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列。如果给出SELECT DISTINCT vend_id,pro_price,除非指定的两个列都不同,否则所有行都将被检索出来。
限制显示:
MYSQL 5 的limit语法 LIMIT 3,4 一样 的一种替代语法为 : LIMIT 4 OFFSET 3
使用完全限定的表名:
SELECT products.prod_name FROM products
也可以从数据库开始限定
SELECT products.prod_name FROM crashcourse.products