MySQL快速入门


一、MySQL安装配置

安装环境:Win10 64位

软件版本:MySQL 5.7.24 解压版

1、下载

点开下面的链接:

https://downloads.mysql.com/archives/community/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jVedh6F8-1657446831794)(imgs/image-20210404200055449.png)]

选择选择和自己系统位数相对应的版本点击右边的Download,此时会进到另一个页面,同样在接近页面底部的地方找到如下图所示的位置:

img不用理会上面的登录和注册按钮,直接点击No thanks, just start my download.就可以下载。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NUGbBQxn-1657446831801)(.\imgs\image-20201109134805641.png)]

2、安装(解压)

下载完成后我们得到的是一个压缩包,将其解压,我们就可以得到MySQL 5.7.24的软件本体了(就是一个文件夹),我们可以把它放在你想安装的位置。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-svawPAC1-1657446831803)(.\imgs\image-20201109134948046.png)]

3、配置

  1. 添加环境变量

环境变量里面有很多选项,这里我们只用到Path这个参数。为什么在初始化的开始要添加环境变量呢?

在黑框(即CMD)中输入一个可执行程序的名字,Windows会先在环境变量中的Path所指的路径中寻找一遍,如果找到了就直接执行,没找到就在当前工作目录找,如果还没找到,就报错。我们添加环境变量的目的就是能够在任意一个黑框直接调用MySQL中的相关程序而不用总是修改工作目录,大大简化了操作。

右键此电脑属性,点击高级系统设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ESvdzs10-1657446831805)(.\imgs\1556823-20181220220242472-524708778.png)]

点击环境变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fhitFFiY-1657446831807)(.\imgs\1556823-20181220220359609-736422950.png)]

系统变量中新建MYSQL_HOME

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ytrOKl9g-1657446831811)(.\imgs\image-20201109140222488.png)]

系统变量中找到并双击Path

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yIwE3HKt-1657446831814)(.\imgs\1556823-20181220220551145-1198958872.png)]

点击新建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-voIqzwRJ-1657446831816)(.\imgs\image-20201109135248104.png)]

最后点击确定。

如何验证是否添加成功?

右键开始菜单(就是屏幕左下角),选择命令提示符(管理员),打开黑框,敲入mysql,回车。如果提示Can't connect to MySQL server on 'localhost'则证明添加成功;如果提示mysql不是内部或外部命令,也不是可运行的程序或批处理文件则表示添加添加失败,请重新检查步骤并重试。

  1. 新建配置文件

新建一个文本文件,内容如下:


[mysql]

default-character-set=utf8

[mysqld]

character-set-server=utf8

default-storage-engine=INNODB

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

把上面的文本文件另存为,在保存类型里选`所有文件 (*.*)`,文件名叫`my.ini`,存放的路径为MySQL的`根目录`(例如我的是`D:\software\mysql-5.7.24-winx64`,根据自己的MySQL目录位置修改)。

![image-20201109142704951](D:\课程产品\JavaWeb\1. 数据库\1. MySQL基础\资料\imgs\image-20201109142704951.png)

![image-20201109142737584](D:\课程产品\JavaWeb\1. 数据库\1. MySQL基础\资料\imgs\image-20201109142737584.png)

上面代码意思就是配置数据库的默认编码集为utf-8和默认存储引擎为INNODB。

### 3. 初始化MySQL

在刚才的黑框中敲入`mysqld --initialize-insecure`,回车,稍微等待一会,如果出现没有出现报错信息(如下图)则证明data目录初始化没有问题,此时再查看MySQL目录下已经有data目录生成。

mysqld --initialize-insecure


![image-20201109140955772](.\imgs\image-20201109140955772.png)

tips:如果出现如下错误

![image-20201109135848054](.\imgs\image-20201109135848054.png)

是由于权限不足导致的,去`C:\Windows\System32` 下以管理员方式运行 cmd.exe

![image-20201109140423691](.\imgs\image-20201109140423691.png)

![image-20201109140001186](.\imgs\image-20201109140001186.png)

### 4. 注册MySQL服务

在黑框里敲入`mysqld -install`,回车。

mysqld -install


![image-20201109141325810](.\imgs\image-20201109141325810.png)

现在你的计算机上已经安装好了MySQL服务了。

MySQL服务器


### 5. 启动MySQL服务

在黑框里敲入`net start mysql`,回车。

