2014-10-05 74 views
0

我将不胜感激不管我是SQL新手还是使用Microsoft Access。我自己写这个,所以如果出现什么问题,请告诉我!语法错误 - SQL微软访问

此外,如果你可以回答这个问题,我必须编写并运行一个SQL查询来列出某个课程的所有事件。我该如何开始这样做?我在书中找不到任何东西。

CREATE TABLE CUSTOMER (
    CustomerNumber Int PRIMARY KEY, 
    CustomerLastName Char (25) NOT NULL, 
    CustomerFirstName Char (25) NOT NULL, 
    Phone    Char (12) NULL 
); 

CREATE TABLE COURSE (
    CourseNumber Int PRIMARY KEY, 
    Course  Char (15) NOT NULL, 
    CourseDate DateTime NOT NULL, 
    Fee   Currency NOT NULL 
); 

CREATE TABLE ENROLLMENT (
    CustomerNumber Int PRIMARY KEY, 
    CourseNumber Int NOT NULL,   
    AmountPaid  Currency NOT NULL 
); 
+2

你丢失的主key'后'一个逗号。要回答你的其他问题,请使用'where'... – sgeddes 2014-10-05 20:42:56

+2

'“我在书中找不到任何东西” - 我不确定你用什么书来学习SQL和/或Access,但是如果它不包括*查询数据*(选择数据),那么它听起来不像正确的书。 – David 2014-10-05 20:44:24

+0

它不包含有关语法错误的任何内容,我已经请教过我的教授但没用。我添加了主键后,它移动到第二个表,并说仍然语法错误。 – guinea2 2014-10-05 21:19:19

回答

0

我测试你的查询在MS艾策斯2007和MS Access 2010和工作正常,

你应该在同一时间运行的每个查询,而不是一次全部,当我尝试执行完整的SQL我得到相同错误信息。

SQL1:

CREATE TABLE CUSTOMER (
    CustomerNumber Int PRIMARY KEY, 
    CustomerLastName Char (25) NOT NULL, 
    CustomerFirstName Char (25) NOT NULL, 
    Phone    Char (12) NULL 
); 

SQL2:

CREATE TABLE COURSE (
    CourseNumber Int PRIMARY KEY, 
    Course  Char (15) NOT NULL, 
    CourseDate DateTime NOT NULL, 
    Fee   Currency NOT NULL 
); 

SQL3:

CREATE TABLE ENROLLMENT (
    CustomerNumber Int PRIMARY KEY, 
    CourseNumber Int NOT NULL,   
    AmountPaid  Currency NOT NULL 
); 
+0

谢谢,我确实单独运行并找出了这些问题。谢谢 – guinea2 2014-10-06 04:13:31

0

一些意见,可以帮助您,首先检查在MS-Access中的有效数据类型在当前的版本,例如:MSDN-MS-Access DataTypes。你会看到Char和Int无效,Numeric也没有参数(你可能想用Dobule)。另外,您在第一个CREATE TABLE CUSTOMER语句中的PRIMARY KEY之后缺少一个逗号(,)。使用GUI界面创建表格然后再转移到DDL可能是一种很好的做法。

+0

谢谢我想要货币,实际上你的链接帮助。但是,我仍然在我的第二个创建表中收到语法错误? – guinea2 2014-10-05 21:35:39

+0

3件事,写(15)不要(15)并告诉我们确切的错误信息。 Alos分别运行每个创建语句而不是作为一个组。这样更容易发现错误。我假设你修正了'int'。 – NoChance 2014-10-05 21:43:44

+0

另外,使用相同的名称命名列和表可能不是一个好主意。 Table Course有一个名为Course的列 - 即使语法允许,这可能会造成混淆。 – NoChance 2014-10-05 22:02:25