sql作业一(用不上的证明图我都没加上)

该博客详细介绍了如何使用SQL语句创建和修改数据库,包括添加和删除字段、外键约束以及索引。创建了一个名为XSGL的学生管理系统数据库,包含student、course和sc表。此外,还展示了如何构建MySPJ数据库,包括S、P、J和SPJ四个表,并添加了示例数据。最后,对MySPJ数据库的表结构进行了修改,如设置字段唯一性、范围检查和类型转换等。
摘要由CSDN通过智能技术生成

实验一SPJ数据定义

一部分图是在实验课上做时拍的,另一部分是在自己电脑上做时拍的

1.创建用于学生管理的数据库,数据库名为XSGL,包含学生信息,课程信息和选课信息。

数据库XSGL包含下列3 个表:

(l) student:学生基本信息。

(2)course:课程信息表。

(3)sc:学生选课表。

 

 

 

 

2.用ALTER语句修改表结构;

  1. STUDENT表中增加一个字段入学时间scome,
  2. alter table student
  3. add scome date
  4. 删除STUDENT表中sdept字段;
  5. alter table student
  6. drop column sdept
  7. 删除创建的SC表中CNO字段和COURSE表CNO字段之间的外键约束;
  8. alter table sc
  9. DROP fk_course
  10. 重建3)中删除的约束
  11. alter table sc
  12. add constraint fk_course foreign key(cno) references course(cno)
  1. 用CREATE INDEX语句在表STUDENT的SNAME字段上创建唯一索引;
  2. Create unique index QU_sna on student(sname)
  3. 用DROP语句删除上题中创建的索引;
  4. drop index QU_sna on student

用SQL语句建立如下MySPJ数据库,包括S,P,J,和SPJ四个基本表(教材第二章习题6中的四个表,并添加教材示例数据),要求实现关系的三类完整性。

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。

代码如下:

Create database MYSPJ;

use MYSPJ;

  CREATE TABLE S

  (SNO CHAR(2),

  SNAME CHAR(6),

  STATUS SMALLINT,

  CITY CHAR(4),

  );

  

  CREATE TABLE P

  (PNO CHAR(2),

  PNAME CHAR(10),

  COLOR CHAR(2),

  WEIGHT SMALLINT,

  );

  

  CREATE TABLE J

  (JNO CHAR(2),

  JNAME CHAR(10),

  CITY  CHAR(4),

  );

  

  CREATE TABLE SPJ

  (SNO CHAR(2),

  PNO CHAR(2),

  JNO CHAR(2),

  QTY SMALLINT);

  INSERT INTO S

  VALUES('S1','精益',20,'天津');

  INSERT INTO S

  VALUES('S2','盛锡',10,'北京');

  INSERT INTO S

  VALUES('S3','东方红',30,'北京');

  INSERT INTO S

  VALUES('S4','丰盛泰',20,'天津');

  INSERT INTO S

  VALUES('S5','为民',30,'上海');

  INSERT INTO J

  VALUES('J1','三建','北京');

  INSERT INTO J

  VALUES('J2','一汽','长春');

  INSERT INTO J

  VALUES('J3','弹簧厂','天津');

  INSERT INTO J

  VALUES('J4','造船厂','天津');

  INSERT INTO J

  VALUES('J5','机车厂','唐山');

  INSERT INTO J

  VALUES('J6','无线电厂','常州');

  INSERT INTO J

  VALUES('J7','半导体厂','南京');

insert into SPJ values('s1','p1','j1',200),

('s1','p1','j3',100),

('s1','p1','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);

  1. 用SQL语句实现对MySPJ数据库中表结构的修改
  1. S表的Sname属性列的取值唯一。

alter table s add unique(sname);

  1. P表中Weight属性列的取值范围在1-50之间。

alter table P

add check(weight>=0 and weight<=50);

  1. J表中Jname的取值不能为空,并且是唯一的。

alter table J

alter column Jname char(20) not null ;

alter table J add constraint UQ_Jna unique(Jname);

  1. SPJ表中QTY属性列的类型是int。

alter table SPJ

alter column QTY int;

  1. 给S表增加Sphone和Semail两列,分别用来存放供应商的电话号码和电子邮箱。

Alter table S

Add Sphone char(30);

Alter table S

Add Semail char(30);

  1. 删除Jname属性列的唯一约束。

alter table J

drop constraint UQ_Jna;

  1. 删除S表中属性列Semail。

alter table S

drop column Semail;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值