- 关键字和函数名称大写;
- 数据库名称,表名称和字段名称全部小写;
- sql语句必须以分号结尾;
- auto_increment必须与主键一起使用,主键却不一定。
- 唯一约束可以保证记录的唯一性;
- 唯一约束的字段可以为空值;
- 每个数据表可以存在多个唯一约束。
- 父表和子表必须具有相同的存储引擎,而且禁止使用临时表;
- 数据表的存储引擎只能为InnoDB;
- 外键列和参照列必须具备相似的数据类型,其中数字的长度和是否有符号位必须相同,而字符的长度则可以不同;
- 外键列和参照列必须创建索引,如果外键列不存在索引,则系统会自动创建索引。
- insert value
- insert set
- insert tabName(字段名) select 查询结果插入新表
- 插入列数必须对应,插入的值可以为表达式,函数(如md5函数,给字段加密)
- 查询语句列的顺序将会影响到数据展示的顺序;
- 字段的别名也会影响的展示的名称;
- having对group by进行条件的指定,但是having中的字段必须出现在select中或者以聚合函数的形式出现;
- limit限制查询结果,记录从0开始,与id号无关;
limit 2:从第一条开始查询,查询两条记录;
limit 2,2:从第三条记录开始,查询两条记录; - select from tabName where ..group by..having..order by..limit;
- 子查询返回值为多行可以使用(=,>,>=,<,<=)搭配any,some,all关键字;
- 引发子查询分为三种情况:
a、比较运算符;
b、(not) in;
c、(not)exist。 - where和having
a、where
子句的作用是对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
b、having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件过滤出特定的组,也可以使用多个分组标准进行分组。