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;