阿里新零售:数据库设计与实战精讲
作者:Barranzi_
个人github主页:[github](https://github.com/La0bALanG)
个人邮箱:awc19930818@outlook.com
新时代的铁饭碗:一辈子不管走到哪里都有饭吃(还能吃上热乎的)。——佚名
免责声明:
本系列笔记撰写初衷就是为了分享个人知识以及个人学习历程中的感悟及思考,所涉及到的内容`仅供学习与交流`,请勿用作`非法或商业用途`!由此引发的任何法律纠纷`后果自负`,与作者本人无关!
版权声明:
未经作者本人授权,禁止转载!请尊重原创!
注:本文所有代码、案例测试环境:1.Linux -- 系统版本:Ubuntu20.04 LTS 2.windows -- 系统版本:WIN10 64位家庭版
环境搭建
安装VMware虚拟机
- shi’y
虚拟机内安装服务器版CentOS
-
创建CentOS虚拟机
-
文件 – 新建虚拟机:

-
选择自定义 – 下一步:

-
硬件兼容性 – workstation 16.x – 下一步:

-
选择稍后安装操作系统 – 下一步:

-
客户机操作系统选择Linux – 版本选择CentOS 7 64位 – 下一步:

-
虚拟机名称:自定义 – 位置:自定义路径即可 – 下一步:

-
处理器数量、内核数量、内核总数:自定义即可,如果不修改,默认全1 (建议根据PC配置合理设置) – 下一步:

-
内存大小根据PC配置设置,建议最低4GB – 下一步:

-
网络连接方式选择:桥接网络 – 下一步:
-
选择推荐,下一步:
-
选择推荐,下一步:

-
选择创建新虚拟磁盘 – 下一步:

-
磁盘大小默认20GB,无需给到太大 – 下一步:

-
点击完成,创建完毕。
-
安装CentOS前的虚拟机设置:
虚拟机 – 设置 – CD/DVD选项:

选择使用ISO映像文件:文件路径自己选择,能定位到目标的ISO镜像文件即可。
-
-
安装CentOS系统
-
开启虚拟机,进入安装界面,选择:install centos 7
-
语言设置:中文 – 简体
-
安装位置:默认即可
-
时区设置:上海/Asia
-
网络设置:打开
-
安装介质:默认即可
-
点击开始安装
-
设置root账户密码
-
安装完毕 – 重启系统
-
进入CentOS命令行界面:

- 输入密码,登陆 – 成功 – 进入系统。
- 至此,CentOS安装完毕。
- 注意:这里我们无需GUI的Linux,为了提升系统的资源占用及稳定性,不使用带有GUI界面的Linux。
-
配置SSH远程登陆
-
安装MobaXterm
-
官网下载地址:https://mobaxterm.mobatek.net/download-home-edition.html
-
下载的文件为zip压缩包,解压后即可看到安装文件
-
安装:一路傻瓜式下一步即可。
注意:默认安装路径为C盘,如需修改,自定义路径即可。
-
-
基本配置
-
修改终端样式:settings – terminal,size设置字体大小,font设置字体样式:

-
SSH – 取消勾选displat ssh banner:

-
设置完毕,重启客户端即可。
-
-
SSH远程连接CentOS
-
session – SSH:

-
remote host:当前CentOS主机的IP地址,使用命令:
ip addr查看:

-
端口号:默认22即可 – 点击OK – 连接创建成功
-
登陆:以root账户登陆即可,输入对应密码,连接登陆成功:

-
VMware虚拟机的基本使用及Linux基础知识介绍
VMware虚拟机的克隆与快照
-
克隆:完整的复制一个虚拟机的副本,使得用户可以基于现有成熟的虚拟机系统无限复制任意个副本。
例如:需要3个虚拟机实例,则无需安装3次虚拟机,只需安装一次,基于现有虚拟机之上使用克隆技术快速创建出另外两个虚拟机。克隆时可选择创建链接克隆与创建完整克隆。
-
快照:给虚拟机创建还原点,使之能够在特定情况下快速回退到上一状态,保证虚拟机使用过程中,如遇崩溃等情况,能够快速还原虚拟机系统。
-
创建克隆:
对应虚拟机 – 虚拟机 – 管理 – 克隆:

默认选项 – 下一步 – 下一步 – 克隆方法选择创建完整克隆 – 下一步:

虚拟机名称自定义即可,位置自定义路径即可 – 点击完成。
-
生成快照
对应虚拟机 – 虚拟机 – 快照 – 拍摄快照:

查看已创建快照:虚拟机 – 快照 – 快照管理器:

Linux基础知识
-
Linux目录结构
- 根目录
- bin:存放必要的二进制文件
- dev:存放硬件文件
- etc:程序的配置文件
- home:普通的用户目录,非root用户
- proc:Linux系统上的运行的进程
- root:root账户的用户目录
- sbin:可执行的二进制文件 – 只能由root执行
- tmp:系统临时文件
- usr:安装程序文件
- var:程序或系统的日志文件
- 根目录
-
常用命令
-
touch:创建文件
-
vi:编辑文件。基本使用:
- i:进入编辑状态
- esc:退出编辑状态
- :w :保存
- :q :退出vi编辑器
-
mkdir:创建文件夹/目录
-
rm:删除文件或文件夹
选项:-rf – 强制删除
使用:
rm -rf 目录名 -
ps:查询运行中的进程
ps aux -
kill:关闭进程
kill -9 PID #进程id
-
MySQL环境安装及配置
-
安装前准备:建议关闭CentOS的SELinux服务
SELinux:Linux2.6版本以上捆绑的一个安全模块,其对应用程序的监管比较严格,且配置复杂,容易与其他程序产生冲突,所以建议关闭。
关闭方法:使用vi打开selinux的config配置文件:
vi /etc/selinux/config
将SELINUX设置为disabled即可。修改方式:
- i – 进入编辑模式
- 编辑SELINUX参数值
- esc – 退出编辑模式
- :w :保存
- :q :退出vi编辑器
reboot使用reboot重启当前系统,moba重新连接系统即可。
-
替换yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo mirrors.163.com/.help/CentOS7-Base-163.repo -
更新缓存
yum clean all yum makecacheLast login: Mon Nov 30 11:55:06 2020 from 192.168.0.83 [root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo mirrors.163.com/.help/CentOS7-Base-163.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:100 1572 100 1572 0 0 15015 0 --:--:-- --:--:-- --:--:-- 15115 [root@localhost ~]# yum clean all 已加载插件:fastestmirror 正在清理软件源: base extras updates [root@localhost ~]# yum makecache 已加载插件:fastestmirror Determining fastest mirrors base | 3.6 kB 00:00 extras | 2.9 kB 00:00 updates | 2.9 kB 00:00 (1/10): base/7/x86_64/filelists_db | 7.2 MB 00:00 (2/10): base/7/x86_64/primary_db | 6.1 MB 00:00 (3/10): base/7/x86_64/other_db | 2.6 MB 00:00 (4/10): base/7/x86_64/group_gz | 153 kB 00:01 (5/10): extras/7/x86_64/primary_db | 222 kB 00:00 (6/10): extras/7/x86_64/filelists_db | 224 kB 00:00 (7/10): extras/7/x86_64/other_db | 134 kB 00:00 (8/10): updates/7/x86_64/primary_db | 3.7 MB 00:00 (9/10): updates/7/x86_64/filelists_db | 2.1 MB 00:00 (10/10): updates/7/x86_64/other_db | 225 kB 00:00 元数据缓存已建立 -
创建虚拟机快照:防止MySQL创建异常后无法回退到当前状态。
-
下载MySQL的rpm文件
yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm -
安装MySQL数据库
yum install mysql-community-server -y -
启动mysql服务:
service mysqld start -
查询初始密码:
grep 'temporary password' /var/log/mysqld.log [root@localhost ~]# grep 'temporary password' /var/log/mysqld.log 2020-11-30T04:35:29.977835Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: hCQfckR7bt+a -
初次登陆数据库:
mysql -uroot -phCQfckR7bt+a -
修改root密码:
alter user user() identified by 'your password'; -
允许远程使用root用户
UPDATE user SET host='%' WHERE user='root'; FLUSH PRIVILEGES; -
修改/etc/my.cnf文件
character_set_server=utf8 bind-address=0.0.0.0- i:进入编辑状态
- esc:退出编辑状态
- :w :保存
- :q :退出vi编辑器
-
系统防火墙开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
至此,CentOS下MySQL安装及配置完毕。
软件设计流程的关键性步骤:数据库设计及ER实体关系图
软件设计的基本流程综述
软件设计的基本流程大致分为如下三步:
- 需求分析
- 基本需求分析:依据用例图描述系统的基本功能与用户之间的关系
- 业务流程分析:依据活动图描述业务功能实现的流程,依据状态图描述业务功能实现过程中系统或子系统的状态变化,依据时序图描述业务功能实现中多个对象间的消息发送时间顺序及其动态协作。
- 业务概念分析:依据类图(基本概念模型)描述业务功能实现所需的基本实体模型(业务概念模型)
- 概要设计:
- 业务概念模型转化为数据库ER图:依据业务概念模型进行初步数据库设计,使用ER图描述实体与实体之间的关系
- 架构设计:依据部署图,包图,组件图描述软件的基本架构
- 详细设计
- 数据库设计:依据完成的ER图进行概念数据模型设计,是详细设计中最关键的步骤,通常在这一步需要完成系统的完整,精细的数据表设计。
- 详细设计:基于类图的代码设计。
在软件设计的三大步中,比较关键的步骤为:
- 业务概念分析:这一步,通过将分析完毕的业务流程使用简易类图描述出基本的概念模型,为下一步数据库ER图设计做铺垫;
- 业务概念模型转化为数据库ER图:这一步,基于完成的业务概念模型进行ER图设计,为最终的概念数据模型建立及数据表实现做铺垫;
- 数据库设计:最重要,最关键,没有之一。基于前步完成的ER图,进行详细的概念数据模型设计,完成所有的数据表,实现最终的数据库设计。
所以,纵观整个软件设计流程,数据库设计是最关键的一步。为什么?因为数据库设计只能采用”瀑布模型“,其要求数据库设计必须一步到位,已完成的数据库设计最好不要在开发阶段进行二次修改,因为修改数据库表意味着”牵一发而动全身“,整个系统会因某个表的字段修改,或者某实体之间关系的变更而出现”改动一处,处处修改“的尴尬局面。
何谓瀑布模型?了解它,需要了解什么是”软件开发模型“
-
软件开发模型(Software Development Model):是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。 软件开发模型(目的)能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境。
常见的软件开发模型有:瀑布模型、快速原型模型、增量模型、螺旋模型。日常开发中,瀑布模型与螺旋模型比较常用,需重点学习。
-
瀑布模型:核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开,将软件生命周期划分为:
- 可行性研究
- 需求分析
- 软件设计
- 概要设计
- 详细设计
- 程序编码
- 软件测试
- 软件发布
- 运行维护与更新
几个模块,并且规定自上而下,相互衔接的固定次序,如同瀑布流水,因而得名”瀑布模型“。
瀑布模型的几个显著优势:
- 为项目提供了按阶段划分的检查点
- 当前一阶段完成后,只需要去关注后续的阶段
- 可在迭代模型中应用瀑布模型
- 提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导
瀑布模型的几个显著劣势:
- 各个阶段的划分完全固定,阶段之间产生大量的文档,极大的增加了工作量
- 由于开发模型是线性的,用户只能等到整个过程的末期才能看见开发成果,从而增加了开发风险
- 通过过多的强制完成日期和里程碑来跟踪项目的各个阶段进展
- 瀑布模型最痛的缺点是:不适应用户的需求变化
-
螺旋模型:螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。

螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:
- 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件
- 风险分析:分析评估所选方案,考虑如何识别和消除风险
- 实施工程:实施软件开发和验证
- 客户评估:评价开发工作,提出修正建议,制定下一步计划
螺旋模型由风险驱动,强调可选方案和约束条件进而支持软件的重用,有助于将软件质量作为特殊目标融入到产品开发中。
螺旋模型的几个显著优势:
- 设计灵活可以在项目的各个阶段进行变更
- 当用户提出需求更改时可以很好的融入新功能
- 由风险进行驱动,每个阶段项目上线前都需要进行风险分析
螺旋模型的几个显著劣势:
- 螺旋模型强调风险分析,需要相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能及时标识风险,势必造成重大损失。
- 如果执行风险分析将大大影响项目的利润,那么进行风险分析就毫无意义了。
-
ER图
-
ER图简介
ER模型最早由Peter Chen(陈品山)于1976年提出,它在数据库设计领域得到了广泛的认同,但很少用作实际数据库管理系统的数据模型。即使对SXL-92数据库来说,设计好的数据库也是具有挑战性的。它们可以在许多关于数据库设计的文献中找到,比如Toby Teorsey 的著作(1994 )。
大部分数据库设计产品使用实体-联系模型(ER模型)帮助用户进行数据库设计。ER数据库设计工具提供了一个“方框与箭头”的绘图工具,帮助用户建立ER图来描绘数据。
实体联系模型,实体关系模型或实体联系模式图(ERD)是由美籍华裔计算机科学家陈品山(Peter Chen)发明,是概念数据模型的高层描述所使用的数据模型或模式图,它为表述这种实体联系模式图形式的数据模型提供了图形符号。这种数据模型典型的用在信息系统设计的第一阶段;比如它们在需求分析阶段用来描述信息需求和/或要存储在数据库中的信息的类型。但是数据建模技术可以用来描述特定论域(就是感兴趣的区域)的任何本体(就是对使用的术语和它们的联系的概述和分类)。
-
定义:ER图。全称实体关系图(Entity Relationship Diagram),提供了表示实体模型、属性和关系的方法,用来描述现实世界的概念模型
-
简易ER图举例:

-
ER图基本语法规范
- 实体:矩形表示,描述一个具体的对象
- 属性:椭圆形表示,描述该具体对象(实体)中存在的属性(字段)
- 主键属性:椭圆形表示,其中文字描述使用下划线标识,描述该属性(字段)为主键
- 实体关系:菱形表示,描述多个实体之间的关系类型
-
ER图属性语法
-
复合属性:多个属性的组合,由属性与子属性及其关联关系描述组成
举个例子:

-
多值属性:某个属性可以有多个不同的取值,由双椭圆描述
举个例子:

-
派生属性:不保存在实体中的属性,使用虚线椭圆描述
举个例子:

-
可选属性:允许没有值的属性,由属性文字下(0)描述
举个例子:

-
-
实体关系语法
-
一对一关系:实体与实体之间的关系一一对应,使用连线上数字标识进行描述
举个例子:

-
一对多关系:某一个实体可以对应多个不同的其他实体,使用连线上数字标识进行描述
举个例子:

-
多对多关系:依据关联属性实现多个实体之间的互相关联,使用连线上数字标识进行描述
举个例子:

-
概念数据模型图
-
概念数据模型简介
数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求:
- 能够比较真实地模拟现实世界
- 容易为人所理解
- 便于计算机实现
概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。
通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。
CDM是一组严格定义的模型元素的集合,这些模型元素精确地描述了系统的静态特性、动态特性以及完整性约束条件等,其中包括了数据结构、数据操作和完整性约束三部分:
- 数据结构表达为实体和属性;
- 数据操作表达为实体中的记录的插入、删除、修改、查询等操作;
- 完整性约束表达为数据的自身完整性约束(如数据类型、检查、规则等)和数据间的参照完整性约束(如联系、继承联系等)
-
实体、属性、标识符的定义
实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,学校中的每个学生,医院中的每个手术。
每个实体都有用来描述实体特征的一组性质,称之为属性,一个实体由若干个属性来描述。如学生实体可由学号、姓名、性别、出生年月、所在系别、入学年份等属性组成。
实体集(Entity Set)是具体相同类型及相同性质实体的集合。例如学校所有学生的集合可定义为“学生”实体集,“学生”实体集中的每个实体均具有学号、姓名、性别、出生年月、所在系别、入学年份等性质。
实体类型(Entity Type)是实体集中每个实体所具有的共同性质的集合,例如“患者”实体类型为:患者{门诊号,姓名,性别,年龄,身份证号………….}。实体是实体类型的一个实例,在含义明确的情况下,实体、实体类型通常互换使用。
实体类型中的每个实体包含唯一标识它的一个或一组属性,这些属性称为实体类型的标识符(Identifier),如“学号”是学生实体类型的标识符,“姓名”、“出生日期”、“信址”共同组成“公民”实体类型的标识符。
有些实体类型可以有几组属性充当标识符,选定其中一组属性作为实体类型的主标识符,其他的作为次标识符。
-
概念数据模型图基本结构及语法描述:如下图

ER图、概念数据模型图的生产工具——Microsoft Visio 2019专业版
Microsoft Visio 2019 专业版,是微软名下的Office办公软件系列的一部分,是运行在Windows操作系统下的一款流程图和矢量绘图的集成绘图工具。Visio无论是标准版还是专业版,都是收费软件,专业版更是高达5200多元人民币的买断费用。幸运的是,KMS可以伪激活180天。
本文提供Visio 2019专业版的安装包及激活工具:

下载地址:链接:https://pan.baidu.com/s/1TgVEJynfXBbqKkfSQW1z9g 提取码:12er
==================================
2020.11.30更新完毕,未完待续。码字不易,且看且珍惜…
==================================
2020.11.30晚 更新 在家闲着没事,再写点把….
数据库基础知识点回顾
MySQL相关引擎介绍
MySQL图形化工具介绍之——DataGrip

-
DataGrip简介:重量级专业数据库IDE,功能上比navicat系列更强大,出自jetbrians公司的产品,支持市面上几乎所有的数据库产品。DataGrip是收费软件,与jetbrians系列的其他产品一样,需要付费使用。为支持正版,建议淘宝购买激活账号激活,20块钱一年,直接激活jetbrians全家桶,捎带脚连pycharm都能正版激活了,美滋滋。
-
DataGrip下载:官网下载即可。下载连接:https://www.jetbrains.com/datagrip/download/download-thanks.html
-
安装:一路傻瓜式下一步安装即可。
-
基本配置
- 配置基本主题样式:file – settings – color schame font
-
远程连接数据库
-
+号 – Data Source – MySQL:

-
填写详细配置信息:

name:远程连接名称,自定义即可
host:远程数据库主机地址
port:端口号,默认3306,不必修改
user:连接数据库的用户名称,默认root
password:连接数据库密码
test connection:配置信息填写完毕后测试连接是否成功

-
-
创建数据库
-
连接名称 – 右键 – new – schema:

-
输入数据库名称:

创建完毕。
-
-
导入sql文件
-
直接将相应sql文件拖入工作区即可:

-
运行sql文件:选择目标数据库 – 确定导入文件路径 – run

-
运行状态:
[2020-11-30 23:25:37] Connecting to CentOS7_MySQL... (Students) [2020-11-30 23:25:38] Using batch mode (1000 insert/update/delete statements max) [2020-11-30 23:25:38] Run H:\老安课程串讲资料\慕课网数据库课程笔记资料\document\demo-练习库.sql SET NAMES utf8mb4 [2020-11-30 23:25:38] 0 row(s) affected in 9 ms SET FOREIGN_KEY_CHECKS = 0 [2020-11-30 23:25:38] 0 row(s) affected in 2 ms DROP TABLE IF EXISTS `t_bonus` [2020-11-30 23:25:38] 0 row(s) affected in 6 ms CREATE TABLE `t_bonus` ( `empno` int(4) NOT NULL, `job` varchar(20) DEFAULT NULL, `sal` decimal(10,2) DEFAULT NULL, `comm` decimal(10,2) DEFAULT NULL, PRIMARY KEY (`empno`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 [2020-11-30 23:25:38] 0 row(s) affected in 13 ms DROP TABLE IF EXISTS `t_dept` [2020-11-30 23:25:38] 0 row(s) affected in 4 ms CREATE TABLE `t_dept` ( `deptno` int(2) NOT NULL, `dname` varchar(20) DEFAULT NULL, `loc` varchar(20) DEFAULT NULL, PRIMARY KEY (`deptno`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 [2020-11-30 23:25:38] 0 row(s) affected in 12 ms BEGIN [2020-11-30 23:25:38] 0 row(s) affected in 2 ms INSERT INTO `t_dept` VALUES (10, 'ACCOUNTING', 'NEW YORK') . [2020-11-30 23:25:38] 4 row(s) affected in 58 ms COMMIT [2020-11-30 23:25:38] 0 row(s) affected in 2 ms DROP TABLE IF EXISTS `t_emp` [2020-11-30 23:25:38] 0 row(s) affected in 4 ms CREATE TABLE `t_emp` ( `empno` int(4) NOT NULL, `ename` varchar(20) DEFAULT NULL, `job` varchar(20) DEFAULT NULL, `mgr` int(4) DEFAULT NULL, `hiredate` date DEFAULT NULL, `sal` decimal(10,2) DEFAULT NULL, `comm` decimal(10,2) ... [2020-11-30 23:25:38] 0 row(s) affected in 14 ms BEGIN [2020-11-30 23:25:38] 0 row(s) affected in 2 ms INSERT INTO `t_emp` VALUES (7369, 'SMITH', 'CLERK', 7902, '1980-12-17 00:00:00', 800.00, NULL, 20) .. [2020-11-30 23:25:38] 14 row(s) affected in 25 ms COMMIT [2020-11-30 23:25:38] 0 row(s) affected in 7 ms DROP TABLE IF EXISTS `t_salgrade` [2020-11-30 23:25:38] 0 row(s) affected in 3 ms CREATE TABLE `t_salgrade` ( `grade` int(11) NOT NULL, `losal` decimal(10,2) DEFAULT NULL, `hisal` decimal(10,2) DEFAULT NULL, PRIMARY KEY (`grade`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 [2020-11-30 23:25:38] 0 row(s) affected in 27 ms BEGIN [2020-11-30 23:25:38] 0 row(s) affected in 2 ms INSERT INTO `t_salgrade` VALUES (1, 700.00, 1200.00) . [2020-11-30 23:25:38] 5 row(s) affected in 9 ms COMMIT [2020-11-30 23:25:38] 0 row(s) affected in 3 ms DROP TABLE IF EXISTS `t_emp_ip` [2020-11-30 23:25:38] 0 row(s) affected in 2 ms CREATE TABLE `t_emp_ip` ( `id` int(11) NOT NULL, `empno` int(11) NOT NULL, `ip` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `empno`(`empno`) USING BTREE, UNIQUE... [2020-11-30 23:25:38] 0 row(s) affected in 10 ms SET FOREIGN_KEY_CHECKS = 1 [2020-11-30 23:25:38] 0 row(s) affected in 1 ms [2020-11-30 23:25:38] Summary: 42 of 42 statements executed in 450 ms (3449 symbols in file)
-


