“SQL语言”的版本间的差异
Jihongchang(讨论 | 贡献) (→3)数据更新) |
Jihongchang(讨论 | 贡献) |
||
第238行: | 第238行: | ||
D、FOREIGN KEY REFERENCES Dept(部门号) √ | D、FOREIGN KEY REFERENCES Dept(部门号) √ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 某数据库系统中,假设有部门关系 Dept(部门号,部门名,负责人,电话),其中, | ||
+ | |||
+ | “部门号”是该关系的主键;员工关系 Emp(员工号,姓名,部门,家庭住址), | ||
+ | |||
+ | 为在员工关系 Emp 中增加一个“工资字段”,其数据类型为数字型并保留2位小数,可采用的SQL语句为()。 | ||
+ | |||
+ | A、ALTER TABLE Emp ADD 工资 CHAR(6,2) | ||
+ | |||
+ | B、UPDATE TABLE Emp ADD 工资 NUMERIC(6,2) | ||
+ | |||
+ | C、ALTER TABLE Emp ADD 工资 NUMERIC(6,2) √ | ||
+ | |||
+ | D、ALTER TABLE Emp MODIFY 工资 NUMERIC(6,2) |
2022年9月29日 (四) 06:53的版本
https://www.bilibili.com/video/BV1hg411V7Bm/?p=94
1)创建表
CREATE TABLE <表名1> (
<列名><数据类型>[列级完整性约束条件] [,<列名><数据类型>[列级完整性约束条件]]…… [,<表级完整性约束条件>]); |
数据类型:
- 字符型:char(N)
- 整型:int
- 浮点型:float
- 日期型:date YYYY-MM-DD
列级完整性约束:
- NULL(可以取空值)、NOT NULL(不能取空值)
- UNIQUE(取值唯一)
- PRIMARY KEY(列名)主键
- FOREIGN KEY(列名1) REFERENCES 表名2(列名2)外键
例题1:设有学生、课程和学生选课关系模式分别用基本表S、C和SC表示,
其中:S(Sno,Sname,SD,Sage,Sex),属性表示学号、姓名、系、年龄和性别;
C(Cno,Cname,teacher),属性表示课程号、课程名和授课教师;
SC(Sno,Cno,Grade),属性表示学号、课程号和成绩。
除年龄与成绩的数据类型为整型int外,其余属性均为字符型char。
CREATE TABLE S (
Sno char(5) PRIMARY KEY,
Sname char(16) NOT NULL,
SD char(10),
Sage int,
Sex char(2)
);
CREATE TABLE C(
Cno char(2) PRIMARY KEY,
Cname char(16) UNIQUE,
teacher char(8)
);
CREATE TABLE SC (
Sno char(5),
Grade int,
PRIMARY KEY(Sno, Cno),
FOREIGN KEY(Sno) REFERENCES S(Sno),
FOREIGN KEY(Cno) REFERENCES C(Cno)
);
考点1:创建表
某高校教学管理系统中的院系关系 Department 和学生关系 Students 的模式分别为:
Department(院系号,院系名,负责人,办公电话),学生关系 Students(学号,姓名,身份证号,院系号,联系电话,家庭住址)。
Department 中的“院系号”唯一标识一个院系,Students 中的“学号”能唯一标识一名学生,“家庭住址”可进一步分为邮编、省、市、街道。
根据以上描述可知,关系 Students 的候选键为(),
A、学号
B、身份证号和院系号
C、学号和身份证号 √
D、学号和院系号
“家庭住址”为()。
A、简单属性
B、复合属性 √
C、多值属性
D、派生属性
某高校教学管理系统中的院系关系 Department 和 学生关系 Students。
Department 中的“院系号”唯一标识一个院系,Students 中的“学号”能唯一标识一名学生。
创建 Students 的SQL语句如下,请填补其中的空缺。
CREATE TABLE Students (
学号 CHAR(8) PRIMARY KEY,
姓名 CHAR(16),
身份证号 CHAR(18),
院系号 CHAR(4),
联系电话 CHAR(13),
家庭住址 CHAR(30),
FOREIGN KEY();
A、(联系电话) REFERENCES Department(办公电话)
B、(院系号) REFERENCES Department(院系号) √
C、(院系号) REFERENCES Students(学号)
D、(负责人号) REFERENCES Students(学号)
2)修改和删除
ALTER TABLE <表名>
[ADD <新列名><数据类型><列级完整性约束条件>] 添加属性列
[DROP <列名/完整性约束条件>] 删除属性列
[MODIFY/CHANGE<列名><数据类型>] 修改属性列的数据类型
[CHANGE <列名><新列名><数据类型>] 修改属性列名
DROP TABLE <表名> 例如用“DROP TABLE Student”删除表 Student
3)数据更新
操作类别 | 语法 | 示例 |
---|---|---|
插入数据 | INSERT INTO <表名>
[(<属性列1> [,<属性列2>……)] VALUES (<常量1>[,<常量2>]……); 注:VALUES子句可用子查询替代 |
INSERT INTO student
VALUES ('95020', '李四', '男', 'CS', '18'); INSERT INTO SC(Sno, Cno) VALUES('95020', '1'); |
修改数据 | UPDATE <表名>
SET <列名>=<表达式>[,<列名>=<表达式>]…… [WHERE <条件>]; |
将学生95001的年龄改为23岁
UPDATE student SET Sage=23 WHERE Sno='95001'; |
删除数据 | DELETE
FROM <表名> [WHERE <条件>]; |
删除学号为95019的学生记录
DELETE FROM student WHERE Sno='95019'; |
考点2:数据修改
某数据库系统中,假设有部门关系 Dept(部门号,部门名,负责人,电话),其中,
“部门号”是该关系的主键;员工关系 Emp(员工号,姓名,部门,家庭住址),属性“家庭住址”包含省、市、街道以及门牌号,
该属性是一个(1)属性。
(1)
A、简单
B、复合 √
C、多值
D、派生
创建 Emp 关系的SQL语句如下:
CREATE TABLE Emp(
员工号 CHAR(4) (2),
姓名 CHAR(10),
部门 CHAR(4),
家庭住址 CHAR(30),
(3);
)
(2)
A、PRIMARY KEY √
B、NULL
C、FOREIGN KEY
D、NOT NULL
(3)
A、PRIMARY KEY NOT NULL
B、PRIMARY KEY UNIQUE
C、FOREIGN KEY REFERENCES Dept(部门名)
D、FOREIGN KEY REFERENCES Dept(部门号) √
某数据库系统中,假设有部门关系 Dept(部门号,部门名,负责人,电话),其中,
“部门号”是该关系的主键;员工关系 Emp(员工号,姓名,部门,家庭住址),
为在员工关系 Emp 中增加一个“工资字段”,其数据类型为数字型并保留2位小数,可采用的SQL语句为()。
A、ALTER TABLE Emp ADD 工资 CHAR(6,2)
B、UPDATE TABLE Emp ADD 工资 NUMERIC(6,2)
C、ALTER TABLE Emp ADD 工资 NUMERIC(6,2) √
D、ALTER TABLE Emp MODIFY 工资 NUMERIC(6,2)