SQL - doubility-sky/daydayup GitHub Wiki

SQL (/ˌɛsˌkjuːˈɛl/ ( listen) S-Q-L, /ˈsiːkwəl/ "sequel"; Structured Query Language) is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS).

Learn

Practice

  • SQL 命名约定 数据库的表和字段怎么起名?这也是一门学问。下面是数据库的一些命名原则。
    • 小写。标识符应该全部用小写字母来书写,使用first_name,不是"First_Name"或者"FirstName"
    • 数据类型不是名称。避免使用仅为数据类型的名字(如texttimestamp)。
    • 强调单独的单词。由多个单词组成的对象名称应该用下划线分隔,例如使用word_countteam_member_id,而不是wordcountwordCount
    • 完整的单词,而不是缩写。例如使用middle_name,不是mid_nm
    • 使用常用缩写。对于几个长词而言,缩写词比词本身更为常见,比如i18nl10n,这时使用缩写。

FAQs

  • 【MySQL】 细说 NULL 导致的神坑,让人防不胜防
    • NULL 作为布尔值的时候,不为 1 也不为 0
    • 任何值和 NULL 使用运算符(>、<、>=、<=、!=、<>)或者(in、not in、any/some、all),返回值都为NULL
    • 当 IN 和 NULL 比较时,无法查询出为 NULL 的记录
    • 当 NOT IN 后面有 NULL 值时,不论什么情况下,整个 sql 的查询结果都为空
    • 判断是否为空只能用 IS NULL、IS NOT NULL
    • count(字段) 无法统计字段为 NULL 的值,count(*) 可以统计值为 NULL 的行
    • 当字段为主键的时候,字段会自动设置为 NOT NULL
    • NULL 导致的坑让人防不胜防,强烈建议创建字段的时候字段不允许为 NULL,给个默认值
  • SQL 多表查询之 where 和 INNER JOIN
    • 使用 inner join,而不是 where
⚠️ **GitHub.com Fallback** ⚠️