我对 SQL 有这些疑问......它不是一种那么严格的语言,尽管编写它的方式不同,它仍然可以运行......当我开始看到 Workbech 生成的代码时,CREATE SCHEMA 和 CREATE DATEBASE 之间到底有什么区别,它适用于SCHEMA,真的,这个词让我有点恶心......我学习sql的所有短暂生命都是DATABASE:S
另一方面,利用问题... Workbench 还利用 FOREIGNKEY 前面的 CONSTRAINT
这是Workbench生成的代码示例
CREATE TABLE IF NOT EXISTS `tallermecanico_hd`.`e_vehiculos` (
`placa` INT NOT NULL,
`marca` VARCHAR(25) NULL,
`modelo` VARCHAR(25) NULL,
`anio` VARCHAR(4) NULL,
`observ` VARCHAR(255) NULL,
`serial` VARCHAR(25) NULL,
`color` VARCHAR(25) NULL,
`puertas` INT,
`motor` VARCHAR(25) NULL,
`transmision` VARCHAR(25) NULL,
//<<<aqui yo colocaria el campo foraneo cedula_c pero workbench no lo hizo<<<
PRIMARY KEY (`placa`),
CONSTRAINT `cedula_c`
FOREIGN KEY ()
REFERENCES `tallermecanico_hd`.`c_clientes` ()
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
我习惯于像这样放置外键:
FOREINGN KEY(cedula_c)REFERENCES c_clientes
如果它的工作原理相同,但有什么区别 D:CONSTRAINT 做什么?另外,Workbench 使用数据库名. 表名. 另外,我没有在引用的括号内放任何东西,也没有创建外部字段 cedula_c
我如何寻找点的主题... [db].[table] 什么叫那个点与放置 FROM 或类似的东西相同?有一些名字可以很好地寻找没有人给我的那个话题>.<
我只回答你的第一个问题。我认为,根据网站的规则,最好每个案例问一个问题,因为它对未来更有用,而且因为回答几个问题可能需要太多的努力,而且同一个问题可能会被关闭,因为它是认为过于宽泛。
然后:
确切的区别只有一个,它们被称为不同,但它们做同样的事情。这是 MySQL 文档所述:
同样在 MySQL 词汇表中,它说以下内容:
PS:我认为应该单独提出另一个问题,您会得到更好的答案,并且对 SO 社区的其他人更有用。