1,select查询,如果没有明确排序查询结果,则返回的数据也没有特定的顺序。返回数据的顺序可能是数据被添加到列表中的顺序,也可能不是。只要返回相同数目的行,就是正常的。
2,select如果给定一个通配符(*),则返回表中所有列。列的顺序一般是列在表定义中出现的物理顺序,但并不总是如此。在mysql中测试是:在建表的时候出现的顺序就是select *返回列的顺序。
3,distinct关键字作用于后面的所有的列。
4,mysql数据库返回一定数量的行,用limit 关键字。
5,offset的用法:select prod_name from products limit 5 offset 5; limit指的是检索的行数,offset是指从哪里开始。
6,mysql中,第一个被检索的行是第0行,而不是第1行。
7,select如果想在多个列上进行降序排序,必须对每一列指定DESC关键字,比如:select prod_id, prod_price, prod_name from products order by prod_price desc, prod_name desc;
8,mysql默认是不区分大小写的,所以在select的时候不区分大小写。
9,mysql中,where条件,如果是字符串类型的字段进行比较,则需要加上单引号。
10,mysql中,between and,范围是两边都是闭合的,即左闭右闭。
11,sql中,in与or的区别,如果目标条件列是主键或者有索引,那两者性能没有啥区别,如果都不是的话,in的性能要优于or。
12,通配符%不会匹配null空行。
13,通配符使用的技巧:不要过度使用通配符,如果其他操作符能达到相同的目的,应用使用其他操作符;在缺失需要使用通配符时,也尽量不要把他们用在搜索模式的开始处,把通配符置于开始处,搜索起来是最慢的。
14,AVG函数,忽略值为NULL的行。
15,count(*)对表中的行的数目进行计数,不管表列中包含的是空值还是非空值。count(column)对特定列中具有值的行进行计数,忽略NULL值。
16,max(),min()函数,当用于非数值或日期列时,返回文本列中排序最前面或最后面的行。
17,group by vend_id,DBMS会按照vend_id排序并分组数据,所以我们select查询到的结果是按照vend_id的顺序来显示的。
18,having与where非常类似,如果不指定group by,则大多数的DBMS会同等的对待他们。即也可以用having来实现条件筛选。使用having时应该结合group by子句,而where子句用于标准的行级过滤。
19,许多DBMS处理联结远比处理子查询快得多。
20,mysql中不支持full outer join语法,如果需要full outer join,那就可以使用left join,right join,然后两个union。
21,union会从查询结果集中自动去除重复的行,但是union all则返回所有的行,不去重。
22,union在最后一条select语句后使用了order by子句。虽然order by子句似乎只是最后一条select语句的组成部分,但是实际上DBMS将用它来排序所有select语句返回的所有结果。
23,insert select,DBMS不关心select返回的列名,他使用的是列的位置,select中的第一列,将用来填充表列中指定的第一列,第二列将用来填充表列中指定的第二列。
24,从一个表复制到一个新表:create table custcopy as select * from customers。
25,如果想从表中删除所有行,不要使用delete。可使用truncate table语句,它完成相同的工作,而速度更快(因为不记录数据的变动)。
26,在update和delete之前,应该先用select进行测试,保证它过滤的是正确的记录,以防止编写的where子句不正确。
27,既然变长数据类型这么灵活,为什么还要使用定长数据类型呢?答案是性能。DBMS在处理定长列远比处理变长列快很多。此外很多DBMS不允许对边长列进行索引,这也会极大影响性能。
28,更改表明:alter table test rename test1。
29,外键是表中的一列,其值必须在另一表的主键中。
30,主键数据总是排序的,这是DBMS的工作,因此,按照主键索引特定行总是一种快速有效的操作。
31,索引的原理是使DBMS保存字段内容的一个排过序的列表,DBMS搜索排过序的索引,找出匹配的位置,然后检索这些行。
32,索引改善了查询、排序的性能,但是降低了数据插入、修改和删除的性能,因为在新增加数据时,DBMS必须动态的更新索引。
33,索引可能要占大量的存储空间。
34,并非所有数据都适合做索引,取值不多的数据不如具有更多可能值的数据,能通过索引得到那么多的好处。
35,索引主要用于数据过滤和数据排序。如果你经常以某种特定的顺序排序数据,则该数据可能适合做索引。
36,可以在索引中定义多个列(如,州加上城市),这样的索引仅在以州加城市的顺序排序时有用。如果想按城市排序,则这种索引没有用处。
37,索引的效率随表数据的增加或改变而变化,许多数据库管理员发现,过去创建的某个理想的索引经过几个月的数据处理后可能变得不再立项了。做好定期检查索引,并根据需要对索引进行调整。
2952

被折叠的 条评论
为什么被折叠?



