身份设定:你的父亲是厂长,在毕业后计划继承家业
随着“互联网+”的不断深入,经济、社会发展加速,各位厂长副厂长会议决定传统的工厂管理方法需要革新,要紧跟时代潮流数字化的管理工厂。他们一致认为你作为厂长接班人,又是计算机相关专业的大专生有义务也有能力做好这件事。
你告诉大家最近正在学习MySQL数据库,作为70/80后他们不知道什么是MySQL,你深知解释了他们也不懂,但碍于面子还是说了MySQL是一种数据库管理系统。他们看你愿意解释所以争先恐后的问,问题越来越多……
1.什么是数据库?
数据库是按照数据结构来组织、存储和管理数据的仓库
2.用户可以对数据库执行什么操作?
新增,删除,修改,查询
3.什么是数据库管理系统?
专门用于创建和管理数据库的一种软件
数据库系统由数据库、数据库管理系统、数据库应用程序等组成
4.一个数据库管理系统可以管理多少个数据库?
无数个
5.那一个数据库有多少张表呢?
无数个
6.每张表是否可以有很多条数据呢?
可以
7.你解释了这么多他们终于明白了点基础知识,这时他们又问道,这个数据库管理系统这么强大,你要用什么来操作呢?你说要使用SQL语言来操作数据库,他们觉得你好厉害,居然会一种他们从没听过的“外语”,强烈要求你演示一下
你打开了控制台,输入指令登录MySQL
mysql -u root -p
8.查看所有数据库
show databases;
9.告诉他们在学校学习了很多内容,自己也创建了很多个数据库,并一一指给他们看
看完后随手创建了一个新的数据库,名为 temp_姓名全拼
create database temp_wangrong;
10.将 temp_姓名全拼 数据库的默认字符集改成了 gbk
alter database temp_wangrong default character set gbk;
11.查看 temp_姓名全拼 数据库创建信息,告诉大家刚才的修改已经生效了
show create database temp_wangrong;
12.删除 temp_姓名全拼 数据库
drop database temp_wangrong;
13.退出MySQL
\q
14.他们看到你的展示后更坚信要你来完成工厂数据库创建,你就数据库创建所需内容和大家讨论,讨论结果是需要创建车间、职工、产品三张表,会后你创建并使用了数据库 姓名全拼
create database wangrong_factory;
15,use wangrong_factory;
16,之后根据会议内容整理出每张表的字段信息,并开始创建表
车间表 姓名全拼_workshop
字段名 |
数据类型 |
长度 |
主、外键 |
其他约束 |
备注信息 |
CHAR |
10 |
主键 |
车间号 |
||
ADDRESS |
TEXT |
地址 |
|||
OPEN_DATE |
DATE |
开设时间 |
|||
NAME |
VARCHAR |
10 |
非空,唯一 |
主任姓名 |
create table wangrong_workshop(
no char(10) comment "车间号" primary key,
address text comment "地址",
open_date date comment "开设时间",
name varchar(10) comment "主任姓名" not null unique
);
17,职工表 姓名全拼_worker
字段名 |
数据类型 |
长度 |
主、外键 |
其他约束 |
备注信息 |
NO |
CHAR |
10 |
主键 |
工号 |
|
SHOP_NO |
CHAR |
10 |
外键workshop (no) |
车间号 |
|
NAME |
VARCHAR |
10 |
非空,唯一 |
姓名 |
|
WORK |
VARCHAR |
30 |
工种 |
create table wangrong_worker(
no char(10) comment "工号" primary key,
shop_no char(10) comment "车间号",
name varchar(10) comment "姓名" not null unique,
work varchar(30) comment "工种",
constraint fk_shop_no foreign key(shop_no) references wangrong_workshop(no)
);
18.产品表 姓名全拼_product
字段名 |
数据类型 |
长度 |
主、外键 |
其他约束 |
备注信息 |
NO |
CHAR |
10 |
主键 |
产品编号 |
|
WORK_NO |
CHAR |
10 |
外键worker(no) |
工号 |
|
WEIGHT |
DOUBLE |
重量 |
create table wangrong_product(
no char(10) comment "产品编号" primary key,
work_no char(10) comment "工号",
weight double comment "重量",
constraint fk_work_no foreign key(work_no) references wangrong_worker(no)
);
19.创建完三张表后你查看数据库中所有表
show tables;
20.看到了所有自己创建的表非常有成就感,继续逐个查看表的创建信息
首先查看车间表的创建信息
show create table wangrong_workshop\G;
21,之后查看职工表的创建信息
show create table wangrong_worker\G;
22.最后查看产品表的创建信息
show create table wangrong_product\G;
23.心满意足的拿给老爸(厂长)看,没想到他说你这个我也看不懂啊,受到吐槽的你内心非常不爽,想到可以画ER图给他看,打开https://www.processon.com/网站(可直接微信登陆),画好了ER图
老爸看后非常满意,立即通知秘书召开厂长会议
在会上你讲解了数据库的搭建过程以及目前成果,获得了极大的好评,同时收到了3条建议
1.职工表需要添加工龄字段,在之后计算工资以及年终奖会用到
字段名 |
数据类型 |
长度 |
主、外键 |
其他约束 |
备注信息 |
SENIORITY |
TINYINT |
2 |
工龄 |
alter table wangrong_worker add seniority tinyint(2) comment "工龄";
24.车间表需要添加主任的联系电话字段,方便之后管理车间
alter table wangrong_workshop add phone varchar(20) comment "主任联系电话";
字段名 |
数据类型 |
长度 |
主、外键 |
其他约束 |
备注信息 |
PHONE |
VARCHAR |
20 |
25.同理职工表也需要添加联系方式字段方便管理
字段名 |
数据类型 |
长度 |
主、外键 |
其他约束 |
备注信息 |
PHONE |
VARCHAR |
20 |
联系电话 |
alter table wangrong_worker add phone varchar(20) comment "联系电话";
26,加好后查看车间表的字段信息
desc wangrong_workshop;
27.感觉非常赞,之后查看职工表的字段信息
desc wangrong_worker;
28.发现联系方式被加在了最后,追求完美主义的你把联系方式的字段位置修改到了姓名之后
alter table wangrong_worker modify phone varchar(20) after name;
29.修改后再次查看职工表的字段信息
desc wangrong_worker;
30.正当对自己的修改成果满意之时,老爸秘书发来文件,打开看到是公司现有的车间及员工信息。首先给车间表所有字段批量插入数据
地址 |
开设时间 |
主任姓名 |
联系电话 |
|
WS1 |
Jone Street |
2018-03-06 |
Frank |
13852374989 |
WS2 |
2018-05-27 |
Alan |
||
WS3 |
Gray Street |
Peter |
17074120081 |
|
WS4 |
2018-09-15 |
Clare |
18182330376 |
insert into wangrong_workshop values
("ws1","jone street","2018-03-06","frank","13852374989"),
("ws2",null,"2018-05-27","alan",null),
("ws3","gray street",null,"peter","17074120081"),
("ws4",null,"2018-09-15","clare","18182330376");
31.插入成功后查看车间表所有字段数据
select *from wangrong_workshop;
32.接下来打开员工信息表
工号 |
车间号 |
职工姓名 |
联系电话 |
工种 |
工龄 |
W1 |
WS1 |
Chisel |
13024390423 |
special |
5 |
W2 |
WS1 |
Asa |
expert |
3 |
|
W3 |
WS1 |
Parker |
15754183291 |
common |
1 |
W4 |