1 写在前面
笔者使用的数据库为MySQL数据库,版本为8.0.19。下面图片为数据库各表中信息。
2 实验准备
(1)使用命令行或者其他软件登入数据库,cmd命令行mysql登入语法如下:
#这里使用root账户登录
mysql -uroot -p123
(2)创建一个用于实验的数据库
CREATE DATABASE test_simple_practice;
(3)之后考虑到安全问题,不使用root账户操作此数据库,因此新建一个用户并且赋予此用户在用于实验的数据库的所有操作权限。
#创建新用户,用户名为simple,密码为123
#创建语法:CREATE USER username@ipaddress IDENTIFIED BY 'password';
CREATE USER simple@localhost IDENTIFIED BY '123';
#赋予数据库权限
#语法:GRANT authority1,...,authorityn ON database.* TO username@ipaddress
GRANT ALL ON test_simple_practice.* TO simple@localhost;
(4)接着创建四个数据库表(使用下面例1-1的要求创建,之后再修改)。
CREATE TABLE Department(
DEPTNO CHAR(2),
DEPTNAME CHAR(10),
PRIMARY KEY(DEPTNO)
);
CREATE TABLE Student(
SNO CHAR(5),
SNAME CHAR(8) NOT NULL,
SDEPT CHAR(2) NOT NULL,
SCLASS CHAR(2) NOT NULL,
SAGE NUMERIC(2),
PRIMARY KEY(SNO),
CONSTRAINT fk_student_sdept FOREIGN KEY(SDEPT) REFERENCES Department(DEPTNO)
);
CREATE TABLE Course(
CNO CHAR(3),
CNAME CHAR(16) NOT NULL,
CTIME NUMERIC(3),
PRIMARY KEY(CNO),
UNIQUE(CNAME)
);
CREATE TABLE Teach(
TNAME CHAR(8),
TSEX CHAR(2),
CNO CHAR(3),
TDATE DATE,
TDEPT CHAR(2),
PRIMARY KEY(TNAME, CNO, TDEPT),
CONSTRAINT fk_teach_course FOREIGN KEY(CNO) REFERENCES Course(CNO)
);
CREATE TABLE SCORE(
SNO CHAR(5),
CNO CHAR(3),
SCORE NUMERIC(5,2),
PRIMARY KEY(SNO, CNO),
CONSTRAINT fk_score_student FOREIGN KEY(SNO) REFERENCES Student(SNO),
CONSTRAINT fk_score_course FOREIGN KEY(CNO) REFERENCES Course(CNO)
);
(5)进行数据的导入。
#Department表信息导入
INSERT INTO Department(DEPTNO,DEPTNAME)
VALUES('CS','计算机系'),('MA','数学系'),('IS','信息系'