Questions tagged «sql»

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

8
可以使用PostgreSQL执行跨数据库查询吗?
我将基于以下错误消息(以及此Google结果)猜测答案为“否” ,但是是否仍然可以使用PostgreSQL执行跨数据库查询? databaseA=# select * from databaseB.public.someTableName; ERROR: cross-database references are not implemented: "databaseB.public.someTableName" 我正在处理一些分布在两个数据库中的数据,尽管数据实际上是在两个数据库之间共享的(一个数据库中的userid列来自另一个数据库中的users表)。我不知道为什么这些是两个独立的数据库而不是模式,但是请放心...
143 sql  postgresql 

9
如何编写一个简单的数据库引擎
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 我对学习数据库引擎的工作方式(即它的内部)感兴趣。我知道CS讲授的大多数基本数据结构(树,哈希表,列表等),以及对编译器理论的很好理解(并实现了一个非常简单的解释器),但我不知道该怎么做关于编写数据库引擎。我已经搜索了有关该主题的教程,但找不到任何教程,因此我希望其他人可以指出正确的方向。基本上,我想了解以下信息: 数据如何在内部存储(即表的表示方式等) 引擎如何查找所需的数据(例如,运行SELECT查询) 如何以快速有效的方式插入数据 以及与此相关的任何其他主题。它不必是磁盘上的数据库,即使是内存数据库也很好(如果更简单的话),因为我只是想学习它的原理。 非常感谢您的帮助。

9
SQL-在分组依据中使用别名
只是对SQL语法感到好奇。所以如果我有 SELECT itemName as ItemName, substring(itemName, 1,1) as FirstLetter, Count(itemName) FROM table1 GROUP BY itemName, FirstLetter 这将是不正确的,因为 GROUP BY itemName, FirstLetter 真的应该是 GROUP BY itemName, substring(itemName, 1,1) 但是为什么我们不能简单地使用前者来方便呢?
143 sql  group-by  alias 

17
无法通过套接字'/tmp/mysql.sock'(2)连接到本地MySQL服务器
我已经安装了MySQL服务器并尝试连接到它,但是出现错误: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 我已经检查了我的/ tmp目录,并且没有mysql.sock。我在任何地方都找不到mysql.sock。我读到它可能在 /var/lib/mysql/mysql.sock 但是我也检查了那里,甚至没有mysql目录,在/ lib中只有一些后缀。有人可以帮我解决这个问题吗?
143 mysql  sql 

11
SQL Server:是否可以同时插入两个表?
我的数据库包含三个表叫Object_Table,Data_Table和Link_Table。链接表仅包含两列,即对象记录的标识和数据记录的标识。 我想从DATA_TABLE链接到一个给定对象标识的位置复制数据,Data_Table并Link_Table在不同的给定对象标识中插入相应的记录。 我可以通过选择一个表变量并为每次迭代进行两次插入来循环执行此操作。 这是最好的方法吗? 编辑:我想避免循环的原因有两个,第一个是我很懒,并且循环/临时表需要更多的代码,更多的代码意味着更多的地方出错了,第二个原因是对性能的关注。 我可以在一个插入中复制所有数据,但是如何获得链接表以链接到新数据记录,其中每个记录都有一个新ID?

8
如何选择每个组的第一行?
我有一个生成的DataFrame,如下所示: df.groupBy($"Hour", $"Category") .agg(sum($"value") as "TotalValue") .sort($"Hour".asc, $"TotalValue".desc)) 结果如下: +----+--------+----------+ |Hour|Category|TotalValue| +----+--------+----------+ | 0| cat26| 30.9| | 0| cat13| 22.1| | 0| cat95| 19.6| | 0| cat105| 1.3| | 1| cat67| 28.5| | 1| cat4| 26.8| | 1| cat13| 12.6| | 1| cat23| 5.3| | 2| cat56| 39.6| | 2| …

9
CTE和SubQuery之间的区别?
来自这篇文章如何在以下过程中使用ROW_NUMBER? 答案有两种版本,一种使用a sub-query,另一种使用a CTE来解决相同的问题。 现在,使用CTE (Common Table Expression)“子查询”而不是“子查询”有什么好处(因此,查询的实际可读性更高) 使用的唯一的优点CTE了sub-select,是我可以实际命名的sub-query。当将CTE用作简单(非递归)CTE时,这两者之间还有其他区别吗?

