MySQL基础
1. 下载MySQL
1.1 下载补丁
先下载Windows补丁dxwebsetup.exe
和 vcredist_x64.exe
(Google搜直接官网下载即可)
1.2 下载MySQL
1.3 确定下载路径
下载好的MySQL解压缩到一个你知道的文件夹下
我的路径:D:\Program Files\Mysql\mysql-5.7.31-winx64
1.4 创建配置文件
进入该文件下,添加配置文件my.ini
编辑该文件
[mysqld]
port=3306
basedir=D:\\Program Files\Mysql\\mysql-5.7.31-winx64
datadir=D:\Program Files\Mysql\mysql-5.7.31-winx64\\data
注意:
- 第一个文件路径时你的MySQL安装所在的路径,第二个路径是你的MySQL数据库的数据存放的位置
- 要加多加一个
\
转义字符把\
给转义
1.5 初始化MySQL
以管理员权限打开终端, 以下终端操作都要在管理员权限下进行
输入初始化命令
"MySQL路径\bin\mysqld.exe" --initialize-insecure
执行后文件目录会新增data文件夹
2. 启动MySQL
2.1临时启动
"MySQL路径\bin\mysqld.exe"
这种启动在终端下允许,关闭终端,MySQL停止,一般不用
2.2 制作成Windows服务
"MySQL路径\bin\mysqld.exe" --install mysql57
mysql57是自己命名,最好以mysql最为开头,57这里是我的版本
2.3 连接测试
"MySQL路径\bin\mysqld.exe" -h 127.0.0.1 -P 3306 -u root -p
说明: -h
后接的是要连接的服务器地址。 初始进入密码不需要,直接回车可进入
2.4 配置环境变量
path下添加一条MySQL的路径
即可 eg: D:\Program Files\Mysql\mysql-5.7.31-winx64\bin
至此: 终端在一般模式也可以使用MySQL啦
3. MySQL指令
3.1 连接
进入MySQL本地连接
mysql -u root -p
3.2 设置密码
set password = password('123456');
123456就是设置的密码
3.3 查看已有的的文件夹(数据库)
show databases;
3.4 退出(关闭连接)
exit;
4. 忘记密码怎么办?
默认情况下,启动MySQL时,需要输入账号、密码
修改MySQL配置,重启MySQL服务(无账号模式)
mysql -u root -p
进去后重新设置密码
退出
再重新修改MySQL配置文件,重新启动MySQL(需要账号的模式)
mysql -u root -p
新密码
-
停止服务
-
修改MySQL配置文件(以无账号模式)
配置文件
my.ini
初始配置文件:
[mysqld] port=3306 basedir=D:\\Program Files\Mysql\\mysql-5.7.31-winx64 datadir=D:\Program Files\Mysql\mysql-5.7.31-winx64\\data
加上一句话
skip-grant-tables=1
即:
[mysqld] port=3306 basedir=D:\\Program Files\Mysql\\mysql-5.7.31-winx64 datadir=D:\Program Files\Mysql\mysql-5.7.31-winx64\\data skip-grant-tables=1
-
重新启动MySQL
-
再次登录(无需密码进入)
-
执行命令设置密码
use mysql;
update user set authentication_string = password('新密码'), password_last_changed=now() where user='root';
-
重新修改配置文件(需要账号的模式登录)【停掉MySQL服务】
删除
skip-grant-tables=1
再保存即可 -
重新启动,输入新密码
5. MySQL指令
5.1 数据库管理(文件夹)
-
查看已有的数据库(文件夹)
show databases;
-
创建数据库(文件夹)
create database 数据库名字 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
-
删除数据库(文件夹)
drop database 数据库名字;
-
进入数据库(进入文件夹)
use 数据库名字;
-
查看文件夹下的所有数据表(文件)
show tables;
5.2 数据表的管理(文件)
-
进入数据库(进入文件夹)
use 数据库;
-
查看当前数据库下的所有表(文件)
show tables;
-
创建表(文件名称)
create table 表名称( 列名称 类型, 列名称 类型, 列名称 类型 ) default charset=utf8;
例子:
id name age create table tb1( id int, name varchar(16), age int ) default charset=utf8;
varchar(16)
表示字符串类型,最多存16个字符create table tb1( id int, name varchar(16) not null, -- 不允许为空 age int null -- 允许为空(默认) ) default charset=utf8;
create table tb1( id int, name varchar(16), age int default 3 -- 插入数据时,age列的值默认是3 ) default charset=utf8;
create table tb1( id int primary key, -- 主键(不允许为空,不允许重复) name varchar(16), age int ) default charset=utf8;
主键一般用于表示当前行的数据的编号(类似人的身份证)
create table tb1( id int auto_increment primary key, -- 设置主键自增(内部维护) name varchar(16), age int ) default charset=utf8;
一般创建表时都这样写:【标准】
create table tb1( id int not null auto_increment primary key, name varchar(16), age int ) default charset=utf8;
-
查看表内信息
desc 表名;
展示列名,每一列的类型,是否为空,是否为主键,默认值是什么,额外信息
-
删除表
drop table 表名称;
-
向表中加数据
# 插入数据 insert into tb2(salary, age) values(10000, 18); -- 插入一行 insert into tb2(salary, age) values(20000, 28); insert into tb2(salary, age) values(30000, 38), (40000, 48); -- 插入两行
5.3 常用数据类型
整数:
-
tinyint
有符号,取值范围:-128 ~ 127 (默认) tinyint 无符号,取值范围:0 ~ 255 tinyint unsigned
-
int
有符号 无符号:int unsigned
-
bigint
有符号 无符号
例子:
# 创建表
create table tb2(
id bigint not null auto_increment primary key,
salary int,
age tinyint
) default charset=utf8;
# 插入数据
insert into tb2(salary, age) values(10000, 18); -- 插入一行
insert into tb2(salary, age) values(20000, 28);
insert into tb2(salary, age) values(30000, 38), (40000, 48); -- 插入两行
# 查看表中的数据(展示表中的内容)
select * from tb2;
小数:
-
float
-
double
-
decimal
准确的小数值,8是数字的总个数是8位(符号不算),小数点后有2位。
最大总共有65位,小数点后最多有30位
总位数超过限制会报错,总位数不超&小数点后的位数太多会进行四舍五入
create table, tb1( id int not null auto_increment primary key, salary decimal(8, 2) ) default charset=utf8;
字符:
-
char(m) 查询速度快
定长字符串,超过指定长度会报错
char(11),固定按照11个字符串进行存储,没有11个也会按照11个存储
m代表字符串的长度,最多可容纳255个字符
create table, tb1( id int not null auto_increment primary key, mobile char(11) ) default charset=utf8;
-
varchar(m) 节省空间
变长字符串,超过指定长度会报错
真实数据有多长就存储多少
m代表字符串的长度,最大65535个字节 / 3 = 最大的中文字数
create table, tb1( id int not null auto_increment primary key, salary decimal(8, 2) ) default charset=utf8;
-
text
text数据类型一般用于存储变长的大字符串,最多65535个字符 一般情况下,长文本会用text类型,例如:文章,新闻等
-
mediumtext
-
longtext
日期:
-
datetime
YYYY-MM-DD HH:MM:SS
-
date
YYYY-MM-DD
清屏:
system clear
5.4 数据行操作
5.4.1 新增数据
insert into 表名(列名,列名) values(值,值);
insert into 表名(列名, 列名) values(值,值),(值,值),(值,值);
5.4.2 删除数据
删除整张表的数据
delete from 表名;
过滤删除的条件
delete from 表名 where 条件;
delete from tb1;
delete from tb1 where id = 3;
delete from tb1 where id = 4 and name = "张三“;
delete from tb1 where id = 3 or name = "李四";
delete from tb1 where id >= 3;
delete from tb1 where id != 3;
delete from tb1 where id in (1, 3); # 表示id=1和id=5的被删掉
5.4.3 修改数据
update 表名 set 列=值; # 表中的所有列都改
update 表名 set 列=值, 列=值;
update 表名 set 列=值 where 条件;
通过条件判断可以控制
update tb1 set age=age+10 where id>5;
5.4.4 查询数据
查询表中的所有数据
select * from 表名称;
查询某几列
select 列名称,列名称 from 表名称;
还可以加条件
select 列名称,列名称 from 表名称 where 条件;