三、快速安装运行MySQL数据库

MySQL以前一直是开源免费的,被Oracle收购后有些变化:以前的版本都是免费的,社区版按GPL协议开源免费,商业版提供更加丰富的功能,但收费。

社区版的下载地址:https://dev.mysql.com/downloads/ (免费)

企业版的下载地址:https://www.mysql.com/downloads/(收费)

3.1、使用绿色版

为了方便快捷的使用MySQL我已经准备好了一个绿化了的MySQL,解压后就可以直接使用,不需要任何配置。

下载地址1:https://pan.baidu.com/s/1K08GU-E4CyEKKIseBYwRYA 密码: e59m

下载后直接解压:

mysql商用 不修改源码 mysql商用怎么免费_mysql

点击启动PStart.exe这是一个自定义菜单的小工具,为了整理资源用的。

里面有两个MySQL的绿色版软件5.0,5.5

Navicat for MySQL是一个数据库客户端管理工具

点击启动PStart.exe后的结果如下:

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_02

点击启动MySQL服务,运行Navicat for MySQL即可。

*注意:上面的PStart只是一个整理文档资料的工具,并非必要,如果启动时有错误或为空时,可以直接关闭,直接启动MySQL服务,如:

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_03

mysql_start.bat用于启动MySql数据库,mysql_stop.bat用于关闭MySql数据库。

开发工具的启动方式也一样,如下所示:

mysql商用 不修改源码 mysql商用怎么免费_MySQL_04

navicat.exe用于启动Navicat数据库客户端,最好发送快捷方式到桌面,省去每次打开文件夹的麻烦。

3.1.1、设置mysql远程访问

执行mysql 命令进入mysql 命令模式,执行如下SQL代码 

mysql> use mysql; 
mysql> GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;

#这句话的意思 ,允许任何IP地址(上面的 % 就是这个意思)的电脑 用admin帐户 和密码(admin)来访问这个MySQL Server
#必须加类似这样的帐户,才可以远程登陆。root帐户是无法远程登陆的,只可以本地登陆

3.1.2、修改mysql用户密码

1.mysqladmin命令

格式如下(其中,USER为用户名,PASSWORD为新密码):

mysqladmin -u USER -p password PASSWORD

该命令之后会提示输入原密码,输入正确后即可修改。
例如,设置root用户的密码为123456,则

mysqladmin -u root -p password 123456

2.UPDATE user 语句

这种方式必须是先用root帐户登入mysql,然后执行:

UPDATE user SET password=PASSWORD('123456') WHERE user='root';
FLUSH PRIVILEGES;

3.SET PASSWORD 语句

这种方式也需要先用root命令登入mysql,然后执行:

SET PASSWORD FOR root=PASSWORD('123456');

4.root密码丢失的情况

使用 MySQL 自带的一个工具"MySQL GUI Tools",我一直用的是5.0版本的。在安装目录中运行一个程序 MySQLSystemTrayMonitor.exe,运行完后在系统托盘会出现图标。如果MySQL服务尚未安装,则不会出现,可先通过Action>Manage MySQL Instances 先配置和安装服务。如果已经安装服务,鼠标右键点击后,会出现"Configure Instance"的菜单。点击后出现如下MySQL Administrator窗口:
假如原来的服务配置都正常的情况下,选中左侧列表中的“启动变量”,并在相应的右侧标签中选择“安全”,勾选“禁用grant表”,然后“应用更改”。
并回到左侧的“服务器控制”,和右侧相应的“开始/停止服务”标签,点击启动服务。此时,连接mysql已经不需要用户名和密码了,你可以修改root密码。

3.1.2、安装服务

首先我们先进入mysql的安装目录下的bin目录、之后打开DOS命令窗口,进入该目录下(一定要进入该目录,否则操作错误)

mysql商用 不修改源码 mysql商用怎么免费_MySQL_05

执行DOS命令:

输入命令:mysqld --install,之后出现如下界面。提示安装服务成功。

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_06

注意是mysqld --install不是mysql --install

如果要卸载服务,可以输入如下命令:mysqld --remove。出现如下界面。提示移除服务成功。

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_07

3.2、使用安装版

MySQL5.5.27_64位安装包下载地址1: https://pan.baidu.com/s/1minwz1m 密码: ispn

MySQL5.7.17安装包官网下载地址: https://dev.mysql.com/downloads/windows/installer/

选择自定义:

mysql商用 不修改源码 mysql商用怎么免费_mysql_08

安装的组件信息:

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_09

服务器软件目录:

mysql商用 不修改源码 mysql商用怎么免费_MySQL_10

数据目录:

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_11

点击install安装即可:

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_12


配置:

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_12

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_14

机器类型

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_15


是否支持事务功能:

mysql商用 不修改源码 mysql商用怎么免费_MySQL_16

innodb表空间:

mysql商用 不修改源码 mysql商用怎么免费_mysql_17


连接数量:

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_18

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_19


字符集设定:

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_20


配置windows管理相关:

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_21


配置安全选项,设置管理员的用户名与密码:

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_22


最后执行配置即可:

mysql商用 不修改源码 mysql商用怎么免费_mysql_23


配置后,会启动服务。

新版的MySQL安装包大了很多,安装过程也有些不一样。

四、使用GUI操作MySQL

4.1、关系型数据库的典型概念

数据库 databse:数据的仓库

mysql商用 不修改源码 mysql商用怎么免费_mysql_24

