2013-05-04 81 views
0

我正在学习SQL,一些朋友建议我安装XAMPP,因为它都已经过预配置并可以使用。那么,我安装它,现在我创建了2个数据库,我通过PhpMyAdmin进行练习。这就是说,我试图做两件事情:DMBS:Union,intersection与PhpMyAdmin和MySql opninons的区别

a)设置OperationsUnion,Intersect,Difference。唯一可用的PhpMyAdmin(因此MySql我猜,因为我发现PhpMyAdmin是基于MySql的)是UNION。 INTERSECT和DIFFERENCE关键字不存在。那该怎么做?

b)直接使用mysql.exe控制台。我尝试使用像USE数据库名称等命令,但它说“访问拒绝用户'''本地主机'数据库名'

我试图把连接命令在所有可能的口味(连接用户传递主机数据库,连接用户传递数据库和所有类型的组合),但没有效果。

如何做到这一点?似乎Phpmyadmin为数据库设置了自己的密码。我输入了空密码并在Phpmyadmin中检查了那些密码是空密码我在做什么错了?

+0

MySQL(不像大多数现代DBMS)不支持'INTERSECT'或'EXCEPT'。 – 2013-05-04 21:10:31

+0

这是为什么?感谢Explosion Pills的帖子,我发现你做了INTERSECT,除了INNER和OUTER JOINS。 – 2013-05-06 19:58:12

+0

为什么是什么?你的意思是:“*为什么MySQL缺少这么多标准的SQL功能?”好吧,我不知道。 – 2013-05-06 20:03:49

回答

0

UNION关键字在phpmyadmin上工作得很好Phpmyadmin只是MySQL的一个接口尝试在phpmyadmin中使用“SQL”视图来直接测试你的SQL查询。

如果涉及到mysql.exe,请尝试使用用户进行连接,例如, [email protected]。默认情况下,root不应该有密码。

+0

我尝试各种命令等 连接“namedatabase”“根@本地”“”(空密码) 连接“namedatabase”“根” @“本地主机”‘’ 连接‘namedatabase’‘根’‘本地主机’ '' 等等。所有给予拒绝访问,不能访问localhost blablablah和所有蒸BS。 到底是什么?如何正确的语法? – 2013-05-05 12:58:21

0

a)UNION是一个MySQL关键字,它是两个查询的联合。这比工会相交不同,并且概念,它们通过JOIN一切都实现。 This may help explain

b)至于您的密码,用户名可能默认为root,但它可能是别的。如果你没有设置它,密码可能是空字符串。也许尝试运行xampp\mysql\resetroot.bat

+1

重新a)这并非完全正确。 SQL标准确实知道“EXCEPT”(可能是OP与“差异”的含义)和“INTERSECT”(其中*是交集运算符)。这不是全部“只是”JOIN。但是,与大多数现代DBMS不同,MySQL不支持它们。 – 2013-05-04 21:08:35

+0

@a_horse_with_no_name但他的问题是关于mysql – 2013-05-04 21:11:07

+0

我知道,但OP“想学习SQL”,所以我认为他/她可能会感兴趣的是,这仅仅是MySQL的限制,而不是语言本身。 – 2013-05-04 21:12:10