我很抱歉,不允许我发表评论。你是对的。这是我遇到的问题。如何将累积GPA列添加到表中(使用alter语句),其中gpa显示在0.00和4.00之间
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;
答案 0 :(得分:2)
更新工作正常(demonstrated on SQL Fiddle),ALTER TABLE语句失败。这一行:
ALTER TABLE StudentInformation ADD Cumulative GPA;
应该是:
ALTER TABLE StudentInformation ADD [Cumulative GPA] INT -- OR WHATEVER TYPE IT SHOULD BE;
<强> ALTER TABLE Documentation 强>
顺便说一下,虽然这可能只是一个例子,但如果不是这样的话,在创建表之前你需要USE
数据库:
CREATE database "IS4440_DuBoseJasmine";
GO
USE IS4440_DuBoseJasmine;
CREATE TABLE ...
否则,您只需在所连接的数据库中创建表。
答案 1 :(得分:0)
您的更新查询没问题,您的ALTER语句失败了,您正在向表中添加新列而没有任何数据类型或约束,请尝试此更改您的表
您可以使用Numeric(3,2)
或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 ;