表 table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式

行:行用于记录数据

记录:行内的数据

列:列用于规定数据格式

字段:数据的某个列

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_25

SQL:用来管理数据的语言。结构化查询语言(SQL,Structured Query Language)

mysql商用 不修改源码 mysql商用怎么免费_MySQL_26

主键:唯一地标识表中的某一条记录,不能空,不能重复

4.2、登录数据库

mysql商用 不修改源码 mysql商用怎么免费_mysql_27

*连接本地数据库时需要启动服务

mysql商用 不修改源码 mysql商用怎么免费_MySQL_28

4.3、创建数据库

 

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_29

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_30

4.4、创建表

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_31

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_32

列的类型:

mysql商用 不修改源码 mysql商用怎么免费_MySQL_33

数字类型

整数: tinyint、smallint、mediumint、int、bigint
浮点数: float、double、real、decimal
日期和时间: date、time、datetime、timestamp、year

字符串类型
字符串: char、varchar
文本: tinytext、text、mediumtext、longtext

二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob

列的约束:

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_34

4.5、管理数据

4.5.1、添加数据

双击新建好的表名,打开表,就可以添加数据了。

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_35

4.5.2、删除数据

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_36

4.5.3、修改表结构

如果想向现有的表中添加一列,则可以修改表结构:

mysql商用 不修改源码 mysql商用怎么免费_mysql_37

4.5.4、外键

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_38

上面这个学生表是有些问题的:

a)、不便于修改,比如教室换成了305教室,则每个学员都要修改

b)、数据冗余,大量的重复数据

将表拆分成两个,分解后问题解决,如下图所示:

mysql商用 不修改源码 mysql商用怎么免费_MySQL_39

这里的班级编号就是外键,可以空,但不为空时他的值一定在要引用表中存在。如果学生表中的编号是主键这里就不应该重复,外键则可以重复也允许为空。

添加外键:

班级表:

mysql商用 不修改源码 mysql商用怎么免费_mysql级联删除_40

学生表:

mysql商用 不修改源码 mysql商用怎么免费_mysql_41

添加外键:

mysql商用 不修改源码 mysql商用怎么免费_mysql_42

删除与更新时可以实现级联更新与删除,当更新设置为CASCADE时主键变化引用主键的表也会一起变化,当删除设置为CASCADE时删除主键表,引用的记录都将被删除。

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_43

create table s_orderform(
          o_id int auto_increment primary key,
         o_buyer_id int,
         o_seller_id int,
         o_totalprices double,
         o_state varchar(50),
         o_information varchar(200),foreign key(o_buyer_id) references s_user(u_id),      #外链到s_user表的u_id字段foreign key(o_seller_id) references s_user(u_id)      #外链到s_user表的u_id字段
)

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_43

4.5.5、唯一键

唯一键,也称(唯一约束),和主键的区别是可以为有多个唯一键并且值可以为NULL,但NULL也不能重复,也就是说只能有一行的值为NULL。它会隐式的创建唯一索引。

设置方法:索引 --> 添加索引 -->  栏位名 添加你想设置唯一约束的列 --> 索引类型选择 Unique

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_45

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_43

#查询select id,name from yuangongselect * from yuangongselect * from yuangong where salary>5000
#增加INSERT into yuangong(name,salary,bumenId,mobile) value('张为剑',2190.6,2,19889007867);INSERT into yuangong(name,salary,bumenId,mobile) value('张娜拉',9871.6,1,19889007777);
#修改update yuangong set salary=salary+1 where id=7
#删除INSERT into yuangong(name,salary,bumenId,mobile) value('张拉拉',9871.6,1,19889007777);delete from yuangong where id=8

mysql商用 不修改源码 mysql商用怎么免费_mysql商用 不修改源码_43

4.6、上机练习

1、请创建一个新的数据库叫HR,在HR数据库中添加EMP表,EMP表的表结构如下所示

EMP表:员工信息

名称

类型

描述

1

EMPNO

int

雇员的编号,主键,自动增长

2

ENAME

VARCHAR(10)

雇员的姓名,由10位字符所组成,不为空,唯一键

3

JOB

VARCHAR(9)

雇员的职位

4

MGR

int

雇员对应的领导编号,领导也是雇员,可空(可删除这一列)

5

HIREDATE

TimeStamp

雇员的雇佣日期,默认为当前日期

6

SAL

Numeric(7,2)

基本工资,其中有两位小数,五位整数,一共是七位

7

COMM

Numeric(7,2)

奖金,佣金

8

DEPTNO

int

雇员所在的部门编号,可空,外键fk_deptno

9

DETAIL

Text

备注,可空

Dept:部门表

名称

类型

描述

1

DeptNO

int

部门的编号,主键,自动增长

2

DNAME

VARCHAR(10)

部门名,由50位字符所组成,不为空,唯一键

3

DTel

VARCHAR(10)

电话,可空

2、根据上面的表结构完成表的创建,表名为emp

3、在表中添加5条以上的数据

4、完成下列查询要求

4.1查询所有员工信息

4.2查询所有工资介于2000-5000间的员工姓名、职位与工资

4.3查询所有姓“张”的员工

4.4 按工资降序查询出2014年到2015年间入职的员工

4.5、将工资普遍上调20%

4.6、将工资低于3000元的员工奖金修改为工资的2.8倍

4.7、删除编号为5或者姓“王”的员工