Questions tagged «sql»

结构化查询语言(SQL)是用于查询数据库的语言。问题应包括代码示例,表结构,示例数据以及正在使用的DBMS实现的标签(例如MySQL,PostgreSQL,Oracle,MS SQL Server,IBM DB2等)。如果您的问题仅涉及特定的DBMS(使用特定的扩展名/功能),请改用该DBMS的标签。使用SQL标记的问题的答案应使用ISO / IEC标准SQL。

10
SELECT * FROM表名WHERE 1
我一直很好奇。这些查询之间有什么区别: SELECT * FROM `tablename` SELECT * FROM `tablename` WHERE 1 SELECT * FROM `tablename` WHERE 1=1
129 sql  select-query 

4
如何创建具有共享表结构的多租户数据库?
我们的软件当前在MySQL上运行。所有租户的数据都存储在同一架构中。由于我们使用的是Ruby on Rails,因此我们可以轻松确定哪些数据属于哪个租户。但是,当然有些公司担心其数据可能会遭到破坏,因此我们正在评估其他解决方案。 到目前为止,我已经看到了三种选择: 多数据库(每个租户都有自己的-每个客户几乎与1台服务器相同) 多模式(在MySQL中不可用,每个租户都在共享数据库中获得自己的模式) 共享模式(我们当前的方法,可能在每列上都有其他标识记录) 我最喜欢Multi-Schema(考虑到成本)。但是,创建一个新帐户并进行迁移似乎很痛苦,因为我将不得不遍历所有模式并更改其表/列/定义。 问: Multi-Schema似乎被设计为每个租户都有略微不同的表-我不想要这个。是否有任何RDBMS允许我使用多模式多租户解决方案,其中所有租户之间共享表结构? PS多重代表我的意思是超级多重(10.000+个租户)。

4
MySQL结果以逗号分隔的列表
我需要运行类似的查询: SELECT p.id, p.name, (SELECT name FROM sites s WHERE s.id = p.site_id) AS site_list FROM publications p 但是我希望子选择返回逗号分隔的列表,而不是数据列。这有可能吗?如果可以,怎么办?
129 sql  mysql  concatenation 

11
调查的数据库设计[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 改善这个问题 我需要创建一个调查,将答案存储在数据库中。我只是想知道什么是在数据库中实现此目的的最佳方法,特别是所需的表。调查包含不同类型的问题。例如:用于注释的文本字段,多项选择题以及可能包含多个答案的问题(即,选中所有适用的答案)。 我提出了两种可能的解决方案: 创建一个巨大的表,其中包含每个调查提交的答案。每列将对应于调查的答案。即SurveyID,Answer1,Answer2,Answer3 我不认为这是最好的方法,因为此调查中存在很多问题,并且如果要更改该调查似乎不太灵活。 我想到的另一件事是创建问题表和答案表。问题表将包含调查的所有问题。答案表将包含调查中的单个答案,每一行都链接到一个问题。 一个简单的例子: tblSurvey:SurveyID tblQuestion:QuestionID,SurveyID,QuestionType,问题 tblAnswer:AnswerID,UserID,QuestionID,Answer tblUser:用户ID,用户名 我的问题是答案可能很多,这会使答案表非常庞大。我不确定性能方面是否如此出色。 我将不胜感激任何想法和建议。



3
唯一约束的命名约定
命名约定很重要,并且主键和外键是常用且显而易见的约定(分别为PK_Table和FK_Table_ReferencedTable)。IX_Table_Column索引的命名也相当标准。 那UNIQUE约束呢?此约束是否有公认的命名约定?我看过UK_TableName_Column,UQ_TableName_Column和有人推荐AX_TableName_Column-我不知道那是哪里来的。 我通常使用过,UQ但我并不特别喜欢它,而且我不喜欢不得不针对UK倡导者来捍卫自己选择使用它的选择。 我只想看看是否在最普遍的命名上达成共识,或者关于一个人为什么比其他人更有意义的一个很好的理由。

6
Eclipse的轻量级SQL编辑器
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 5年前关闭。 改善这个问题 Eclipse中是否有任何简单的SQL编辑器?还是需要为Eclipse找到一个简单的SQL编辑器插件? 通过简单的我的意思是,编辑器不会不连接到任何数据库,做语法高亮和最好格式化SQL是一个奖金。



17
您如何版本化数据库架构?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 10个月前关闭。 改善这个问题 您如何准备SQL增量?您是将每个更改架构的SQL手动保存到增量文件夹中,还是有某种自动差异化过程? 我对用于对数据库架构和源代码进行版本控制的约定感兴趣。也许是一个预先提交的钩子,可以与架构进行区分? 另外,除了DbDeploy之外,还有哪些差异差异选项? 编辑:看到答案,我想澄清一下,我熟悉使用增量运行数据库迁移的标准方案。我的问题是最好自己自动创建增量。 同样,版本控制适用于PHP和MySQL(如果有所帮助)。(请没有Ruby解决方案)。
128 sql  mysql  schema  versioning 

17
是否有充分的理由对SQL关键字使用大写?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 改善这个问题 默认值似乎是大写的,但是否真的有任何理由要对关键字使用大写?我开始使用大写字母,因为每当我尝试创建新存储过程(例如新存储过程)时,我都试图匹配SQL Server给我的内容。但是后来,我对我的第5根婴儿的手指感到不舒服,这总是需要按住Shift按钮,因此我停止使用大写字母。我为什么要回到大写字母? 编辑:谢谢你们的答案。在COBOL为王的时候,我还没有编程,所以我没有意识到这一点。从现在开始,我将坚持使用小写字母。

3
SQL脚本中的错误:每批只允许一个语句
我有4个SQL脚本,希望在PostDeployment中的DACPAC中运行,但是当我尝试为其中3个构建VS项目时,出现此错误: Only one statement is allowed per batch. A batch separator, such as 'GO', might be required between statements. 脚本仅包含INSERT数据库不同表中的语句。所有的结构都像这样 IF NOT EXISTS (SELECT 1 FROM dbo.Criteria WHERE Name = 'Mileage') INSERT INTO dbo.Criteria(Name) VALUES ('Mileage'); 仅在不同的表和不同的数据上。 我的问题是,当所有脚本的语法和操作都相同时,为什么VS会抱怨其中的3个? PS:由于错误提示,在语句之间添加“ GO”不会执行任何操作。


12
在一个命令中添加具有外键约束的新列
我试图添加一个新列,这将是一个外键。我已经能够使用两个单独的ALTER TABLE命令添加列和外键约束: ALTER TABLE one ADD two_id integer; ALTER TABLE one ADD FOREIGN KEY (two_id) REFERENCES two(id); 有没有一种方法可以使用一个ALTER TABLE命令而不是两个?我无法提出任何可行的方法。
128 sql 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.