操作:
备注:
发现:
附部分语句
操作:
1、使用 SQL 语句创建SPJ数据库。
2、使用 SQL 语句选择 SPJ 为当前使用数据库。
3、使用 SQL 语句在SPJ数据库中创建4个数据表:S,P,J,SPJ,不用定义实体完整性和参照完整性,待讲完有关概念后再练习。
show一下
4、使用 SQL 语句 INSERT 向 SPJ数据库中的数据表S,P,J,SPJ插入数据。
5、使用 SQL 语句 ALTER TABLE 为 S 表添加一个名为“备注”的数据列,其数据类型为 varchar(50)。
6、使用 SQL 语句创建数据库SPJ1,并在此数据库下创建表S,表结构与数据库SPJ 的 S表相同。
7、使用 SQL 语句删除 SPJ1 表中供应商代码为S2 的记录。
8、使用 SQL语句更新SPJ1库中S表中学号为供应商代码为S1的所在城市为“杭州”。
9、删除SPJ1库中S表。
10、删除数据库SPJ1。
备注:
设有一个SPJ数据库,包括S,P,J,SPJ四个关系表(关系模式):
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY)。
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;
工程项目表J 由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量组成(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
发现:
一、几个关于删除的语句
关于DELETE FROM S;只是从表 S 中删除数据,并不会删除表本身。执行该语句后,S 表中的所有数据将被删除,但表结构仍然保持不变。
与之类似的是,TRUNCATE TABLE,它是一种DDL(数据定义语言)操作,它直接清空表而不是逐行删除。执行 TRUNCATE TABLE S; 后,表 S 中的所有数据将被立即清空,但表结构将保持不变。
而DROP TABLE S; 语句用于完全删除表 S,包括表的结构和其中的所有数据。执行该语句后,S 表将被彻底删除,无法再访问或恢复表和数据。
总而言之,DELETE FROM S;和TRUNCATE TABLE;是针对于表中数据而言的,前者可以添加where按需删除,后者表示清空,一次性删除;而 DROP TABLE S;则是针对于表而言的 ,可以删除整个表及其中的数据。
二、
关于第二个发现,是由于误操作多输入一个table,发现前者是关于表本身的描述,而后者是关于表结构信息的描述。但仔细一瞅,觉得有些奇怪,找到的资料说这是查询执行计划,“是数据库系统在执行查询时生成的一种表示查询执行方式的信息。执行计划提供了有关查询的详细信息,包括查询涉及的表、连接类型、使用的索引、扫描行数等等。这些信息对于优化查询性能和调试查询问题非常有用。”不大明白,那好吧,就暂时如此这般吧。
附部分语句
CREATE TABLE S (
SNO VARCHAR(10),
SNAME VARCHAR(50),
STATUS INT,
CITY VARCHAR(50)
);
CREATE TABLE P (
PNO VARCHAR(10),
PNAME VARCHAR(50),
COLOR VARCHAR(20),
WEIGHT INT
);
CREATE TABLE J (
JNO VARCHAR(10),
JNAME VARCHAR(50),
CITY VARCHAR(50)
);
CREATE TABLE SPJ (
SNO VARCHAR(10),
PNO VARCHAR(10),
JNO VARCHAR(10),
QTY INT
);
INSERT INTO S VALUES
('S1', '精益', 20, '天津'),
('S2', '盛锡', 10, '北京'),
('S3', '东方红', 30, '北京'),
('S4', '丰泰盛', 20, '天津'),
('S5', '为民', 30, '上海');
INSERT INTO P (PNO, PNAME, COLOR, WEIGHT) VALUES
('P1', '螺母', '红', 12),
('P2', '螺栓', '绿', 17),
('P3', '螺丝刀', '蓝', 14),
('P4', '螺丝刀', '红', 14),
('P5', '凸轮', '蓝', 40),
('P6', '齿轮', '红', 30);
INSERT INTO J (JNO, JNAME, CITY) VALUES
('J1', '三建', '北京'),
('J2', '一汽', '长春'),
('J3', '弹簧厂', '天津'),
('J4', '造船厂', '天津'),
('J5', '机车厂', '唐山'),
('J6', '无线电厂', '常州'),
('J7', '半导体厂', '南京');
INSERT INTO SPJ (SNO, PNO, JNO, QTY) VALUES
('S1', 'P1', 'J1', 200),
('S1', 'P1', 'J3', 100),
('S1', 'P1', 'J4', 700),
('S1', 'P2', 'J4', 700),
('S1', 'P2', 'J2', 100),
('S2', 'P3', 'J1', 400),
('S2', 'P3', 'J2', 200),
('S2', 'P3', 'J4', 500),
('S2', 'P3', 'J5', 400),
('S2', 'P5', 'J1', 400),
('S2', 'P5', 'J2', 100),
('S3', 'P1', 'J1', 200),
('S3', 'P3', 'J1', 200),
('S4', 'P5', 'J1', 100),
('S4', 'P6', 'J3', 300),
('S4', 'P6', 'J4', 200),
('S5', 'P2', 'J4', 100),
('S5', 'P3', 'J1', 200),
('S5', 'P6', 'J2', 200),
('S5', 'P6', 'J4', 500);