windows mysql-----学习路线

mysql下载安装

官网下载地址

https://dev.mysql.com/downloads/mysql/

下载需要的版本的解压版----解压(或者安装版)本人用的是mysql5.7

修改mysql配置文件my.ini

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3306 
# 设置mysql的安装目录
basedir="D:\Java\mysql-5.7.15-winx64\mysql-5.7.15-winx64"
# 设置mysql数据库的数据的存放目录
datadir="D:\Java\mysql-5.7.15-winx64\mysql-5.7.15-winx64\data"
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

以管理员身份打开cmd,进入mysql的bin目录下

安装mysql:mysqld install

初始化mysql:mysqld --initialize-insecure --user=mysql

启动MySQL服务: net start mysql 或者在任务管理器的服务选项中找到mysql这个服务右键启动

停止MySQL服务: net stop mysql 或者在任务管理器的服务选项中找到mysql这个服务右键停止

重启MySQL服务:在任务管理器的服务选项中找到mysql这个服务右键重新启动

启动服务后,开始配置环境变量

1,右键我的电脑,点击属性

2,点击左上角的高级系统设置

3,点击环境变量

4,在系统变量下找到path变量,选中点击编辑

5,点击新建,把mysql的bin目录的路径添加进去

安装完了,一般来说密码是为空的

登陆:mysql -uroot -p

修改密码:mysqladmin -uroot  -p旧密码 password 新密码

忘记密码解决:

  • 1. 关闭正在运行的MySQL服务。 
  • 2. 打开DOS窗口,转到mysql\bin目录。 
  • 3. 输入mysqld –skip-grant-tables 回车。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。 
  • 4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。 
  • 5. 输入mysql回车,如果成功,将出现MySQL提示符 >。 
  • 6. 连接权限数据库: use mysql; 。 
  • 6. 改密码:update user set password=password(“123”) where user=”root”;(别忘了最后加分号) 。 
  • 7. 刷新权限(必须步骤):flush privileges; 。 
  • 8. 退出 quit。 
  • 9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。

数据库概述

数据库与文本,Excel,xml之间的对比:

优点:数据库方便检索,sql语句执行效率高。

缺点:安全性不够,加了用户级密码容易破解
C/S 结构下对服务器要求很高,否则容易造成 MDB 损坏并发数255。

Excel ------ 存储量不够(有限)

文本可以存储大量数据,但是打开慢,内存受限  --- 分布式内存

DBA --- 数据库架构师

数据库类型

结构化 --- mysql等关系型数据库

半结构化 --- key-value 形式(json等)

非结构化 --- 视频,图片等二进制 存储( path --- manggodb,hbase)

两个关系型的数据库对比:

oracle --- 成本高,有硬件要求,伸缩性较差,效率高

mysql --- 开源,单进程多线程,多用户,c/s

数据库操作流程:

  1. 启动服务
  2. 加载配置文件
  3. 生成实例
  4. 建立链路
  5. 请求会话
  6. 响应请求

基本操作:

mysql -h -u -p

show databases;

mysql自带的库表

1,information_schema --- 数据源表

2,mysql – 用户,权限

3,performance_schema – 性能优化

配置文件

my.ini

  1. 字符集
  2. 安装目录
  3. 数据存放目录
  4. 连接数
  5. 端口
  6. 引擎

show variables like "character%"; --- 查看当前数据库实例的字符集信息

use mysql; -----切换到指定数据库

show tables;-----查看当前数据库下的表

set names gbk;------设置当前会话的字符集信息

mysqldump -uroot -p test>F:\backup\test.sql -----命令备份(test:要备份的数据库,F:\backup\test.sql :备份的路径+文件名)导出sql文件

备份物理文件:opt

mysql -uroot -p test<./test.sql ------命令还原指定备份

mysql数据类型

整数:(5种):1,2,3,4,8(字节)

desc inttype;----查看表结构:

select @@sql_mode; -----查看当前的sql_mode

例1:

--创建测试表
CREATE TABLE `inttype` (
  `id` tinyint(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--插入测试数据
insert into inttype values(128);

--无法插入,切换sql_mode模式

set sql_mode = 'ansi';
--插入成功,但被截断
insert into inttype values(128); -----数据库表显示数据为127

小数(两种):

  1. 精确小数类型(decimal)
  2. 浮点型(float,double)

例2:

CREATE TABLE `per` (

  `per` decimal(4,3) NOT NULL,

  PRIMARY KEY (`per`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

范围:-9.999-9.999

字符串:

定长:char

变长:

  1. varchar
  2. text
  1. tinytext
  2. text
  3. mediumtext
  4. longtext

日期类型:

  1. date
  2. time
  3. year
  4. datetime
  5. timestamp

获取系统时间:select now()

获取年份:select year(now())

delect和truncate的区别,delect会保留自增序列,truncate会清空自增,重新开始

datetime和timestamp的区别:timestamp的取值范围从1970-01-01开始 根据当地时区自动转换

查看时区:show variables like “time_zone%”;

跟数据库系统有关系

复合类型:

  1. enum --- 可以被穷举的
  2. set ---

例2:

create table person(
sex enum('male','female'),
interest set('sing','dance','swim','study')
);

insert into person values('male','study,sing'); ----enum类型、set类型的应用(可以约束输入的参数)

二进制类型:存储0和1的字符串

选择数据类型的原则:

  1. 选择合适的
  2. 尽可能短

约束

主键约束:

单字段主键 :student_no  char(11)   primary  key;

多字段主键 :primary  key(字段1,字段2)

自增:

auto_increment

例3:

CREATE TABLE `ipint` (
  `ip` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `ipvarchar` (
  `ip` varchar(15) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--IP字符串转整数
insert into ipint(ip) VALUES(INET_ATON('1.1.1.2')) ---ip存储处理

设计数据库

存储引擎:Innodb – 事务,写,myisam – 查询,读

读写分离

并发

锁 --- 表/记录

隔离

下面是一条数据库一些操作链接-----拿走不谢

https://www.cnblogs.com/bluealine/p/7832219.html

未完待续......

参考:

https://www.cnblogs.com/bluealine/p/7832219.html

https://dev.mysql.com/downloads/mysql/

https://blog.csdn.net/th_num/article/details/71402801

https://blog.csdn.net/li_magic/article/details/70186609

https://www.cnblogs.com/adolfmc/p/5497974.html

https://blog.csdn.net/kxjrzyk/article/details/51731899

猜你喜欢

转载自blog.csdn.net/weixin_42511416/article/details/81191606