好久没有写了。
1:show columns from table;等同于describe table显示的是表的结构。而select * from table 则显示的是整个表中插入的数据。
2:select distinct c1,c2 from table除非列不相同,否则所有行将被检索出来,即不能对部分列使用distinct
3:检索出的数据并不是以纯粹的随机顺序显示的,如果不排序,数据一般将以它在底层表中出现的顺序显示。为了将select检索出的子句排序,可以使用order by+列名。其中列名并不一定是要显示的列,非检索的列排序也是完全合法的。按多个列排序时,按照order by后出现列的顺序,只有当前面列中多行有相同的值才在相同的值下对另外一列排序。默认ASC升序排列。如果对多列排序,每一列后都要加Desc。可以使用order by 和limit组合,找出列中最高或最低的值。另外order by一定位于from子句之后,limit一定位于order by之后。
4:当同时使用order by和where子句时,应该让order by位于where之后。mysql在执行匹配时默认不区分大小写,所以where子句中的fuses和Fuses匹配。where子句用单引号来限定字符串,如果将值与串类型的列进行比较,则需要限定引号,用来与数值列进行比较的值不用引号。
where price between 5 and 10 between匹配范围中的所有值包括开始值和结束值。
5:where子句和and or in not结合使用。其中and教or有更高的优先级,建议在where子句中使用圆括号。in(&,&)相当于or
6:通配符:%表示任何字符出现任意次数。但是一定要注意尾空格。虽然%似乎可以匹配任何东西,但是不能匹配用值null作为产品名的行。_只匹配单个字符。