Tag: sql

LOAD DATA LOCAL,如何跳过第一行?

我试图加载一个CSV文件到我的MySQL数据库,但我想跳过第一行。 我其实它包含我的列的名称,没有有趣的数据。 这是我正在使用的查询: LOAD DATA LOCAL INFILE '/myfile.csv' INTO TABLE tableName FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n' (column,column,column);

SQL Server 2005和临时表范围

我已经阅读了临时表和范围的主题,我所看到的所有答案似乎都没有谈到我的担心之一。 我知道本地临时表的作用域只对存储过程或子存储过程的生命周期有效。 然而,在协调方面情况如何。 即如果我有一个存储过程,创build一个临时表,这是从两个不同的进程,但从相同的用户/连接string调用临时表,共享之间的两个调用该存储过程的临时表,或将是一种情况每次调用存储过程都会创build一个唯一的临时表实例。 我会假定临时表属于调用存储过程的范围,但是我想确定在我走下这条路之前。

组合索引如何工作?

我已经在表格上创build了​​复合索引( 索引为你的math民谣),并假设它们是如何工作的。 我只是好奇,如果我的假设是正确的或不。 我假设当你列出索引列的顺序时,你也指定了索引如何分组。 例如,如果您有列a , b和c ,并且按照相同的顺序指定索引a ASC , b ASC和c ASC则结果索引本质上将是a每个“组”的许多索引。 它是否正确? 如果没有,那么结果指数究竟是什么样子呢?

使用从表中收集的值创buildSQL INSERT脚本

我需要创build一个INSERT脚本,以便在另一个数据库中插入相同的数据。 如果在SQL Server中select“脚本表为>插入到”我可以轻松地重新创buildINSERT语句的框架。 但是,因为我有几个logging迁移,我宁愿避免不得不手动插入值。 因此,有没有办法“自动”获取INSERT脚本以及填入的值(来自目标表)? 我知道这可以用SSIS完成,但是我想知道是否可以用更快的解决scheme。

postgresql外键语法

我有两个表,你会看到我的posgresql代码下面。 第一个表的学生有两列,一个是student_name,另一个是主键student_id。 在我的第二个名为tests的表中,它有4列,一个用于subject_id,一个用于subject_name,然后一个用于学生最高评分最高的学生。 我试图让我的学生表中的student_id指向highestStudent_id。 这是我下面的代码,不知道如果语法是正确的: CREATE TABLE students ( student_id SERIAL PRIMARY KEY, player_name TEXT); CREATE TABLE tests ( subject_id SERIAL, subject_name, highestStudent_id SERIAL REFERENCES students); highestStudent_id SERIAL REFERENCES students是否正确地使用了最highestStudent_id SERIAL REFERENCES students ? 因为我看过另一个像highestStudent_id REFERENCES students(student_id)) 请问在postgresql中创build外键的正确方法是什么?

内在join三张桌子

我有三个表,我希望内部join他们之间的共同列。 说我的桌子是; TableA TableB TableC 我希望joinAB ,但是BC也都是由这个共同的领域所共同的。 我已经join了两张这样的桌子; dbo.tableA AS A INNER JOIN dbo.TableB AS B ON A.common = B.common 我如何添加第三个?

如何从C#.net代码传递一个空variables到SQL存储过程

我从一个C#.net代码调用SQL存储过程: SqlHelper.ExecuteDataset(sqlConnection, CommandType.StoredProcedure, STORED_PROC_NAME, sqlParameters); sqlParametersvariables的定义如下: SqlParameter[] sqlParameters = new SqlParameter[SQL_NUMBER_PARAMETERS]; Log.Logger.Debug(string.Format("Running proc: {0} ", STORED_PROC_NAME)); SqlParameters[0] = new SqlParameter("fieldID", SqlDbType.BigInt ); SqlParameters[0].Value = fieldID; SqlParameters[0].Direction = ParameterDirection.Input; 我现在需要传入另外两个参数到这个存储过程(都是SqlDateTimetypes),在这种情况下这些参数都是NULL 。 谢谢, 在

CASE .. WHEN在Oracle SQL中expression

我有1列的表,并有以下数据 Status a1 i t a2 a3 我想在我的select查询中显示以下结果 Status| STATUSTEXT a1 | Active i | Inactive t | Terminated a2 | Active a3 | Active 我能想到的一种方法是在select查询中使用Switch Whenexpression式 SELECT status, CASE status WHEN 'a1' THEN 'Active' WHEN 'a2' THEN 'Active' WHEN 'a3' THEN 'Active' WHEN 'i' THEN 'Inactive' WHEN 't' THEN 'Terminated' END AS StatusText FROM […]

在MySQL中可以替代列名“order”

当我创build一个需要由用户定义的sorting的新表时,我的第一个想法总是转到列名“order”。 当然,这是不好的,因为它是一个保留字。 你在你的数据库模型中给你哪个名字? 谢谢你的帮助。

如何删除SQL中的多行,其中id =(x到y)

我试图运行一个SQL查询来删除表中id为163到265的行 我试图删除更less的行数 DELETE FROM `table` WHERE id IN (264, 265) 但是,当涉及到一次删除100的行,有没有类似于上述方法的查询我也试图使用这种查询,但未能执行它 DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = ) 请告诉我做查询做上面的动作…