9
在SQL字符串中转义&字符
我正在尝试在我的sql数据库中按名称查询某行,并且它有一个&符。我试图先设置一个转义字符,然后再对“&”符号进行转义,但是由于某种原因,这是行不通的,而且我不确定我到底是什么问题。 Set escape '\' select * from V1144engine.T_nodes where node_id in( select node2_id from V1144engine.T_edges where node1_id in( select node2_id from V1144engine.T_edges where node1_id in( select node2_id from V1144engine.T_edges where node1_id = (select node_id from V1144engine.T_nodes where node_name = 'Geometric Vectors \& Matrices'))) and edge_type_id = 1) and node_type_id = …
143 sql  oracle  escaping  sqlplus 


11
确定记录是否存在的最快方法
就像标题所暗示的那样……我正在尝试以最少的开销找出最快的方法来确定表中是否存在记录。 查询样例: SELECT COUNT(*) FROM products WHERE products.id = ?; vs SELECT COUNT(products.id) FROM products WHERE products.id = ?; vs SELECT products.id FROM products WHERE products.id = ?; 假设?交换为'TB100'...,第一个查询和第二个查询都将返回完全相同的结果(例如1,此对话...)。最后一个查询将按'TB100'预期返回;如果id表中不存在,则不。 目的是弄清楚是否id在表中。如果不是,则程序将接下来插入记录,如果是,则程序将跳过该记录或基于此问题范围之外的其他程序逻辑执行UPDATE查询。 哪个更快,开销更少?(这将在每个程序运行中重复数万次,并且一天将运行多次)。 (通过提供的M $ JDBC驱动程序从Java对M $ SQL Server运行此查询)

2
如何使用口才/流利的单个查询插入多行
我有以下查询: $query = UserSubject::where('user_id', Auth::id())->select('subject_id')->get(); 并按预期得到以下结果: [{"user_id":8,"subject_id":9},{"user_id":8,"subject_id":2}] 有没有一种方法可以将上述结果复制到另一个表中,以便我的表看起来像这样? ID|user_id|subject_id 1 |8 |9 2 |8 |2 我的问题是$query可以预期任意数量的行,因此不确定如何迭代未知数量的行。
143 php  sql  laravel  eloquent 

10
MySQL的“ between”子句不包括在内?
如果我运行带有between子句的查询,它似乎排除了结束值。 例如: select * from person where dob between '2011-01-01' and '2011-01-31' dob从'2011-01-01'到'2011-01-30'的所有结果;跳过dob“ 2011-01-31” 所在的记录。谁能解释这个查询的行为方式,以及如何修改它以包含dob“ 2011-01-31” 所在的记录?(由于用户选择了结束日期,因此未在结束日期前加上1。)
142 sql  mysql  between 


8
检查对SQL Server表的更改?
如何在不使用触发器或不以任何方式修改数据库结构的情况下监视SQL Server数据库中对表的更改?我首选的编程环境是.NET和C#。 我希望能够支持任何SQL Server 2000 SP4或更高版本。我的应用程序是另一家公司产品的附加数据可视化。我们的客户群有成千上万,因此我不想在每次安装时都提出修改第三方供应商表的要求。 通过“改变到餐桌”我平均变化表数据,而不是更改为表结构。 最终,我希望更改能够触发我的应用程序中的事件,而不是必须间隔检查更改。 根据我的要求(不进行触发器或架构修改,SQL Server 2000和2005),最好的操作方案似乎是BINARY_CHECKSUM在T-SQL中使用该函数。我计划实现的方式是这样的: 每X秒运行以下查询: SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM sample_table WITH (NOLOCK); 并将其与储值进行比较。如果值已更改,请使用查询逐行浏览表: SELECT row_id, BINARY_CHECKSUM(*) FROM sample_table WITH (NOLOCK); 并将返回的校验和与存储的值进行比较。

4
更改表添加列语法
我试图以编程方式将标识列添加到表Employees。不知道我的语法出了什么问题。 ALTER TABLE Employees ADD COLUMN EmployeeID int NOT NULL IDENTITY (1, 1) ALTER TABLE Employees ADD CONSTRAINT PK_Employees PRIMARY KEY CLUSTERED ( EmployeeID ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 我究竟做错了什么?我试图导出脚本,但是SQL Mgmt Studio会执行整个Temp Table重命名的操作。 更新:我认为第一条语句“关键字'COLUMN'附近的语法不正确”令人窒息。
142 sql  sql-server  tsql  ddl 

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.