此外怎么办LEFT JOIN
,RIGHT JOIN
和FULL JOIN
适合吗?
在SQL Server中,可以insert
使用SELECT
语句进入表:
INSERT INTO Table (col1, col2, col3)
SELECT col1, col2, col3
FROM other_table
WHERE sql = 'cool'
Run Code Online (Sandbox Code Playgroud)
是否也可以通过?更新SELECT
?我有一个包含值的临时表,并希望使用这些值更新另一个表.也许是这样的:
UPDATE Table SET col1, col2
SELECT col1, col2
FROM other_table
WHERE sql = 'cool'
WHERE Table.id = other_table.id
Run Code Online (Sandbox Code Playgroud) 如果插入用户输入而不修改SQL查询,则应用程序容易受到SQL注入的攻击,如下例所示:
$unsafe_variable = $_POST['user_input'];
mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");
Run Code Online (Sandbox Code Playgroud)
这是因为用户可以输入类似的内容value'); DROP TABLE table;--
,查询变为:
INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')
Run Code Online (Sandbox Code Playgroud)
可以采取哪些措施来防止这种情况发生?
如何将具有默认值的列添加到SQL Server 2000/SQL Server 2005中的现有表中?
鉴于索引在数据集大小增加时非常重要,有人可以解释索引在数据库无关的级别上的工作原理吗?
有关索引字段的查询的信息,请查看如何索引数据库列.
我有一个.sql
导出文件phpMyAdmin
.我想使用命令行将其导入到不同的服务器中.
我有一个Windows Server 2008 R2安装.我把.sql
文件放在C盘上,我尝试了这个命令
database_name < file.sql
Run Code Online (Sandbox Code Playgroud)
它不起作用我得到语法错误.
考虑一个包含三个行的名称的数据库表:
Peter
Paul
Mary
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以将其转换为单个字符串Peter, Paul, Mary
?
email
一个字段很容易找到:
SELECT name, COUNT(email)
FROM users
GROUP BY email
HAVING COUNT(email) > 1
Run Code Online (Sandbox Code Playgroud)
所以,如果我们有一张桌子
ID NAME EMAIL
1 John asd@asd.com
2 Sam asd@asd.com
3 Tom asd@asd.com
4 Bob bob@asd.com
5 Tom asd@asd.com
Run Code Online (Sandbox Code Playgroud)
这个查询将给我们John,Sam,Tom,Tom,因为他们都有相同的email
.
但是,我想要的是使用相同的name
和重复name
.
也就是说,我想得到"汤姆","汤姆".
我需要这个的原因:我犯了一个错误,并允许插入重复email
和email
值.现在我需要删除/更改重复项,所以我需要先找到它们.
SELECT GETDATE()
Run Code Online (Sandbox Code Playgroud)
返回: 2008-09-22 15:24:13.790
我希望那个日期部分没有时间部分: 2008-09-22 00:00:00.000
我怎么能得到它?
我有一组数据要一次插入,比如4行.
我的表有三列:Person
,Id
和Office
.
INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office");
INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office");
INSERT INTO MyTable VALUES ("Billy", 125, "London Office");
INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office");
Run Code Online (Sandbox Code Playgroud)
我可以Person
在一个单独的所有4行Id
?
sql ×10
sql-server ×5
t-sql ×3
database ×2
mysql ×2
command-line ×1
csv ×1
date ×1
datetime ×1
duplicates ×1
group-concat ×1
import ×1
indexing ×1
inner-join ×1
insert ×1
join ×1
outer-join ×1
performance ×1
php ×1
security ×1
select ×1