MQL实验(一)作业

1.定义下表要求的学生表Student,并用show columns from student命令显示表结构内容。

名称

含义

约束

类型

SNO

学号

primary key,NOT NULL

VARCHAR(10)

SNAME

姓名

UNIQUE,not null

VARCHAR(10)

SEX

性别

NOT NULL,取值为M或F

VARCHAR(2)

AGE

年龄

 

tinyint

CREATE TABLE Student
(
  SNO VARCHAR(10) PRIMARY KEY , 
  SNAME VARCHAR(10) UNIQUE NOT NULL , 
  SEX VARCHAR(2) CHECK(SEX='M'OR SEX='F') NOT NULL, 
  AGE TINYINT 
);
SHOW COLUMNS FROM Student;

UNIQUE NOT NULL中间不用加逗号        

SEX VARCHAR(2) CHECK(SEX='M'OR SEX='F') NOT NULL

 

2.按下表要求定义Course表,并用show columns from Course显示表结构;

名称

含义

约束描述

类型

CNO

课程号

Primary key

VARCHAR(10)

CNAME

课程名称

NOT NULL

VARCHAR(20)

CPNO

先行课号

Foreign key,参照CNO

VARCHAR(10)

CREDIT

学分

Not null

Decimal(3,1)

CREATE TABLE Course(
    CNO VARCHAR(10) PRIMARY KEY,
    CNAME VARCHAR(20) NOT NULL,
    CPNO VARCHAR(10),
    FOREIGN KEY(CPNO) REFERENCES Course(CNO),
    CREDIT DECIMAL(3,1) NOT NULL
    );
    SHOW COLUMNS FROM Course;

FOREIGN KEY(CPNO) REFERENCES Course(CNO)

DECIMAL(3,1):总长度为3,保留1位小数位。
 

3.按下表要求创建SC表,并用show columns from sc显示表结构。

特别提示:提交代码中需要包括stduent和course建表代码

名称

含义

约束描述

类型

SNO

学号

Foreign key,参照student(SNO)

VARCHAR(10)

CNO

课程号

Foreign key,参照course(CNO)

VARCHAR(10)

GRADE

成绩

Not null

Decimal(4,2)

其它要求:主码为:(SNO,CNO)

CREATE TABLE Student(
    SNO VARCHAR(10) PRIMARY KEY
);
CREATE TABLE Course(
     CNO VARCHAR(10) PRIMARY KEY
);
CREATE TABLE SC(
    SNO VARCHAR(10),
    CNO VARCHAR(10), 
    GRADE DECIMAL(4,2) NOT NULL,
    PRIMARY KEY(SNO,CNO),
    CONSTRAINT FOREIGN KEY(SNO) REFERENCES Student(SNO),
    CONSTRAINT FOREIGN KEY(CNO) REFERENCES Course(CNO)
    );
    SHOW COLUMNS FROM SC;

CONSTRAINT FOREIGN KEY(SNO) REFERENCES Student(SNO)--->外键约束

 

4.将下表Student表中“SNAME”属性列修改为VARCHAR(20)。

名称

含义

约束描述

类型

SNO

学号

Primary key

VARCHAR(10)

SNAME

姓名

UNIQUE,not null

VARCHAR(10)

SEX

性别

NOT NULL,取值为M或F

VARCHAR(2)

AGE

年龄

 

Tinyint

CREATE TABLE Student(
    SNO VARCHAR(10) PRIMARY KEY,
    SNAME VARCHAR(10) uNIQUE NOT NULL ,
    SEX VARCHAR(2) CHECK(SEX='M'OR SEX='F') NOT NULL,
    AGE TINYINT
    );
    ALTER TABLE Student MODIFY SNAME VARCHAR(20) UNIQUE NOT NULL;
    SHOW COLUMNS FROM Student;

ALTER TABLE Student MODIFY SNAME VARCHAR(20) UNIQUE NOT NULL;

 

5.对下面Student表增加“entrydate”属性列,Date类型。

名称

含义

约束描述

类型

SNO

学号

Primary key

VARCHAR(10)

SNAME

