《MySQL必知必会》学习知识点

  1. 主键通常定义在表的一列上,但这并不是必需的,也可以一起使用多个列作为主键。在使用多列作为主键时,上述条件必须应用到构成主键的所有列,所有列值的组合必须是唯一的(但单个列的值可以不唯一)。也叫复合主键。
  2. SQL:Structured Query Language, 结构化查询语言
  3. 结束SQL语句多条SQL语句必须以分号(;)分隔。MySQL如同多数DBMS一样,不需要在单条SQL语句后加分号。但特定的DBMS可能必须在单条SQL语句后加上分号。当然,如果愿意可以总是加上分号。事实上,即使不一定需要,但加上分号肯定没有坏处。如果你使用的是mysql命令行,必须加上分号来结束SQL语句。
  4. 使用通配符一般,除非你确实需要表中的每个列,否则最好别使用*通配符。虽然使用通配符可能会使你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。
  5. 如果使用DISTINCT关键字,它必须直接放在列名的前面。
  6. 为了按多个列排序,只要指定列名,列名之间用逗号分开即可(就像选择多个列时所做的那样)。
  7. 在创建表时,表设计人员可以指定其中的列是否可以不包含值。在一个列不包含值时,称其为包含空值NULL。NULL无值(novalue),它与字段包含0、空字符串或仅仅包含空格不同。
    首先:注意了 null 不能用 '!=','=','<>' 来判断 虽然不会报错,但数据不正确。应该用,is not null 或 is null 还有 null 值和 ' ' 是有区别的。
  8. 在WHERE子句中使用圆括号任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。不要过分依赖默认计算次序,即使它确实是你想要的东西也是如此。使用圆括号没有什么坏处,它能消除歧义。
  9. 为什么要使用IN操作符?其优点具体如下:
    1)在使用长的合法选项清单时,IN操作符的语法更清楚且更直观。
    2)在使用IN时,计算的次序更容易管理(因为使用的操作符更少)。
    3)IN操作符一般比OR操作符清单执行更快。
    4)IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。
  10. MySQL支持使用NOT对IN、BETWEEN和EXISTS子句取反,这与多数其他DBMS允许使用NOT对各种条件取反有很大的差别。
  11. 通配符%代表搜索模式中给定位置的0个、1个或多个字符。
    注意:虽然似乎%通配符可以匹配任何东西,但有一个例外,即NULL。即使是WHERE prod_name LIKE '%'也不能匹配用值NULL作为产品名的行。
  12. 另一个有用的通配符是下划线(_)。下划线的用途与%一样,但下划线只匹配单个字符而不是多个字符。
  13. MySQL的通配符很有用。但这种功能是有代价的:通配符搜索的处理一般要比前面讨论的其他搜索所花时间更长。这里给出一些使用通配符要记住的技巧:
    不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
    在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的。
    仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据
  14. MySQL中可以可以使用正则表达式,MySQL中的正则表达式匹配(自版本3.23.4后)不区分大小写(即,大写和小写都匹配)。为区分大小写,可使用BINARY关键字,如WHERE prod_name REGEXP BINARY 'JetPack .000'
  15. 为了匹配特殊字符,必须用\为前导。\-表示查找-,\.表示查找.。
  16. 的双重用途:有两种用法。在集合中(用[和]定义),用它来否定该集合,否则,用来指串的开始处。
  17. 简单的正则表达式测试可以在不使用数据库表的情况下用SELECT来测试正则表达式。REGEXP检查总是返回0(没有匹配)或1(匹配)。可以用带文字串的REGEXP来测试表达式,并试验它们。相应的语法如下:
SELECT 'hello' REGEXP '[0-9]';

这个例子显然将返回0(因为文本hello中没有数字)。


  • 浩浩花花世界,更多精彩与您分享!

你可能感兴趣的:(《MySQL必知必会》学习知识点)