1. Access 数据库中like语句中必须用*代表多个字符,而不是%
2. 一般情况下!=和<>可以互换,但是Accesss数据库中只支持<>。
3. 如果想根据多个列排序,其中每列都逆序排列时,应该再每个列后都加上DESC关键字.
4. sql关键字不区分大小写。但是表名,列名可能区分大小写,最好都自己区分大小写以免发生错误!
5. 最好不要用*来选择全部列,因为获取不需要的列会影响性能。
6. 注意固定长度字符列中的空格,比如长度为50字符的列如果输入数据是17个字符,数据库会自动再后面加上33个空格。所以当再次操作数据时候要注意后面的空格。
7. Access使用?不是_表示单个字符.
8. Access使用!不是^表示否定集合,比如[!JM]而不是[^JM]
9. []集合通配符不是所有的DBMS都支持。
10. Access, Sql Server和Sybase支持+来连接字符串。DB2,Oracle,PostgreSQL,Sybase 支持||.具体细节查看文档.
11. MySQL不支持+也不支持||,而是使用CONCAT()函数来连接字符串。
12. ||在MYSQL中是用来表示OR, &&表示 AND.
13. AVG()只能用来计算单个数字列的平均值,要想计算多个列必需使用多个AVG()
14. Where是再数据被分组前过滤数据,Having是分组后过滤数据。被where排除的行不会被包括在分组中。这可能会改变被计算的值从而影响那个分组被过滤掉。因为Having可能会根据这些值来过滤分组。
15. 子查询只能取单个列,取多个列会返回错误。
16. 多表连接时候如果有相同的列,必需用全名来引用列。
17. 连接的表越多,性能越低!
18. Oracle不支持AS 关键字,Oracle中使用别名时候直接跟别名不用加AS。比如使用Customers C 代替 Customers AS C
19. 外连接有两种,1、左连接 2、右连接。这两种连接基本一样。唯一区别是看连个表出现的顺序。
20. Access, MySQL ,SQL Server 和Sybase不支持全连接。
21. 想要更快的删除表所有行,不要用DELETE,使用TRUNCATE TABLE 语句,这个语句完成一样的事情但是更快。因为数据变化不需要写入日志。
22. 要替换已有的表,应该先删除旧表,再添加新表。不能直接覆盖。
23. 使用ALTER TABLE修改表时候最好先备份。因为数据库表的改变是不可以撤销的。添加没用的列,就不能再删除了。删除有用的列就会丢失该列的所有数据。
24. INSERT UPDATE DELETE语句可以回滚。但是SELECT不能。也不能回滚CREATE DROP语句。这些语句虽然可以用再事务语句块中,但是当你回滚事务时候这些语句是不会撤销的。
25. 约束比触发器更快。所以应该尽可能的使用约束!