姓名

UNIQUE,not null

VARCHAR(20)

SEX

性别

NOT NULL,取值为M或F

VARCHAR(2)

AGE

年龄

 

Tinyint

CREATE TABLE STUDENT(
    SNO VARCHAR(10) PRIMARY KEY,
    SNAME VARCHAR(20) UNIQUE NOT NULL,
    SEX VARCHAR(2) NOT NULL CHECK(SEX='M'OR SEX='F') ,
    AGE TINYINT
    );
    ALTER TABLE STUDENT ADD ENTRYDATE DATE;
    SHOW COLUMNS FROM STUDENT;

 ALTER TABLE STUDENT ADD ENTRYDATE DATE;

 

6.给下面的Course表属性列“CNAME”增加约束名为un_cname的唯一性约束。

名称

含义

约束描述

类型

CNO

课程号

Primary key

VARCHAR(10)

CNAME

课程名称

NOT NULL

VARCHAR(20)

CPNO

先行课号

Foreign key,参照CNO

VARCHAR(10)

CREDIT

学分

Not null

Decimal(3,1)

CREATE TABLE COURSE(
    CNO VARCHAR(10) PRIMARY KEY,
    CNAME VARCHAR(20) NOT NULL,
    CPNO VARCHAR(10),
    FOREIGN KEY(CPNO) REFERENCES COURSE(CNO),
    CREDIT DECIMAL(3,1) NOT NULL);
    ALTER TABLE COURSE ADD CONSTRAINT UN_CNAME UNIQUE(CNAME);
    SHOW COLUMNS FROM COURSE;

ALTER TABLE COURSE ADD CONSTRAINT UN_CNAME UNIQUE(CNAME);

 

7.请将下面的数据录入student表。

sno,sname,sex,age,entrydate

001,张三,M,18,2024-09-01

002,李四,F,18,2023-09-01

003,王五,F,20,2022-09-01

CREATE TABLE STUDENT(
    SNO CHAR(10) PRIMARY KEY,
    SNAME VARCHAR(20),
    SEX VARCHAR(2) CHECK(SEX='M'OR SEX='F'),
    AGE VARCHAR(10),
    ENTRYDATE DATE);
    INSERT INTO STUDENT
    VALUES
    ('001','张三','M','18','2024-09-01'),
    ('002','李四','F','18','2023-09-01'),
    ('003','王五','F','20','2022-09-01');
    SELECT *FROM STUDENT;

INSERT INTO STUDENT
VALUES('a','b'),

 

8.将下面的数据录入Course表,

Cno,CNAME,cpno,credit

03,Bigdata,02,2.0

02,OS,01,3.0

01,DB,NULL,2.5

表结构如下:

名称

含义

约束描述

类型

CNO

课程号

Primary key

VARCHAR(10)

CNAME

课程名称

NOT NULL

VARCHAR(20)

CPNO

先行课号

Foreign key,参照CNO

VARCHAR(10)

CREDIT

学分

Not null

Decimal(3,1)

CREATE TABLE COURSE(
    CNO VARCHAR(10) PRIMARY KEY,
    CNAME VARCHAR(20) NOT NULL,
    CPNO VARCHAR(10),
    FOREIGN KEY(CPNO) REFERENCES COURSE(CNO),
    CREDIT DECIMAL(3,1) NOT NULL
    );
    INSERT INTO COURSE
    VALUES
    ('01','DB',NULL,'2.5'),
    ('02','OS','01','3.0'),
    ('03','Bigdata','02','2.0');
    SELECT *FROM COURSE ORDER BY CNO DESC;-- desc降序,asc升序

select *from--->查询表中所有列

 

9.将下面的数据录入SC表

Sno,Cno,Grade

004,04,80

create table Student (Sno char(9) primary key);
create table Course (Cno char(2) primary key);
create table SC (Sno char(9),Cno char(2),Grade decimal(4,2),foreign key(Sno) references Student(Sno),foreign key(Cno) references Course(Cno));
insert into Student values('004');
insert into Course values('04');
insert into SC values('004','04','80');
select * from SC;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值