MySql入门学习(数据库)
DAY38
今日内容:
认识数据库 (mysql)
启动服务器 注册系统服务
修改与破解密码
编码设置
sql语句基础
数据存储引擎
认识数据库 (mysql)
数据库:存储数据的仓库
存储数据的方式:Python中变量 , 文件处理
为什么不用变量和文件存储数据?
变量是存储于内存中无法永久保存
文件处理:效率问题,文件处理是操作硬盘的,是一个io操作
假设我们的程序所有的组件全都运⾏在同⼀台计算机使⽤⽂件来作为数据库
但是这都是我们的假设 在正常的⽣产环境中我们必须要考虑⽂件操作所带来的效率问题而且我们不可能
把所有的组件运行在同一计算机上,首先不稳定,而且一台机器的性能是有上限的,因此我们需要对计算机
进行扩展,扩展分为两种:1. 垂直扩展 提升硬件性能(不太可取) 2. 水平扩展: 添加更多的计算机(分布式计算)
分布式带来的好处就是提高了性能和稳定性,但是这些计算机操作的是一个整体,也就是说处理的数据是同一份
因此我们需要解决数据共享的问题,就要通过网络,使用socket来配套服务器和客户端,从而完成数据的共享
我们在用socket共享数据时,肯定要实现并发,考虑数据安全(需要加互斥锁) 数据的读取速度等,因此我们就需要
一个用来操作数据的程序,也就是数据库程序 ,但我们不可能做程序前都去写一个数据库程序,因此就有人做出了
数据库程序
常见数据库
关系型 :
mysql :免费开源 ⽀持中⼤型企业
oracle :收费闭源 更能强⼤ 分布式数据库
SQLServer: 微软 仅⽀持 windows系统 太局限
⾮关系型:通过key value存储数据各个数据之间没有关系 不是通⽤性数据库 有局限性
MongoDB
redis
memcache数据库相关概念
数据: ⽤于记录事物的状态信息 可以输数字 字符 声⾳ 图像等等记录⻓什么样呢
记录: ⼀条记录⽤于保存⼀个事物的典型特征 就相当于⽂件中的⼀⾏
表: 本质就是⼀个⽂件 创建表的时候其实就是在创建⼀个⽂件 为了降低耦合性 ⽅便管理 都应该把数据分⻔别类 放到不同⽂件中
库: 就是一个文件夹
DBMS: 数据库管理软件 就是⼀个套接字服务器端软件
数据库服务器:运⾏有数据库管理软件的计算机
启动服务器
下载mysql:https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.41-win32.zip
安装mysql之后
在cmd 中 输入cd 地址 mysql 启动服务器socket 并监听端口 默认绑定当前ip 默认端口3306
启动客户端
在cmd 中 输入 mysql -h地址 -P端口 -u用户名 -p密码
命令总结:
启动服务器:mysqld
启动客户端:mysql -h地址 -P端口 -u用户 -p密码 简写 mysql -u用户 -p密码
关闭服务器
tasklist | findstr mysqld
taskkill /F /PID 服务器进程注册系统服务
在终端运行 mysqld --install
services.msc 可以查看系统服务
修改与破解密码
修改密码
在cmd mysqladmin -u用户名 -p原密码 password 新密码
破解密码
跳过授权表 进⼊系统修改授权表
1.停⽌服务
2.启动服务器并添加参数
mysqld --skip-grant-tables
3.使⽤客户端登录服务器 执⾏修改命令 此时不需要输⼊密码
update mysql.user set password = password("123456") where user="root" and host="localhost"
刷新权限
flush privileg
编码设置
查看当前服务器的设置信息
登录客户端执行 \s
解决乱码需要保证编码⽅式⼀致,修改配置文件
我们如果要⾃⼰编写配置⽂件,需要⼀个叫做my.ini的⽂件来编写
编写格式
分区 和 选项
[section]
option = value要设置客户端的内容就写在mysql分区
要设置服务器的内容就写在mysqld分区下[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
[mysql]
default-character-set = utf8
[client]
default-character-set = utf8
注意:修改了mysqld配置需要重启服务器原理:mysql在启动的时候会⾃动到安装⽬录下找my.ini⽂件 找到命令对应的标题加载⾥⾯的设置项
sql语句基础
库相关
增 : create database mydb(数据库名) charset utf8;
查: show databases;
改: alter database mydb charset gbk;
删: drop database mydb
表相关
增:use mydb;(选择数据库)
create table t1(id int ,name char); t1 是表名,创建表必需要创建字段(字段名 类型)
查:show tables;
show create table t1;
desc t1 ;
改:改字段
alter table 表名 add | modify | drop | change
add 跟 列名和类型 (添加字段)
modify 跟 列名 和 类型 (更改类型)
drop 跟列名 (删除字段)
change 跟 旧列名 新列名 类型 (修改列名)改字符编码
alter table 表名 default character set gbk改名称
rename table tname1 to tname2删:drop table t1;
记录相关
增:insert into 表名 values(添加的值匹配表中的字段)
查:select 查询字段 from 表名; 查询字段可用* ,表示查询全部字段
改:update 表名 set 列名 = 值 where 条件; 可同时修改多个字段,没有条件修改全部
删:delete from 表名 where 条件; 没有条件则删除所有
truncate table t1; 重建表,清空所有数据
以上为本次学习内容