读书笔记之SQL必知必会
1、主键的条件 表中的任何列都可以作为主键,只要它满足以下条件: 任意两行都不具有相同的主键值; 每一行都必须具有一个主键值(主键列不允许NULL值); 主键列中的值不允许修改或更新; 主键值不能重用(如果某行从表中删除,它的主键不能赋给以后的新行) sql语句一般返回原始的、无格式的数据。数据的格式化是表示问题,而不是检索问题。 检索出的数据并不是随机显示的。如果不排序,数据一般将以它在底层表中出现的顺序显示,这有可能是数据最初添加到表中的顺序。但是,如果数据随后进行过更新或删除,那么这个顺序会受到DBMS重用回收存储空间方式的影响。因此,如果不明确控制的话,则最终的结果不能也不应该依赖该排序顺序。关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定家所处的数据的顺序有任何意义。 distinct关键字必须直接放在列名的前面,作用于所有的列,不仅仅是跟在其后的那一列,distinct保证的行级别的一致,而不是一列 如果想要对一列的数据去重,distinct关键字后面只能跟一个列名。 通常,order by子句中使用的列将是为显示而选择的列,用非检索列排序数据也是完全合法的。 order by 按多列排序,在前面的列不唯一的前提下,才对后面的列进行排序。 order by子句,可按多列排序 DESC降序排序,只应用在直接位于其前面的列名 NULL与非匹配