MySQL数据库实际运用(一)

实验目的

(1) 掌握系统数据类型的特点和功能
(2) 掌握创建、修改表结构的方法
(3) 掌握数据添加的方法

实验预习与准备

(1) MYSQL中创建数据库的命令
(2) 表结构的创建、修改和删除
(3) MYSQL导入导出表数据的方式
(4) 添加数据的SQL命令

实验内容及步骤

(1) 利用SQL命令创建自己的的数据库 (smallfish)

create database smallfish;

(2) 使用命令行方式利用SQL语句在第一步创建的数据库中按下列要求创建数据表

  • student 表
列名 类型 是否允许为空 字段说明
sno char(10) not null 学号
sname char(10) not null 姓名
sex enum(‘男’,‘女’) vnot null 性别
birth date not null 出生日期
source varchar(16) null 生源地
clno char(10) null 班级号
phone char(11) null 电话
credit smallint null 学分
picture varchar(30) null 照片(存放地址)
remark text null 字段说明
pwd char(6) not null 密码
use smallfish;   # 进入数据库
# 建立student表
mysql> create table student(
    -> sno char(10) not null,
    -> sname char(10) not null,
    -> sex enum("男","女") not null,
    -> birth date not null,
    -> source varchar(16),
    -> clno char(10),
    -> phone char(11),
    -> credit smallint,
    -> picture varchar(30),
    -> remark text,
    -> pwd char(6) not null);
  • course表(课程表)
列名 类型 是否允许为空 字段说明
cno char(6) not null 课程号
cname varchar(16) not null 课程名
credit tinyint not null 学分
hour smallint not null 学时
term tinyint not null 开课学期(取值范围1-8)
mysql> create table course(
    -> cno char(6) not null,
    -> cname varchar(16) not null,
    -> credit tinyint not null,
    -> hour smallint not null,
    -> term tinyint not null);
  • score表(成绩表)
列名 类型 是否允许为空 字段说明
sno char(10) not null 学生编号
cno char(6) not null 课程编号
score decimal(4,1) null 期末成绩
mysql> create table score(
    -> sno char(10) not null,
    -> cno char(6) not null,
    -> score decimal);
  • teacher表(教师表)
列名 类型 是否允许为空 字段说明
tno vchar(4) not null 教师号
tname char(10) not null 姓名
pwd char(6) not null 密码
sex enum(‘男’,‘女’) not null 性别
tel char(11) null 电话
department varchar(10) not null 院系名称
type char(1) not null 身份(0:管理员;1:教师)
remark text null 字段说明
mysql> create table teacher(
    -> tno char(6) not null,
    -> tname char(10) not null,
    -> pwd char(6) not null,
    -> sex enum("男","女"),
    -> tel char(11),
    -> department varchar(10) not null,
    -> type char(1) not null,
    -> remark text);
  • class表(班级表)
列名 类型 是否允许为空 字段说明
clno char(8) not null 班级编号
clname varchar(16) not null 班级名称
department varchar(12) not null 院系名称
mysql> create table class(
    -> clno char(8) not null,
    -> clname varchar(16) not null,
    -> department varchar(12) not null);
  • course_class表(教师授课表)
列名 类型 是否允许为空 字段说明
列名 类型 是否允许为空 字段说明
tno char(4) not null 教师编号
clno char(8) not null 班级编号
cno char(6) not null 课程编号
mysql> create table course_class(
    -> tno char(4) not null,
    -> clno char(8) not null,
    -> cno char(6) not null);

(3) 利用SQL语句修改表的结构

a) 修改student表中clno属性的数据类型为varchar(8),并且不允许为空

alter table student modify clno varchar(8);

b) 将student表中的phone属性名修改为tel,类型不变

alter table student rename column phone to tel;

c) 为student表增加point属性(入学成绩),数据类型为smallint,允许为空,并将属性至于tel属性之后,credit属性之前

alter table student add point smallint null after tel;

d) 为student表增加email属性,数据类型为varchar(30),允许为空,并将属性至于picture属性之后,remark属性之前

alter table student add email varchar(30) null after picture;

e) 为score表增加usual属性(平时成绩),数据类型为decimal(4,1),允许为空

alter table score add usual decimal(4,1);

f) 删除student表中的pwd属性

alter table student drop column pwd;

(4) 利用MYSQL的数据导入/导出功能将jwgl数据库中的相应表中数据导入到自己创建的数据表中

load data infile 'D:/MySQL Data/class.txt' into table class;
load data infile 'D:/MySQL Data/course.txt' into table course;
load data infile 'D:/MySQL Data/course_class.txt' into table course_class;
load data infile 'D:/MySQL Data/score.txt' into table score;
load data infile 'D:/MySQL Data/teacher.txt' into table teacher;
load data infile 'D:/MySQL Data/student.txt' into table student;

(5)向表中插入新的信息

向student表中插入自己的个人信息

扫描二维码关注公众号,回复: 14136283 查看本文章
mysql> insert into student
    -> (sno,sname,sex,birth,clno,tel,point,email)
    -> values('202015741','小鱼干','男','2020-01-01','12920301','12345678999',600,'[email protected]');

向score表中插入一条记录,学生学号为:0922221326,课程编号为:010003,其余属性取空值

mysql> insert into score(sno,cno)
    -> values('0922221326','010003');

猜你喜欢

转载自blog.csdn.net/qq_52007481/article/details/124281441