MySQL实践笔记

关于外键

子表:

CREATE TABLE req(
  icon VARCHAR(128) PRIMARY KEY,
  series VARCHAR(128),
  CONSTRAINT fk_series FOREIGN KEY(series) REFERENCES series(name) ON UPDATE CASCADE ON DELETE SET NULL
) ENGINE = InnoDB;

父表:

CREATE TABLE series(
  name VARCHAR(128) PRIMARY KEY,
  sys TINYINT(1) DEFAULT 0
) ENGINE = InnoDB;
外键

支持外键只能使用 InnoDB 存储引擎。

级联操作问题

ON UPDATE CASCADE 指定级联更新;ON DELETE SET NULL 指定父表删除记录时子表相应字段设为 NULL。如果级联删除则是 ON DELETE CASCADE

如果不使用这些语句,那么在父表更新或删除有子表依赖的记录时将不被允许。

为已有表增加外键
ALTER TABLE req ADD series VARCHAR(128);

ALTER TABLE req ADD CONSTRAINT fk_series FOREIGN KEY(series) REFERENCES series(name) ON UPDATE CASCADE ON DELETE SET NULL;

关于 SELECT 合并

SQL:

SELECT COUNT(*) AS sum FROM t1 WHERE p1 = 'x';
SELECT COUNT(*) AS sum FROM t1 WHERE p1 = 'x' AND p2 = 'y';

结果:

+-----+
| sum |
+-----+
|   4 |
+-----+

+-----+
| sum |
+-----+
|   1 |
+-----+

合并SQL:

SELECT COUNT(*) FROM t1 WHERE p1 = 'x' GROUP BY p2 = 'y';

结果:

+-----+
| sum |
+-----+
|   3 |
|   1 |
+-----+

通过 GROUP BY p2 = 'y' 将结果分成了两组

了解表结构

desc t1;
show create table t1;

GROUP BY 后查总数

select count(*) from (select pkg from req group by pkg);

这样是不行的。[Err] 1248 - Every derived table must have its own alias
正确语句如下:

select count(*) from (select pkg from req group by pkg) as t;

连接数

SHOW VARIABLES LIKE '%max_connections%';
SHOW GLOBAL STATUS LIKE '%max_used_connections%';
SET GLOBAL max_connections = 256;
SHOW PROCESSLIST;

关于 TIMESTAMP

time TIMESTAMP NOT NULL

等同于

time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

或许我们的需求是这样:

time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,091评论 18 399
  • 关系型数据库和SQL SQL语言的三个部分DML:Data Manipulation Language,数据操纵语...
    Awey阅读 5,977评论 0 13
  • 一、什么是MYSQL Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Re...
    ElephantChan阅读 2,405评论 0 1
  • 本文包括:1、一对多结构的准备2、双向关联与单向关联3、级联保存4、级联删除5、cascade 属性——级联6、i...
    廖少少阅读 4,944评论 1 6
  • 今天跟一个学员姐姐聊天,我问她,为什么您每次遇到学习的事儿,总是毫不犹豫的报名呢,全国各地飞,她很温柔的对我说:“...
    安安333阅读 3,607评论 0 1

友情链接更多精彩内容