SQL - 创建数据库并查询它

标签 sql database

我需要回答以下说明,想知道我是否在正确的道路上回答它。

说明

为以下场景设计一个数据库:您需要在一场敏捷比赛中追踪所有的狗。 他们在每场比赛中都有不同的项目,每只狗都有每个项目的分数。 此外,编写 SQL 查询以返回所有参加比赛的狗、每只狗参加的项目以及他们在该项目中获得的分数。

CREATE DATABASE Competition (
  Dogs CHAR(30) NOT NULL,
  Score INT NOT NULL,
  Event CHAR(30) NOT NULL,
)

SELECT * 
FROM Competition

这似乎有点太简单了,但这会满足给出的所有指令吗?

编辑

这个解决方案行得通吗?

CREATE TABLE Dogs (
   Name STRING,
   EventId INT
)
CREATE TABLE Events (
   Name STRING,
   Id INT
)
CREATE TABLE Scores (
   Score INT,
   EventId INT
)
SELECT name
FROM Dogs 
INNER JOIN Events On Events.Id = Dogs.EventId
INNER JOIN Scores On Events.Id = Scores.Event.Id

最佳答案

您的实体在语法中混淆了。数据库是逻辑容器,您可以在其中创建表。 例如,如果您使用的是 T-SQL:

CREATE DATABASE DogCompetition;
USE DogCompetition;
CREATE TABLE Dogs 
(Dog VARCHAR(30) PRIMARY KEY);
CREATE TABLE Events 
(Event VARCHAR(30) PRIMARY KEY);
CREATE TABLE DogEventScores 
(Dog VARCHAR(30) REFERENCES Dogs(Dog), 
Event VARCHAR(30) REFERENCES Events (Event),
Score INT NOT NULL,
PRIMARY KEY (Dog, Event)
);
INSERT INTO Dogs (Dog) VALUES ('Charlie');
INSERT INTO Events (Event) VALUES ('Running');
INSERT INTO DogEventScores (Dog, Event, Score) VALUES ('Charlie', 'Running', 8);
SELECT * FROM DogEventScores;

HTH

关于SQL - 创建数据库并查询它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55253394/

相关文章:

php - 从数据库中删除行之前添加警报窗口

sql - 我想使用 union all 进行插入,其中有一列从序列中获取值

database - 需要操作系统 : getting base I/O unit size, “sync” 选项的磁盘驱动器管理数据,直接内存访问

php - Laravel 5.3,似乎无法配置使用哪个数据库?

c# - Dapper中的DbContext,DbSet等

sql - 是否可以在 Sql Server 中的 View 内设置变量?

sql - 在 Doctrine DQL 中选择 count() 与左连接 manyToMany 单向关系,其中用户没有关系特定组

java - 在 Java 中将 Oracle 函数作为字符串传递

java - 尝试用Java设计数据库。到目前为止,我有一个可序列化的对象,我可以在需要时读取并更新该对象。好主意还是坏主意?

php - Codeigniter Active Record IF 语句