```java

net start mysql  // 启动mysql服务

net stop mysql  // 停止mysql服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kc0qr1vF-1657446831819)(.\imgs\1556823-20181221093036851-1317238155.png)]

  1. 修改默认账户密码

在黑框里敲入mysqladmin -u root password 1234,这里的1234就是指默认管理员(即root账户)的密码,可以自行修改成你喜欢的。


mysqladmin -u root password 1234

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GfEhTY3Y-1657446831821)(.\imgs\1556823-20181221093251250-819416425.png)]

至此,MySQL 5.7 解压版安装完毕!


4、登录MySQL

右键开始菜单,选择命令提示符,打开黑框。

在黑框中输入,mysql -uroot -p1234,回车,出现下图且左下角为mysql>,则登录成功。


mysql -uroot -p1234

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fWT9pK3m-1657446831823)(.\imgs\1556823-20181220222422178-61579658.png)]

到这里你就可以开始你的MySQL之旅了!

退出mysql:


exit

quit

登陆参数:


mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)


5、卸载MySQL

如果你想卸载MySQL,也很简单。

右键开始菜单,选择命令提示符(管理员),打开黑框。

  1. 敲入net stop mysql,回车。

net stop mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oXHp3i1K-1657446831824)(.\imgs\1556823-20181220222924783-57600848.png)]

  1. 再敲入mysqld -remove mysql,回车。

mysqld -remove mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nHPd3Z5l-1657446831826)(.\imgs\1556823-20181220223025128-587235464.png)]

  1. 最后删除MySQL目录及相关的环境变量。

至此,MySQL卸载完成!
————————————————

二、 ddl --数据库操作

现在我们已经完成了MySQL的下载,开始进行数据库表操作的 学习。

1、操作数据库

一、查询

查询现有数据库的名称:
show database;

二、创建

创建数据库:
create database 名称;
不能创建两个命名相同的数据库

三、删除

drop database 名称;
不能删除不存在的数据库,为了避免错误可以改写成
drop database if exists 名称;

四、使用

进入数据库以使用数据库
use 名称;
查看当前使用的数据库
select database();

2、表

crud表

show tables();
查看当前数据库的表

desc 表名;
查询某张表的结构

create table 表名(

字段名 数据类型,


);
创建表,每对键值后加逗号,最后一对不能加

alter table 表名 rename to 新的表名;
alter table 表名 add 列名 数据类型;
alter table 表名 modify 列名 新数据类型;
alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 drop 列名;

表的数据类型

MySQL支持多种类型大致可以分为三类:数值、日期、字符串

数据类型表

3、操作表中数据

基础增删改

insert into 表名(列名1,列名2…)values (值1,值2…);
给指定列添加数据

update 表名 set 列名1=值1,列名2=值2,…where 条件 ;
修改数据

delete from 表名 where 条件 ;
删除数据

4、查询操作

查询是sql语句最频繁最重要的工作。

select 字段列表
from 表名列表
where 条件的限定
group by 分组字段
having 分组后的条件限定
order by 排序操作
limit 分页操作

(1)基础查询

建成已有测试表进行实验;

在这里插入图片描述

现在我们进行对地址集的查询,也就是查询地址列的所有值
select address from stu;

在这里插入图片描述
此时地址列上的所有值都已经被查询
为了得到更准确的数据也就是没有重复的数据,我们优化一下查询语句
select distinct address from stu;
在这里插入图片描述

查询名字和数英成绩
在这里插入图片描述

在查询出结果时可以给字段名其一些别名
select name,math as 数学成绩,english as 英语成绩 from stu;
as也可以省略
在这里插入图片描述

(2)条件查询

select * from stu where age>=20 and age<=30;
查询20到30间的学生所有信息
select * from stu where age between 20 and 30;
以日期为条件查询最适合使用between
等值判断只需要使用一个等号=,不等于使用!=或者<>

select * from stu where age in (20,21,22…30);
使用或者判断时使用or、也可以是in(值1,值2…)

null值的比较不可以使用=或者!=,需要使用is或者is not
select * from stu where english is null;

like查询,也就是模糊查询通配符查询,_匹配单个字符,%匹配多个字符

select * from stu where name like ‘马%’;
在这里插入图片描述
select * from stu where name like ‘_花%’;
查询第二个字是花的

select * from stu where name like ‘%花%’;
查询名字中包含花的

(3)排序查询

asc升序排列(默认)
desc降序排列
select * from stu order by math;
查询学生信息按照数学成绩升序排序
select * from stu order by math desc;
查询学生信息按照数学成绩降序排序
select * from stu order by math desc,english asc;
查询学生信息按照数学成绩升序排序,数学成绩一样则按照英语升序排序
如果有多个排序条件当前面条件一样时才会按照后面的条件进行排序

(4)分组查询

聚合函数:将一列数据作为一个整体进行纵向计算(null值不会计入聚合函数计算)
count(列名)统计数量
max min avg sum

统计班级学生人数
select count(*) from stu;
依次类推

分组查询:
select 字段名 from 表名 [where 分组前条件筛选] group by 分组字段名 [having 分组后条件过滤]

查询男同学和女同学的数学平均分,以及各自人数,要求低于70分的不参与分组,分组之后人数大于2个的
select sex,avg(math),count() from stu where math>70 group by sex having count()>2;

执行顺序: where 聚合函数 having

(5)分页查询

select 字段列表 from 表名 limit 起始索引,查询条目数;

tips:limit是MySQL中的方言

三、约束

定义:约束就是作用在列上的规则。

约束的分类:
1、非空约束,保证列中数据不能有null值 not null
2、唯一约束,保证列中所有数据各不相同 unique
3、主键约束,主键是一行数据的唯一标识要求非空且唯一
primary key
4、检查约束,保证列中的值满足某一条件 check
5、默认约束,保存数据时未指定值则采用默认值 default
6、外键约束,外键用来让两个表的数据间建立连接保证数据的一致性和完整性 foreign key

tips:在MySQL中不支持check约束

约束案例:
建立一个员工信息表;更改为约束

create table emp(
id int,
ename varchar(50),
joindate date,
salary double(7,2),
bonus double(7,2)
);

create table emp(
id int primary key auto_increment,-- 员工id,主键且自增长
ename varchar(50) not null unique – 非空且唯一,
joindate date not null ,
salary double(7,2) not null,
bonus double(7,2) default 0 – 默认值为0
);

外键约束:

外键用来让两个表的数据之间建立连接,保证数据的一致性和完整性。

语法

建表时添加外键
constraint 外键名 foreign key 外键列名 references 主表名(主表列名)

建表后添加外键
alter table 表名 add constraint 外键名称 foreign key (外键字段名) references 主表名(主表列名)

删除外键
alter table 表名字 drop foreign key 外键名称

建立两个表进行表内添加外键实验
create table dept(
id int primary key auto_increment,
dept_name varchar(),
addr varchar()
);
create table emp(
id int primary key,
name varchar(50) not null unique ,
age int,
dep_id int,
constraint fk_b foreign key(dep_id) references dept(id)
);

四、数据库设计

根据业务需求和所选用的数据库,构造最优的数据存储模型,构造数据库中的表结构以及表与表之间的关联关系的过程。

1、数据库设计的步骤

1、需求分析
2、逻辑分析
3、物理设计
4、维护设计

2、数据库设计实例

五、多表查询

select * from A , B;
笛卡尔积:
有A,B两个集合,取A,B两个集合的所有组合情况

多表查询:从多张表中查询数据

  连接查询:
  内连接       相当于查询AB交集数据
  外连接      左外连接:相当于查询A表所有数据和交集部分数据
              右外连接:相当于查询B表所有数据和交集部分数据
   子查询:

内连接查询语法:
– 隐式内连接
select 字段列表 from 表1,表2… where 条件;
– 显示内连接
select 字段列表 from 表1 [inner] join 表2 on 条件;

外连接查询语法
– 左外连接
select 字段列表 from 表 left join 表‘’ on 条件;
– 右外连接
left改成right

子查询
查询中嵌套查询,称嵌套查询为子查询
单行单列的子查询–作条件值
select 字段列表 from 表 where 字段名 = (子查询);
多行单列的子查询–作条件值
select 字段列表 from 表 where 字段名 in(子查询);
多行多列的子查询–作虚拟表
select 字段列表 from (子查询) where 条件;

六、事务

事务是一种机制,一个操作序列,包含了一组数据库操作命令。
事务把所有命令作为一个整体一起向系统提交或撤销操作请求,即这组命令要么同时成功要么同时失败。
事务是一个不可分割的工作逻辑单元。
– 开启事务
start transaction;或者begin;
– 提交事务
commit;
– 回滚事务
rollback;

commit之后数据表发生持久的变化,rollback是回到begin之前的情况

在MySQL中每写一个命令并运行,该命令就会被作为事务运行并自动提交。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值