数据库初识
mysql 数据库管理系统 DBMS
mysql 关系型数据库管理系统 RDBMS
sql语句 结构化查询语句
关系型:mysql oracle sqlserver sqllite accesse
非关系型:redis mongodb memcache(内存级别) Not Only SQL 不仅仅有关系型
# 不同数据库系统之间的SQL不能互通
数据库解决了以下问题:
操作文件的效率和便捷
解决了多个服务同时使用数据的一致性
解决了安全问题
解决了并发问题
数据库实现原理:
db把数据提出来
python代码后端、浏览器前端
1.浏览器发送一个网络请求 socket信息
2.python代码后端socket服务端接收信息 打开html文件 加载数据库里面的数据
3.socket客户端连接了socket服务端,把数据返回给html文件
4.python代码后端将文件发给浏览器 浏览器前端可以看到渲染后的页面
环境变量
是系统用来帮我们找应用的
操作系统去环境变量中找目录
找到目录开启运行
mysql-5.6.42
第一个5是主版本号,描述了文件的格式
第二个6是发行级别,主版本号和发行级别组合到一起构成了发行序列号,大需求修改发行序列号
第三个42是版本号,一般改动小需求会升级版本号
永久修改字符集编码的方法
在mysql安装目录下创建一个my.ini(mac:my.cnf)文件,
写入下面的配置,然后重启服务器
mysqld 是一个服务器
mysql 是客户端配置
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysql]
user = 'root'
password = '666'
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=E:\mysql-5.6.45-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:\mysql-5.6.45-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
mysql安装目录介绍
bin 存储可执行文件,mysql自带客户端,mysql服务端,mysqladmin执行管理操作的客户端程序
data 存放数据文件 mysql中我们创建和保存的数据都存在这里 里面是数据库中的库
存在data文件夹中的默认的三个数据库
information_schema 内存中的一个虚拟的库
performance_schema 优化性能的引擎
test 测试的数据库 空数据库可以删除
mysql 核心数据库 不能轻易修改
+--------------------+
| Database |
+--------------------+
| information_schema |
| performance_schema |
| test |
| mysql |
+--------------------+
7 rows in set (0.01 sec)
docs 存放文档
include 存储包含的头文件
lib 存储库的文件
scripts 存放脚本
share 错误信息和字符集文件等
my-default.init 一个缺省的配置文件
MySql客户端连接服务端时完整的指令
mysql -h 127.0.0.1 -p 3306 -u root -p
mysql -h 127.0.0.1(本机的IP地址) -P 3306(端口号) 找到应用程序 -u 用户 root 权限 -p密码
mysql server端
net start mysql 启动一个叫做mysql的服务
net stop mysql 停止一个服务
mysql 启动了客户端,客户端自动连接本地的3306端口
mysql -uroot 表示用root用户登录 默认密码是空
set password = password('123'); 设置密码
mysql -uroot -p 回车 使用密码登录
enter password 输入密码
或者 mysql -uroot -p123 直接登录
修改密码:忘记密码怎么办?
启动服务端
net start mysql
1.停掉服务端
net stop mysql
2.用路径启动服务,不加载认证功能,直接启动服务端
mysqld.exe --skip-grant-tables
3.重启一个窗口
转到mysql\bin目录
4.进入数据库
mysql
5.连接服务端
use mysql;
6.查看所有的表
show mysql;
7.找到存用户的表
拿到用户名和密码
select user,passeord from user;
8.修改用户名密码
updata user set password=password('666') where user = 'root'; # password('666')加密的,类似函数,改成666
9.退出
quit
10.杀进程
tasklist|findstr mysqld # 筛选mysqld 进程 findstr管道符
taskkill /F /PID 5060 # 进程号
11.重启服务端
net start mysql
mysql -u root -p
修改密码:知道密码修改密码
方法一:set password 命令
先登录mysql
mysql> set password for 用户名@localhose = password('新密码');
mysql> set password for root@localhose = password('123');
方法二:mysqladmin 不需要登录mysql修改 不安全,但方便
mysqladmin -u用户名 -p旧密码 password 新密码
mysqladmin -uroot -p123 password 666
方式三:update直接编辑mysql库中的 user表
先登录mysql
mysql> use mysql; use mysql 切换到mysql这个库
mysql库中存放的是所有的用户表和权限相关的表
mysql>update user set password=password('新密码') where user='root' and host='localhost';
password=password('新密码')前面的password是变量,后面的是mysql提供的密码加密用的
user是一个表,存放所有的mysql用户的信息
mysql> flush privileges; 刷新权限,生效,否则不生效,修改不成功
存储引擎:engines
存储引擎:engines
默认存储引擎:InnoDB
查看存储引擎:
show engines;
使用不同的存储引擎,数据以不同的方法存储
#
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.01 sec)
通过引擎创建表
innodb 生成2个文件 存放表结构
desc 有字段 信息
idb MYD文件中存放真正的数据
myisam 生成3个文件 索引
memory 生成1个文件 存在内存
blackhole 黑洞存放就没了
.frm 文件主要是用来描述数据表结构(id,name等字段)和字段长度
.ibd 储存的是采用独立表储存模式时储存数据库的数据信息和索引信息
.MYD 存储数据库数据信息的问价,存储采用独立表储存模式时存储的数据信息
.MYI 储存的是数据库的索引信息