昨日内容回顾
-
作业讲解
-
常用模块
random 随机验证码 hashlib 用户信息加密、文件内容一致性比对 json 序列化与反序列化 -
软件开发架构
服务端所必备的三个条件 1.固定的IP和PORT 2.24小时不间断提供服务 3.支持高并发 -
数据库前戏
-
数据库本质
本质也是一款c/s架构的软件 -
SQL语句的由来
统一思想 -
数据库的分类
关系型数据库 非关系型数据库 -
MySQL下载与安装
1.版本问题 SQL语句是一样的 2.下载对应版本压缩包并解压 3.配置环境变量 bin文件夹 mysql.exe 客户端 mysqld.exe 服务端 4.制作系统服务 管理员身份打开cmd窗口输入 mysqld --install 启动服务 net start mysql 打开cmd窗口输入mysql游客模式登录 mysql 关闭服务 net stop mysql 卸载服务 mysqld --remove
今日内容概要
- MySQL重要概念
- 用户登录
- 忘记密码破解登录
- 配置文件
- 基本SQL语句
- 存储引擎
- 基本数据类型
今日内容详细
MySQL重要概念
数据库 >>> 文件夹
数据表 >>> 文件夹里面的文件
记录(数据) >>> 文件夹里面的文件里面一行行数据
# show databases;
用户登录
1.游客模式
mysql即可
但是权限很少
2.用户名密码方式
mysql -u用户名 -p密码
# 1.以管理员身份初次登录的时候 没有密码
1.管理员身份登录
mysql -uroot -p
2.提示输入密码直接回车即可
3.基本SQL语句
"""SQL语句是以分号作为结束符(登录到服务端之后)"""
1.查看所有的数据库名称
show databases;
2.如果输入的SQL语句有误
1.直接输分号回车报错之后重新输入即可
2.或者使用\c直接取消之前的命令
4.修改密码
mysqladmin -uroot -p原密码 password 新密码
1.修改用户密码(将管理员密码由空改为123) 注意是直接在cmd窗口下敲
mysqladmin -uroot -p password 123
需要再次输入原密码校验 回车即可
忘记密码
1.最简单粗暴(卸载重装)
提前拷贝好需要用到的数据库和表
之后卸载重新安装并在data文件夹下粘贴之前拷贝的数据即可
2.先以不校验用户身份的模式启动服务端
之后修改密码再以正常校验用户身份的方式启动即可
1.停止正常的服务端
net stop mysql
2.以跳过授权表的形式启动服务端
mysqld --skip--grant-tables
3.修改特定用户的密码(重置密码)
update mysql.user set password=password(666) where user="root" and host="localhost";
4.退出客户端并停止服务端然后以正常的方式启动服务端
net stop mysql
net start mysql
5.输入密码登录即可
配置文件
"""
MySQL目录结构
bin文件夹
存放启动文件
data文件夹
存放所有的数据
readme文件
类似于说明书
my-default.ini
mysql默认的配置文件
"""
my-default.ini我们不要做任何修改 如果需要修改配置
需要我们自己重新拷贝一份更名为my.ini
1.\s查看基本信息
发现编码有好几种 可能会出现乱码
我们需要统一编码(utf8)
2.在我们自己的配置文件中指定编码(固定代码 拷贝即可)
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
3.修改配置文件之后一定要重启服务端才能生效
# 扩展补充
如果你觉得每次登录的时候输入用户名和密码过于繁琐
那么可以在配置文件中提前指定(额外再添加两行数据即可)
[mysql]
user='root'
password=666
一定要重新启动服务端
基本SQL语句
1.针对库的增删改查
1.查看所有的数据库
show databases;
show create database 数据库名字; # 针对性查看
2.新增数据库
create database 数据库名字;
3.修改数据库(编码)
alter database 数据库名字 charset='gbk';
4.删数据库(千万不要删除自带的数据库)
drop database 数据库名字;
2.针对表的增删改查
'''由于表是存放于文件中的 需要在操作之前需要先明确库'''
1.查看当前在哪个库下
select database();
2.切换到指定的库下
use 数据库名字;
# 尽量不要操作自带的库和表
3.先创建库
create database db1;
4.切换到db1下
use db1;
# 在db下操作表
1.查看当前库下所有的表名称
show tables;
show create table 表名; # 查看具体的表结构信息
desc 表名; # 查看具体的表字段信息
2.创建表
create table 表名(id int,name char);
3.修改表
alter table 表名 modify name varchar(16); # 字段类型
4.删除表
drop table 表名;
3.针对数据的增删改查
'''先明确库和表'''
1.查看表里面所有的数据
select * from 表名; # *号表示所有字段数据
select * from 库名.表名;
select 字段名1,字段名2 from 表名;
'''当表字段特别多展示的是会出现错乱'''
2.可以采用分行处理
select * from mysql.user\G;
3.添加表数据
insert into 表名 values(字段对应的数据1,字段对应的数据2);
insert into 表名 values(...),(...),(...);
4.修改数据
# 将用户名jason修改为jasonNB
update 表名 set name='jasonNB' where id=1;
5.删除数据
# 将id=2的数据删除
delete from 表名 where id=2;
存储引擎
"""不同的存储引擎在存储数据的时候采取的策略和内部原理互不相同"""
# 查看所有的存储引擎
show engines;
# 需要了解四个
MyISAM
MySQL5.5及之前版本所默认的存储引擎
优点:存取数据速度非常快
缺点:安全性不高并且功能很少
InnoDB
MySQL5.6及之后版本所默认的存储引擎
优点:功能很多并且数据安全性更高
缺点:较于MyISAM存取数据速度稍慢
BlackHole
往里面写入的任何数据都会消失类似于垃圾处理箱
memory
数据基于内存存取
优点:速度极快
缺点:数据断电立刻丢失
# 在创建表的时候可以自己指定存储引擎
create table t1(id int)engine=innodb;
create table t2(id int)engine=myisam;
create table t3(id int)engine=blackhole;
create table t4(id int)engine=memory;
# 不同存储引擎产生的文件个数也不同
innodb
.frm 存储表结构
.MYD 存储表数据及索引(类似于书的目录)
myisam
.frm 存储表结构
.MYD 存储表数据
.MYI 单独存储索引(类似于书的目录)
blackhole
.frm 存储表结构
memory
.frm 存储表结构
# 写入数据
insert into t1 values(1);
insert into t2 values(1);
insert into t3 values(1);
insert into t4 values(1);
数据类型
1.整数类型
tinyint 1字节
smallint 2字节
int 4字节
bigint 8字节
# 不同的类型能够存储的数字范围不一样
验证整数类型是否自带符号
create table t5(id tinyint);
insert into t5 values(-129),(256);
# -128 127超出范围只能存最大极限
'''整数类型都是自带符号的'''
2.浮点类型
float(255,30)
总共255位,小数占30位
double(255,30)
总共255位,小数占30位
decimal(65,30)
总共65位,小数占30位
验证三种类型的区别
create table t6(id float(255,30));
create table t7(id double(255,30));
create table t8(id decimal(65,30));
insert into t6 values(1.111111111111111111111111111111);
insert into t7 values(1.111111111111111111111111111111);
insert into t8 values(1.111111111111111111111111111111);
'''
三者精确度不一样
float < double < decimal
补充知识点:
有时候为了避免数字精确度的问题
很多看似需要使用数字类型存储的数据其实内部都是存的字符串
'''
3.字符类型
char(4)
只能够存储4个字符 超过了报错不超过自动空格填充至四位存储
varchar(4)
只能够存储4个字符 超过了报错不超过有几个就存几个
'''验证括号内数字的限制作用'''
create table t9(name char(4));
create table t10(name varchar(4));
insert into t9 values('jason'),('tom'),('tony');
insert into t10 values('jason'),('tom'),('tony');
修改严格模式
char_length() 统计字段存储的数据长度
# char内部自动填充空格但是在读取数据的时候又会自动移除填充的空格
# 如果需要查看内部原理 还需要再添加一个严格模式
严格模式
5.6及之前的版本数据就算不符合字段限制也不会报错 这个现象是不好的
5.7及之后的版本数据不符合会直接报错
# 查看严格模式
show variables like '%mode%';
# 修改严格模式
set global sql_mode="STRICT_TRANS_TABLES";
# 退出客户端重新进去即可
# 再添加一个严格模式
set global sql_mode="STRICT_TRANS_TABLES,PAD_CHAR_TO_FULL_LENGTH";
补充
数字类型括号里面的数字并不是用来限制存储长度的而是用来控制展示长度
# 结论:我们在定义数字类型的字段时候不需要考虑括号里面的数字写多少只需要写数字类型的名称即可
int
作业
1.整理今日内容
一定要认真仔细的去看去记
涉及到动手的一定要自己手敲
2.修改管理员密码并且将密码写到配置文件并启动
密码
字符编码
3.在自己的电脑上验证四个存储引擎的特点
4.创建一张用户表
需要涵盖我们上课讲的所有的字段类型
并尝试着录入几条数据
本文详细介绍MySQL的安装步骤、配置方法及基本SQL语句的使用。覆盖服务端设置、数据库管理、用户登录流程等内容,并提供了实践案例。
2056

被折叠的 条评论
为什么被折叠?



