当前位置: 首页>大数据>正文

MySQL简介及安装

一,JAVAweb

就是用java的技术来开发网站

MySQL简介及安装,第1张
流程

二,数据库

2.1 安装

  • 第一步 下载mysql数据库(https://dev.mysql.com/downloads/mysql/)
  • 第二步 环境变量配置
    把mysql的安装目录复制好


    MySQL简介及安装,第2张
    环境变量

    然后编辑path 新建一个MYSQL下的bin目录


    MySQL简介及安装,第3张
  • 第三步 新建配置文件

[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安装目录中

MySQL简介及安装,第4张
配置文件
  • 第四步 初始化mysql
    在命令黑窗口 执行mysqld --initialize-insecure命令,初始化mysql此时安装目录下会生成一个data文件夹

  • 第五步 注册mysql服务
    在黑窗口使用mysqld -install,回车
    将mysql注册到自己计算机内成为一个服务

  • 第六步 启动与关闭mysql服务
    net start mysql
    net stop mysql

    MySQL简介及安装,第5张
    启动mysql

    此时你的计算机就可以称为mysql服务器,也就是安装了mysql服务的机器
    安装了某一种服务器软件的计算机,就称为服务器
  • 第七步 修改默认密码
    mysqladmin -u root password 1234

  • 第八步 登录与退出
    mysql -uroot -p1234登录
    exit退出
    如果你要操作别人电脑上的数据库就可以使用
    mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)
    需要对方的主机地址和端口号

2.2 卸载

  • 第一步需要暂停mysql服务 ,黑窗口输入net stop mysql
  • 第二步 mysqld -remove mysql
  • 第三步 删除对应环境变量

2.3 mysql数据模型

它是一个关系型数据库 也就是二维表组成的数据库。
如果不是表结构组成的数据库那就是非关系型数据库

  • 优点:
    格式一致,易于维护
    存储磁盘中安全
    使用通用sql语言,可用复杂查询

mysql创建的数据库就是磁盘中的文件夹

2.4 SQL的通用语法

sql语句可以以单行或多行书写,以;结尾。且不区分大小写,关键字建议大写
单行注释--
多行注释`/**/

MySQL简介及安装,第6张
各种

DDL(数据定义语言)

操作数据库的
1.查询
show databases
2.创建
create databases 数据库名称
3.删除
drop database 数据库名;
drop database if exists 数据库名;如果存在则删除
操作表的
1.创建表

create table 表名(
字段名1 数据类型1,
字段名2 数据类型2,
    );
MySQL简介及安装,第7张
创建表

2.查询表
show tables查询一共有哪些表
desc 表名查询表结构 如字段
3.修改表
alter table 表名 rename to 新表名 //修改表名
alter table 表名 add 列名 数据类型 //添加一列
alter table 表名 drop 列名//删除一列
alter table 表名 modify 列名 数据类型//修改列
alter table 表名 modify 列名 新列名 数据类型

4.删除表
drop table 表名
drop table if exists 表名 如果存在删除

DML(数据操纵语言)

对表中数据进行增删改查操作
1.增加数据
insert into 表名(列名1,列名2) values(值1,值2); 指定列添加数据
insert into 表名 values(值);//给全部列添加数据
INSERT INTO user values(2,'李四'),(3,'王五');//批量添加多列数据
2.修改数据
update 表名 set 列名=值1,列名=值2 where条件
如将张三性别改为女
update user sex='女' where name = '张三';
3.删除数据
delete from 表名 where 条件

DQL(数据库查询语言)

对表中数据进行查询


MySQL简介及安装,第8张
语法

1.基础查询
select 字段名 from 表名;//查询多个字段
select * from 表名;//查询所有数据
select distinct 字段列表 from 表名;//去除重复记录
as 起别名 可以省略as
2.条件查询
select 字段列表 from 表名 where 条件列表;

符号 功能
> 大于
< 小于
>= 大于等于
<= 小于等于
= 等于
<>或!= 不等于
between and 范围内(包括)
in 多选一
like 模糊查询 _代表一个字符 % 代表多个字符
is null 是null
is not null 不是null
and或&& 并且
or或两个竖线 或者
not或! 非 不是

3.排序查询
select 字段列表 from 表名 order by 排序字段名1 方式,排序字段名2 方式;
如有多个排序条件,当第一个条件值为相同时,执行第二个默认升序 desc 降序
查询学生信息,按照数学降序排序,如数学成绩一样安装英语升序排序
select * from student order by math desc,english asc;

4.分组查询
如一张学生表中都有男同学和女同学 ,那么我想查询男同学的平均分和女同学的平均分是多少.这是就需要分成两组 一男一女
在此之前需要先学习聚合函数,以便计算求和,平均分等
聚合函数(将一列作为整体纵向计算)

函数名 功能
count(列名) 统计数量
max(列名) 最大值
min(列名) 最小值
sum(列名) 求和
avg(列名) 平均值

select 聚合函数(列名)from 表名;

语法select 字段列表 from 表名 where 分组前条件限定 group by 分组字段名 having 分组后条件过滤
where和having的区别:
1 执行时机不同,where是分组前判断,不满足则不参与分组.having是对分组之后的结果进行过滤
2where不能对聚合函数进行判断,having可以

例 查询男同学和女同学各自数学的平均分,以及各自人数,分数低于70分的不参与,分组之后大于两个人
select sex,avg(math),count(sno) from student where scoure< 70 group by sex having count(*)>2;
执行顺序 where>聚合函数>having

5 分页查询


MySQL简介及安装,第9张
分组查询

为了提高用户体验
语法
select 字段名 from 表名 limit 起始索引,显示条目;
起始索引等于(当前页数-1 * 显示条目)
oracle使用rownumber
SQL server分页查询使用top

2.5 约束

对表中数据进行一些限制.作用于表中列上的规则,限制表中加入的数据

  • 非空约束 NOT NULL
  • 唯一约束 UNIQUE
  • 主键约束 PRIMARY KEY ANTO_INCREMENT(自动增长)
  • 默认约束 DEFAULT
  • 检查约束 CHECK
  • 外键约束 FOREIGN KEY(是用来让两个表数据进行连接,保证数据的一致性和完整性)


    MySQL简介及安装,第10张
    外键

    在emp员工表添加外键dep_id关联dept的主键id
    constrain fk_emp_dept foreign key (dep_id)reference dept(id)
    删除外键
    alter table emp drop foreign key fk_emp_dept
    建完表后添加外键
    alter table emp add fk_emp_dept foreign key(dep_id) reference dept(id )

2.6 数据的设计

数据用什么表保存,表和表之间的关系。
软件研发步骤
需求分析(产品经理设计产品原型) ->设计(架构师和工程师 包括软件结构设计 数据库设计 接口设计 过程设计) 编码(开发工程师) 测试(测试工程师) 安装部署(运维工程师)
数据库设计概念:
建立数据库中表结构以及表和表之间的关系
数据库设计步骤
1 需求分析(根据产品原型分析)
数据是什么,数据有哪些属性,数据和属性的关系
2 逻辑分析(通过ER(实体关系)图进行逻辑建模)

MySQL简介及安装,第11张
ER图

实体用方块表示 属性用椭圆表示,实体就是数据库中的每一个表而属性就是表中的字段
3 物理设计(逻辑设计转换为物理设计)
4 维护设计(对新的需求进行建表,表优化)
  • 一对多(多对一)
    如:部门和员工


    MySQL简介及安装,第12张
    一对多
  • 多对多
    如:商品和订单


    MySQL简介及安装,第13张
    多对多
  • 一对一
    用户和用户信息


    MySQL简介及安装,第14张
    一对一

2.7 多表查询

业务系统中有很多表 ,多张表之间查询数据。
笛卡尔积:就是有A和B两个集合,取所有的组合情况就是笛卡尔积
如a有2个数据,b有3个 那么所有组合情况就是有2*3=6种情况


因为孙悟空这个人不能又是研发部又是市场部的.所有我们需要条件进行筛选,在这基础上消除一些无效数据
所以要写成
SELECT * from emp,dept WHERE emp.dep_id = dept.did;
所以这也是连接查询(内连接),属于多表查询的一种
  • 连接查询

    • 内连接 相当于查询A和B集合的交集
      MySQL简介及安装,第16张
      内连接

      SELECT emp.name,dept.name from emp,dept WHERE emp.dep_id = dept.did
      另一种内连接写法
      select * from emp inner join dept on emp.dep_id = dept.did
    • 外连接
      分为左外连接和右外连接
      select * from emp left join dept on emp.dep_id = dept.did
      左外连接相当于查询a表全部数据和交集部分
      MySQL简介及安装,第17张
      左外连接
  • 子查询
    一个连接分为两步走
    查询高于张三工资的员工信息
    1.查询张三的工资
    select salary from emp where name = '张三';//答案为5000
    2.查询高于5000的工资
    select * from emp where salary > 5000;
    3所以说这个5000 就可以替换成第一个查询语句去查询
    `select * from emp where salary > (select salary from emp where name = '张三');

多个条件可以放在in中去查询


MySQL简介及安装,第18张

多表查询的时候 你要了解他们的ER图 关系 ,比如一对多就需要连接查询


MySQL简介及安装,第19张
对象模型

2.8 事务

就是一组数据库操作命令,事务当成一个整体来提交要么同时成功要么同时失败
好比如银行系统的转账操作,首先先查询自己的余额够不够,然后转账给自己的账户扣除掉钱,同时对方的账户增加了钱,这一系列操作可以称为一个事务。

但如果在执行对方账户增加钱的时候出错了,所以就没有加钱。
预防方法:转账之前开启事务,出现异常回滚事务,成功之后提交事务
BEGIN开启
ROLLBACK回滚
COMMIT 提交
只要开启事务,所有的操作都是临时的,只有commit命令输入之后才是持久化存储。

事务的四大特征

  • 原子性 最小单位 同时成功同时失败
  • 一致性 数据保持一致状态
  • 隔离性 多个事务操作的可见性
  • 持久性 提交之后,数据库的改变时永久性的
    set @@autocommit = 0;设置手动提交 1是自动提交
    mysql默认自动提交
    oracle需要手动提交

图形化工具 Navicat

Navicat官网

MySQL简介及安装,第20张
图形化

https://www.xamrdz.com/bigdata/7jp1996119.html

相关文章: