-3

我很抱歉大家,它不允许我发表评论。你说的对。这是我遇到问题的 ALTER。如何将累积 GPA 列添加到 gpa 显示在 0.00 和 4.00 之间的表中(使用 alter 语句)

CREATE database "IS4440_DuBoseJasmine"

CREATE TABLE StudentInformation (
StudentID               CHAR(7) not null,
StudentSSN              CHAR(9) null,
StudentFirstName        VARCHAR(50) null,
StudentLastName         VARCHAR(50) null,
StudentMiddleName       VARCHAR(50) null,
StudentHomeCountry      CHAR(2) not null
)
/*2*/
ALTER TABLE StudentInformation ADD Cumulative GPA ;

/*3*/
INSERT INTO StudentInformation (StudentID, StudentLastName, StudentFirstName,     StudentMiddleName,     StudentHomeCountry)
VALUES ('1352154', 'DuBose', 'Jasmine', 'Leigh', 'US')
INSERT INTO StudentInformation (StudentID, StudentLastName, StudentFirstName, StudentMiddleName, StudentHomeCountry)
VALUES ('1234565', 'Smith', 'Johnny', 'Apple', 'GB');
/*4*/
UPDATE StudentInformation SET StudentSSN = 123456789
WHERE StudentID = 1352154;
4

2 回答 2

2

更新工作正常(在 SQL Fiddle 上演示),失败的是 ALTER TABLE 语句。这一行:

ALTER TABLE StudentInformation ADD Cumulative GPA;

应该:

ALTER TABLE StudentInformation ADD [Cumulative GPA] INT -- OR WHATEVER TYPE IT SHOULD BE;

更改表文档

顺便说一句,虽然这可能只是一个示例,但如果不是,您将需要USE在创建表之前使用您的数据库:

CREATE database "IS4440_DuBoseJasmine";
GO
USE IS4440_DuBoseJasmine;

CREATE TABLE ...

否则,您将只是在您连接到的任何数据库中创建表。

于 2013-10-04T15:37:23.223 回答
0

您的更新查询很好,您的 ALTER 语句失败了,您在没有任何数据类型或约束的情况下向表中添加新列,试试这个来改变您的表

您可以使用Numeric(3,2)or Decimal(3,2),这意味着总共三位小数点后两位,因此最多9.99.

 ALTER TABLE StudentInformation ADD CumulativeGPA Numeric(3,2) NULL

要更改表格以添加新列,请创建该列NULLABLE,并在命名列时不要给空格。

使列类型不可为空

ALTER TABLE StudentInformation ALTER COLUMN CumulativeGPA  DECIMAL(3,2) NULL ;
于 2013-10-04T15:43:49.010 回答