查询:
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr, ...
[INTO OUTFILE 'file_name' export_options
| INTO DUMPFILE 'file_name']
[FROM table_references
[WHERE where_definition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_definition]
[ORDER BY {col_name | expr | position}
[ASC | DESC] , ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[FOR UPDATE | LOCK IN SHARE MODE]]
1.在group by 中可以使用group_concat() 显示分组的各个字段的值
2.在group by 中可以使用 having 限制显示记录所需满足的条件 与where 的区别是一个分组前一个是分组后
3.在gourp by 中使用with rollup 后悔在查询后增加一条记录 计算查询记录的总和
DISTINCT 去重
查询的聚合函数
avg() 平均值
count() 行数 如果统计的某个字段 字段有null 则该行不做统计
max() 最大值
min() 最小值
sum() 和
内连接查询 from多张表时 如果有相同的字段 可以使用 where a.字段=b.字段 进行内连查询
内连接查询 使用inner jon 进行内连接: form a inner join b on a.字段=b.字段 效果等同于where 性能上inner jion 大于 where
左连接 left join 语法 A left join b on 条件 且有where 子句;
带 any some 的子查询 any关键字接在一个比较操作符的后边 若与子查询返回的任意值比较 为true 则为true
带 all 的子查询 all关键字接在一个比较操作符的后边 若与子查询返回的所有值比较 为true 则为true
带exists 的子查询 直接接在where 后 与 not exists 结果相反 判断是否有结果集
带in 的子查询 和where a in (1,2) 差不多
union 或 union all (使用all则不删除重复行 不使用all 删除重复行)
插入:
insert into table_name(column_name,column_name,...,column_name)values(value1,value2,...,valuen);
插入多个:
insert into table_name(column_name,column_name,...,column_name)values(value1,value2,...,valuen),(value1,value2,...,valuen);
插入查询值:
insert into table_name(column_name,column_name,...,column_name) select a,b,....,c from table;
更新数据:
update table_name
set column_name1 = value1,...,column_namen = valuen
where(condition);
删除数据:
delete from table_name [where <condition>];