MySQL第五讲:工作中常用的sql语句,主要是商品中心和标准中心相关sql
文章目录
-
- 1、标准库
- 2、商品中心相关
- 3、metabase
- 4、导入工具
- Action1、不要使用count(列名) 或 count(常量) 来替代 count( \*), count(*)是SQL92 定义的标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。
- Action2、count(distinct col) 计算该列除 NULL之外的不重复行数,注意 count(distinct col1, col2) 如果其中一列全为 NULL,那么即使另一列有不同的值,页返回为0.
- Action3、当某一列的值全是 NULL时,count(col) 的返回结果是0,但sum(col) 的返回结果为 NULL,因此使用sum() 时需注意NPE问题
- Action4、使用ISNULL() 来判断是否为 NULL 值
- Action5、在代码中写分页查询逻辑时,若 count为0 应直接返回,避免执行后面的分页语句
- Action6、不得使用外键和级联,一切外键概念必须在应用层解决
- Action7、禁止使用存储过程,存储过程难以调试和扩展,更没有移植性。
- Action8、数据订正(特别是删除、修改操作记录)时,要先select,避免出现误删除,确认无误才能执行更新语句
- Action9、in 操作能避免则避免,如果实在避免不了,需要仔细评估 in 后面的集合元素数量,控制在 1000 个之内
- Action10、如果有国际化需要,所有的字符存储与表示,均以 utf-8 编码,注意字符统计函数的区别
- Action11、TRUNCATE table 比 delete 速度快,且使用的系统和事务日志资源少,但TRUNCATE无事务且不触发 trigger,有可能造成事故,故不建议在开发代码中使用此语句。
- Action12、对于数据库中表记录的查询和变更,只要涉及多个表,都需要在列名前加表的别名(或表名) 进行限定。
- Action13、SQL 语句中表的别名前加 as,并且以 t1、t2、t3、... 的顺序依次命名。
1、标准库
1.1、标准库相关表结构
表名 | 当前数据量 | 一周新增量 | 表详情 | 分库分表 | 主要字段 |
---|---|---|---|---|---|
parana_back_categories | 21601 | 16 | 后台类目表 | id 自增id pid 父级id level 级别 tags 类目标签 has_children是否有孩子 has_spu 是否有spu关联 | |
parana_brands | 97701 | 481 | 品牌表 | 品牌适用类目、full_name | |
parana_category_attributes | 340486 | 268 | 类目属性表 | id 自增主键 group 分组 category_id property_id config_id 配置id zcy_category_instance_config | |
parana_category_bindings | 175808 | 760 | 前后台叶子类目映射表 | id 自增主键 front_category_id 前台叶子类目id back_category_id 后台叶子类目id | |
parana_front_categories | 58638 | 330 | 前台类目 |