文章目录
Linux
如果在Ubuntu18.04版本下,如果直接输入:
sudo apt install mysql-server
会默认安装MySQLl5.7版本,安装过程并没有提示输入密码,安装完成后也无法正常登录。
这是因为MySQL为Ubuntu18.04提供了新版本MySQL8.0.
MySQL5.7版本最高只适配到Ubuntu17.04,而MySQL8.0最高适配到Ubuntu18.04
完全卸载MySQL方法
先依次执行下面的语句:
sudo rm /var/lib/mysql/ -R
sudo rm /etc/mysql/ -R
dpkg --list|grep mysql 查看mysql的依赖项
卸载命令:sudo apt-get remove mysql-common
卸载命令:sudo apt-get autoremove --purge mysql-server-8.0
清除残留数据,运行命令:dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
如果出现以下错误,证明你的系统中没有残留配置文件了,无须担心
⦁ 更新软件源
更新软件列表:sudo apt-get update
更新软件包:sudo apt-get upgrade
下载
在MySQL官网下载8.0版本的deb文件
打开MySQL官方下载网址:
MySQL官方下载地址:https://dev.mysql.com/downloads/
找到MySQL Community Server
选择Ubuntu Linux,根据你自己的Ubuntu版本和位数选择版本(我的版本是18.04 64位)
点击下面的企鹅,跳转到apt下载MySQL的专栏网页(官方强烈推荐使用包管理工具安装)
点击download下载,选择No thanks,just start my download
⦁ 开始安装
创建一个文件家摆放刚刚下载好的deb文件,然后使用chmod命令改变文件夹权限
输入命令sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb
会弹出窗口,默认ok即可(因为我们这里默认版本是8.0,无需修改)
重新更新软件库
更新软件列表:sudo apt-get update
输入命令安装:sudo apt-get install mysql-server
安装过程中会弹出窗口要求输入root用户下的密码,输入两次
选择加密方式是建议选择第二项(听说原因是Ubuntu18.04终端不支持新的加密方式)
出现这样就代表安装成功
验证
输入mysql -u root -p
,输入密码后出现以下界面代表安装成功
⦁ MySQL环境配置
和jdk、hadoop配置放在一起
>> sudo vi .bashrc
在文件的最后,加上下面两行:
export MYSQL_HOME=/etc/mysql
export PATH=$PATH:$MYSQL_HOME/bin
保存并关闭文件,执行以下命令使得环境变量生效:
>>source .bashrc
⦁ 设置远程权限访问
选中数据库
use mysql;
update user set host = '%' where user = 'root' and host = 'localhost';
GRANT ALL ON *.* TO 'root'@'%';
flush privileges;
Windows
我用的Windows10
卸载
- 在 设置 —> 应用 —> 应用与功能 中,删除 MySQL Server
- 删除其中的Data目录(存放数据库信息)
- 默认路径:C:\ProgramData\MySQL\MySQL Server 8.0\Data
安装
-
退出关闭杀毒软件,关闭防火墙。否则可能安装失败
-
MySQL Installer
-
选择 Add
右侧四个:Add… Modify… Update… Remove…
-
将左侧的 MySQL Server 8.0.11- x64 移动到右侧
Select Products and Features中,将左侧 Available Products: 中的 MySQL Servers —> MySQL Server —> MySQL Server 8.0.11- x64 通过 中间的 箭头 移动到 右侧 Products / Features To Be Installed 中,点击 Next
-
选择 Excute
在 Installation 中选择执行,会自动联网下载
-
一直下一步
-
Type and Networking
选择 Show Advanced Options,会自动检测路径中是否有中文乱码
-
Advanced Options
File Path 中不要出现乱码,否则可能会安装失败
解决:将用户名改为英文
-
配置
-
不配置也可以,配置是为了从命令行操作
-
将 MySQL Server 8.0 的 bin 目录的路径添加到系统环境变量的 path 中去
默认路径:C:\Program Files\MySQL\MySQL Server 8.0\bin
启动、关闭
- 第一种方式
- 打开 服务
- 通过 win + R ,输入 services.msc 打开 服务
- 通过 使用右键点击左下角Windows徽标 打开 计算机管理,在 服务和应用程序 中找到 服务,点击打开
- 找到 MySQL80
- 右键进行 启动 / 停止 / 暂停 / 重启
- 打开 服务
- 第二种方式
- 以管理员身份进入 命令行
- 启动 MySQL 服务:
net start MySQL80
- 关闭 MySQL 服务:
net stop MySQL80
命令行连接MySQL
-
mysql -u 用户名 -p 密码
使用指定用户名和密码登录当前计算机中的 MySQL 数据库
mysql -uroot -p123456
-
mysql -h 主机IP -u 用户名 -p 密码
-h 指定 IP 方式,进行 登录
mysql -h127.0.0.1 -uroot -p123456
-
退出
exit 或者 quit
MySQL 概述
MySQL 的目录结构
-
安装目录:
C:\Program Files\MySQL\MySQL Server 8.0
- bin :放置一些可执行文件
- docs :文档
- include :包含(头)文件
- lib :依赖库
- share :用于存放字符集、语言等信息
-
MySQL 配置文件与数据库及数据表所在目录:
C:\ProgramData\MySQL\MySQL Server 8.0
-
my.ini 文件是 MySQL 的配置文件,一般不建议去修改
-
Data 是 MySQL 管理的数据库文件所在的目录
data 目录中保存的就是数据库(文件夹)与数据表(文件)的信息
-
-
数据库:文件夹
表:文件
数据:文件中的记录
数据库管理系统
-
简称 DBMS(DataBase Management System)
-
指一种操作和管理维护数据库的大型软件
-
MySQL 就是一个 数据库管理系统软件,安装了 MySQL 的电脑,我们叫它数据库服务器
-
作用:用于建立、使用和维护数据库,对数据库进行统一的管理
-
与数据库、表之间的关系
MySQL 中管理着很多数据库,在实际开发环境中一个数据库一般对应了一个应用,数据库当中保存着多张表,每一张表对应着不同的业务,表中保存着对应业务的数据
数据库表
- 数据库中以表为组织单位存储数据
- 表类似 Java 中的类,每个字段都有对应的数据类型
SQL
-
概念
- SQL 是结构化查询语言(Structured Query Language)的简称,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统
- 作用
- 所有关系型数据库的统一查询规范,不同的关系型数据库都支持 SQL
- 所有的关系型数据库都可以使用 SQL
- 不同数据库之间的 SQL 有一些区别
-
通用语法
-
SQL 语法可以单行 或者 多行书写,以分号结尾
;
(Sqlyog中可以不用写分号) -
可以使用空格和缩进来增加语句的可读性
-
MySQL 中使用 SQL 不区分大小写,一般关键字大写,数据库名、表名、列名小写
-
注释
-- (双减号加空格):单行注释 /* */(注释写在中间):多行注释,和 Java 相似 # (#加空格):MySQL 特有的单行注释
-
-
分类
-
数据定义语言:简称 DDL(Data Definition Language)
用来定义数据库对象:数据库,表,列等
-
数据操作语言:简称 DML(Data Manipulation Language)
用来对数据库中表的记录进行更新
-
数据查询语言:简称 DQL(Data Query Language)
用来查询数据库中表的记录
-
数据控制语言:简称 DCL(Data Control Language)
用来定义数据库的访问权限和安全级别,及创建用户
-
DDL
操作数据库
创建数据库
-
创建指定名称的数据库
create database 数据库名;
-
创建指定名称的数据库,并且指定字符集(一般指定 utf-8 / utf8)
create database 数据库名 character set 字符集;
查看 / 选择 数据库
-
切换数据库
use 数据库;
-
查看当前正在使用的数据库
select database();
-
查看 MySQL 中有哪些数据库
show databases;
-
查看一个数据库的定义信息
show create database 数据库名;
修改数据库
-
数据库的字符集修改操作
alter database 数据库名 charactor set 字符集;
删除数据库
-
从 MySQL 中永久的删除某个数据库
drop database 数据库名
操作数据表
创建表
-
语法结构
create table 表名(
字段名称1 字段类型(长度),
字段名称 字段类型
最后一列不加逗号
)
-
复制表结构
create table 新表名 like 旧表名;
查看表
-
查看当前数据库中的所有表名
show tables;
-
查看数据表的结构
desc 表名;
删除表
-
删除表(从数据库中永久删除某一张表)
drop table 表名;
-
判断表是否存在,存在的话就删除,不存在就不执行删除
drop table if exists 表名;
修改表
-
修改表名
rename table 旧表名 to 新表名
-
修改表的字符集
alter table 表名 character set 字符集;
-
向表中添加列
alter table 表名 add 字段名称 字段类型
-
修改表中列的数据类型或长度
alter table 表名 modify 字段名称 字段类型
-
修改列名称
alter table 表名 change 旧列名 新列名 类型(长度);
-
删除列
alter table 表名 drop 列名;
DML
插入数据
-
插入全部字段,将所有字段名写出
insert into 表名(字段名1,字段名2 … )values(字段值1,字段值2 … );
-
插入全部字段,不写字段名
insert into 表名 values (字段值1,字段值2 … );
-
插入指定字段的值
insert into 表名(列名) values (字段对应值);
-
注意
- 值与字段必须要对应,个数相同 & 数据类型相同
- 值的数据大小,必须在字段指定的长度范围内
varchar
、char
、date
类型的值,必须使用单引号或者双引号包裹- 如果要插入空值,可以忽略不写,或者插入 null
- 如果插入指定字段的值,必须要写上列名
更改数据
-
不带条件的修改
update 表名 set 列名 = 值;
-
带条件的修改
update 表名 set 列名 = 值 [where 条件表达式];
条件表达式:字段名 = 值
[]:中括号中的内容可有可无
删除数据
-
删除所有数据
不推荐,有多少条记录,就执行多少次删除操作,效率低
delete from 表名;
推荐,先删除整张表,然后再重新创建一张一模一样的表,效率高
truncate table 表名;
-
指定条件删除数据
delete from 表名 [where 字段名 = 值]
DQL
简单查询
-
查询表中所有数据
select * from 表名;
-
查询表中的所有记录,仅显示 id 和 name 字段
select 列名1,列名2 . . . from 表名;
-
将列名改为别名
select 列名1 as ‘别名名称’ ,列名2 as 别名名称 . . . from 表名;
-
去重
select distinct 列名 from 表名;
-
运算查询
select 列名 ±*/ 数值 from 表名
条件查询
-
语法格式
select 列名 from 表名 where 条件表达式;
-
运算符
-
比较运算符
>
:大于>=
:大于等于<
:小于<=
:小于等于=
:等于<>
:不等于!=
:不等于 -
逻辑运算符
And &&
:多个条件同时成立Or ||
:多个条件任一成立Not
:不成立,取反
-
模糊查询 通配符
-
通配符
%
:表示匹配任意多个字符串_
:表示匹配一个字符串 -
模糊查询
select * from 表名 where 列名 like ‘通配符表示’;
说明
因为是之前的记录,从文档里面复制过来的。
所以没有记录参考链接。