MySQL学习

一、学习环境

windows 10或windows 11 非家庭版操作系统

vmware workstation 16.0版本

安装1台windows server 2019-----IIS WEB服务器

Linux操作系统 Centos 或 RHEL 安装mysql数据库服务器

应用系统服务器-----JSP、PHP、Python、.net、C#……

二、数据库概述

1、数据处理的历史

补充:

数据Data:凡是能被计算机处理的东西 如字母、数字、汉字、声音、图片、动画等均认为是数据

信息Information:数据--->处理--->信息 将数据处理为对人们的决策有帮助作用的数据的集合就是信息

2、数据处理有3个历史阶段

人工管理阶段 20世纪40-50年代 存储介质落后 纸带、磁带等 存在大量的冗余(重复)数据

文件系统阶段 20世纪50-60年代 FAT16、FAT32、NTFS 存在大量冗余数据 数据共享程度低 数据独立性低

数据库系统阶段 20世纪60年代中后期 数据库系统阶段 降低了数据的冗余度 提高了数据的独立性

3、数据库Database:数据的仓库 Database 是一个存放数据库对象的容器

4、数据库管理系统:DataBase Management System 如Mysql、SQL-Server、Access、DB2、SQL lite等均为数据库管理系统 属于系统软件的范围

5、数据库应用系统:DataBase Application system 如学生信息管理系统、教务管理系统、OA办公自动化系统

6、数据库系统的组成:Database System数据库系统由数据库DataBase、数据库管理系统DBMS、数据库库管理员DBA、数据库应用系统DBAS、计算机5硬件部分组成。

7、数据模型:

①概念模型:将客观事物抽象为计算机可以识别的东西的过程

②逻辑模型:E-R图 将概念模型抽象出的实体转换为E-R图的过程

③物理模型:将E-R图转换为数据库表的过程

8、实体:客观存在的并且可以相互区别的事物 如1个人、1本书、1首歌等

9、属性:列名称 描述实体的特征

10、码:键 key 在一个表中至少应该有这样1个字段,这个字段所对应的值能够起到唯一标识表中记录的作用

11、实体集:实体的集合 如1个人-----实体 1群人-----实体集

12、联系:1对1、1对多、多对多

1对1 一夫一妻 班级与班长

1对多 班级与学生

多对多 教师与学生 教师与课程

13、E-R图中的知识点

矩形:实体

椭圆:属性

菱形:关系

14、关系模型:用二维表的方式来表示实体和实体集之间关系的模型

SQL语言分为三个部分:数据定义语言( Data Definition Language,简称为DDL)、数据操作语言( Data Manipulation Language,简称为DML)和数据控制语言(Data Control Language,简称为DCL) 。

(1)DDL语句:数据库定义语言主要用于定义数据库、表、视图、索引和触发器等。其中包括create语句、alter语句和drop语句。create语句主要用于创建数据库、创建表和创建视图等。alter语句主要用于修改表的定义、修改视图的定义等。drop语句主要用于删除数据库、删除表和删除视图等。

(2)DML语句:数据操纵语言主要用于插入数据、查询数据、更新数据和删除数据。其中包括insert 语句、select语句和update语句。insert 语句用于插入数据,select语句用于查询数据,update语句用于更新数据,delete 语句用于删除数据。

(3)DCL语句:数据控制语言主要用于控制用户的访问权限。其中包括grant 语句和revoke 语句。grant 语句用于给用户增加权限,revoke语句用于收回用户的权限

第二章 Vmware虚拟机安装操作系统

一.Vmware虚拟机介绍与学习环境规划

1.什么是虚拟机

虚拟机(virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 虚拟机系统是一个操作系统镜像,它具有与真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立环境上进行,可以独立安装应用软件、保存数据、拥有自己的独立桌面,不会对真正的系统产生影响,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。 流行的虚拟机厂家有Vmware、Oracle virtual box、微软virtual PC等,它们都能在windows系统上虚拟出多个计算机(windows/linux)。

2、使用虚拟机的好处有哪些?

演示环境,可以安装各种演示环境,便于做实验----实验、学习环境 保证主机的快速运行,减少不必要的垃圾安装程序,偶尔使用的程序或者测试的程序可以在虚拟机上运行 避免每次重新安装操作系统 体验不同版本的操作系统,如Mac-OS、Linux、windows server

3、Vmware workstation虚拟机介绍

Vmware workstation中文名威睿工作站。是一款功能强大的桌面虚拟化软件(KVM、hyper-V、cytrix思杰),提供用户可以在单一桌面上运行不同的操作系统,和进行开发、测试、部署新的应用程序的最佳解决方案。 Vmware workstation收费,非开源(源代码不开放、收费的)

4、实战内容

·Vmware Workstation安装与配置

  1. 官方网站下载www.vmware.com\cn - 搜索 (bing.com)

·Vmware安装windows server 2019或windows Server2016

〈1〉在“此电脑”非系统盘如E盘或F盘,新建一个虚拟机系统目录Vm-Server

〈2〉步骤

文件——>新建虚拟机——>“自定义”

〈3〉安装window server 2019

〈4〉windows Server 2019激活与优化

a.安装vmware tools

b.显示window Server~019的桌面图标:桌面空白处 右键 个性化 主题 桌面图标

c.激活windows Server2019

提示:先要给新装的操作系统安装必要的工具软件如winrar,office等常用工具

·Vmware 安装CentOS Linux

〈1〉新建虚拟机

〈2〉将系统光盘镜像插入光驱中

〈3〉安装操作系统

提示:KUMP内核崩溃选项将其禁用,安装时选择GUI带图形界面Linux系统生产环境中可以选择最小化安装

二丶补充:如何将自己的计算机重装系统

1.先到MSDN我告诉你,下载windows 10或windows 11

2.准备一个32G或64G的优盘

3.使用UltralSO(软碟通)制作操作系统安装盘

4.设置笔记本电脑的启动顺序,第启动设置为优盘启动

5.同在虚拟机中安装window Server2019相同,一路下一步进行安装

6.使用系统激活工具来激活操作系统

三丶学习环境规划

 

 

 

第三章 windows快速安装mysql 8.0

一丶MySQL简介

1.介绍

1.1什么是数据库?

数据库:Database,按照数据结构来组织丶存储和管理数据的仓库,简单来说就是存储数据的仓库。-----用来存放数据库对象(表,视图,函数,存储过程等)的一个容器。

数据库管理系统DBMS:用来管理数据的系统软件,常见:MySQL,Oracle,MSSQL Server,DB2,Sysbase,Access等。

数据库系统的组成:数据库和数据库管理系统。

1.2什么是MySQL?

MySQL:是一个开源的关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Oracle公司收购,所以目前属于Oracle公司

特点:体积小,速度快,成本低,开源,中小型网站都使用MySQL数据库

版本:企业版Enterprise(收费的),社区版community(免费的)

DBA:Database Administrator数据库管理员

二丶实战部分

1.准备一台windows server 2019的主机

2.安装windows server 2019(提示:Vmware tools)

3.下载mysql 8.0版本

提示:第1丶2步,在第二章已做过介绍

MySQL :: MySQL Community Downloads

 

ca956bcda8c445b08a6a3ed7217ecbb6.png

4.Mysql8.0数据库配置

Mysql server 8.0.39数据库服务器配置

ba0005de44594c789fa77f11e8590b87.png

7e79d82973d741c8ae5b4982d5814c48.png

Mysql router 8.0.39读写分

Mysql router 8.0.39读写分离的配置

数据库实例配置

5.Mysql8.0数据库管理入门

·修改root密码

mysql -u root -p

use mysql;

alter user 'root'@'localhost'identified with mysql_ native_password by 'abc..123';

exit;

说明:上述修改用户密码的命令中with mysql_ native_password是mysql507的方式

·允许root远程登录

mysql -u root -p

use mysql;

select host,user from user where user-'root';

create user 'root'@'192.168.121.%'identified by 'abc..123';

grant all privileges on*.*to 'root'@'192.168.121.%'with grant option;

exit;

三丶MySQL登录与退出

1.MySQL登录

·本地登录

mysql -u用户名(root) -p 密码 显式登录

mysql -u用户名(root) -p 隐式登录

2.MySQL退出

3.

四丶Mysql安装方式之配置方式

1.mysql卸载

·控制面板 win+R-->运行-->输入control-->卸载程序-->与mysql有关组件-->卸载

·安装包 双击mysql-installer-community-8.0.39.msi

2.用配置文件来安装mysql

3df48da79a7c49178180c46000633e0f.png

五丶环境变量

右键-->此电脑-->高级系统设置-->环境变量-->path-->新建-->将mysql的安装目录bin路径放到path下即可

12a9434ea92a4621b20d881be1fb5ff3.png

76c4a4e4b59a4c5a95fae9ceaaa4e9f3.png

bfbe9cf104f444869253a2c64d8fc243.png

274eb5ae2bcb4b3b87cb0f37c3377c3e.png

六丶Mysql目录和配置文件

七丶基本操作

1.连接MySQL

33e7ada5d9e14c0c876de6e0550b8cad.png

2.查看数据库和表

八丶导入初始数据

1.导入数据

以sql结尾的文件,是数据库脚本文件

先连接登录到windows server 2019数据库服务器上,连接mysql,然后执行如下指令:

source d:init.sql

2.表结构

tsubject课程表

edf7d7e4680b45beb7029422f9f0bbc3.png

tstore成绩表

6260d8ca0a45454da61e433db7ca5b1c.png

 

第四章 数据库创建与常用操作

1 mysql 本地登录和用户管理

登录mysql,查看库

7b3773dc5bf449298d68f90eab65f971.png

2MySQL远程登录和用户管理

虚拟机ip地址查询

e2210a0cdfde41f699a660408f277117.png

关闭防火墙

9b4adb99adac4c94abc226bc58d5b425.png

bonus--奖金 employee--雇员 intteger--整形 double--双精度型 float--单精度型 commission--奖金,佣金 department--部门 location--位置 grade--位置 low--低 high--高 salary--薪水

4 导入初始数据

1导入数据

准备一个以。sql结尾的文件是数据库脚本文件

先登录MySQL数据库

source c:/init.sql

2 表结构

desc 表名;--查看表结构

select * from 表明;--查看表中的所有记录

31d49ea4f4ff48a090ea2eef4508f84a.png

5初始化数据表结构介绍

9516d9e65c17426b891294a9bcda9353.png

ca835071e87f49b1a2347ff0be8f694a.png

第六章 表和库的管理以及数据引擎的介绍

一.sql语言简介

二.表和库的管理

1、数据类型

整数型:smallint、int、bigint

小数型:float、double

日期时间:date、time、datetime、timestamp

字符串:varchar、char,text

其他:clob存储文本大数据

blod存储二进制大数据

三 创建表

create table 表名 ( 列名 数据类型 特征,--字段名 属性名 列名 数据类型 特征, ...... 列名 数据类型 特征 ) charset=utf8; create table t-user ( id int, username varchar(20), password varchar(50) ); create table t-student ( if int primary key auto-increment,--将id设为主键 自动增长 默认从1开始,每次递增 name varchar(10)not null,--不允许为空 age int, sex varchar(8)not null default'男',--指定默认值 address varchar(100), height double, birthday date )charset=utf8 insert into t_student(name,age,sex,birthday,height) values('张无忌',21,'男','2002-10-9',176.3); insert into t_student(name,age,birthday,height) values('张三丰',21,'2002-10-9',176.3); insert into t_student(name,age,sex) values(null,22,'女'); insert into t_student values('钱多多',20,'女','南京',172.1,now());

四 修改表

添加列

语法:

alter table 表名 add 列名 数据类型;

示例:

在t_student表中增加1个名为weight体重字段,类型为双精度。

alter table t_student add weight double;

修改列的类型

语法:

alter table 表名 modify 列名 新数据类型;

示例:

将t_student表中name姓名字段的宽度修改为250。

alter table t_student modify name varchar(250);

  • 修改列名

alter table 表名 change 原列名 新列名 数据类型;

示例:

将t_student表中sex字段名称修改为gender。

alter table t_student change sex gender varchar(8);

  • 删除列

语法:

alter table 表名 drop 列名;

示例:

删除t_student表中weight列(字段)。

alter table t_student drop weight;

  • 修改表名

语法:

alter table 原表名 rename 新表名;

rename table 原表名 to 新表名;

示例:

将t_student表名修改为student。

alter table t_student rename student;

rename table student to t_student;

五、截断表

清空表中的数据,作法类似于无条件的delete语句

语法:

truncate table 表名;

示例:

truncate table t_student; select * from t_student; insert into t_student(name,gender) values('tom','男'); insert into t_student(name,gender) values('mike','女'); select * from t_student;

delete与truncate的区别:

  • delete会记录日志,所以速度慢,而truncate不记录日志,清空表并释放资源,速度快
  • delete可以指定条件只删除部分数据,而truncate只能用来清空表中所有数据
  • delete不会将自动增长列归零,而truncate会使自动增长的列如id列归零

六.建造库,删除库

创建库

语法:

create database 数据库名 charset utf8; create database if not exists 数据库名 charset utf8;

示例:

create database if not exists shop charset utf8;

删除库

语法:

drop database 数据库名; drop database if exists 数据库名;

示例:

drop database if exists shop;

七 图形化界面工具的安装

下载压缩包打开

打开navicat

在登陆界面,选择软件软件激活

将文件夹中的key的子串复制进去

第七章 字符集和排序规则

一.什么是乱码

二..字符集,字符序和常见字符集

预备知识

- 字符  character    eg:abcd  1234  , . (   )

- 字符集合:charset  一组字符     

  Ascii字符集合(7bit,最高位是0),标准的----可打印的  

e2d46b27ccc84cc586a2e7f8f00b2b2e.png

  扩展Ascii字符集合(8bit)  拉丁语系,扩展----不可打印的字符  

9507b9d00cda495caf19849693226862.png

  GB2312   简体中文

  BIG5   繁体中文

  GBK   包含简体中文和繁体中文

- 字符编码  给字符集合中的每1个字符指定1个二进制数字来标识。

- 字符集:字符集合+编码=字符集

- 字符序:字符的排序规则   1个字符集,可以有多个排序规则即多个字符序

以_ci结尾,大小写不敏感,不区分大小写

以_cs结尾,大小写敏感,区分大小写

3、常见的字符集

- Ascii字符集

- 扩展Ascii字符集   latin1   8位二进制  包括Ascii字符集中的全部字符

- GB2312  BIG5  GBK    16位二进制 

- unicode  字符集  全球语言   16位二进制

- 扩展Ascii字符集  latin1  latin2

- unicode字符集    unicode编码   一个字符2个字节

                             utf8    一个英文字符  占一个字节

                                      一个中文字符使3个字节

- utf8mb3   utf8mb4    more bit

- utf-8是一种变长的字节编码方式,对于某一个字符的utf-8编码,如果只有一个字节则其最高位二进制位为0;如果是多字节,其第一个字符节从最高位开始,连续的二进制位值为1的个数决定了其编码的位数,其余各字节均以10开头,utf8最多可以用到6个字节。

示例:

1字节   0xxx xxxx

2字节   110x xxxx 10xx xxxx

3字节   1110 xxxx 10xx xxxx 10xx xxxx

4字节    1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx

5字节    1111 10xx 10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx

6字节    1111 110x  10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx

1110 0101 1000 1000 1001 1010

E58896

A

0100 0001

41

示例:

新建文本文件,使用utf-8编码来保存,验证字符的字节数。

GBK字符集,一个英文占1个字节,一个汉字占2个字节。

4.MySQL支持的字符集

show character set;--查看mysql支持的字符集 show variables like 'character_set_%';--查看当前mysql使用的字符集

80272c9ea62a42beb55791bfc883bf24.png

character_set_client 客户端字符集

character_set_connection连接字符集

character_set_database数据库字符集

character_set_results返回结果的字符集

character_set_server服务器字符集

character_set_system系统字符集

创建数据库时,如果没有指定数据的字符集,则会使用服务器字符集

创建表时,如果不指定表的字符集,则会使用数据库字符集

创建表中字段时,如果不指定字段的字符集,则会使用表的字符集

dc2179f73d3b4ff5ad872656edcd22d5.png

4 利用字符集知识解决实训室乱码

93dd19ee1fea467abf2dc636bd7eefe0.png

9c4232ff3b294a5494727b24106bd3fe.png

5管理mysql客户端和服务端字符集

776012ae7f26497292c117c050b5c510.png

6 设置mysql字符集

1、查看服务器和客户端字符集

show variables like 'character_set_%'; -- 查看默认字符集

2、修改mysql默认字符集

  • 临时修改

set names 字符集名称; -- 临时修改

此方法可以临时修改3个字符集

-- character_set_client

-- character_set_connection

-- character_set_results

set character_set_database=utf8;

  • 永久修改----修改配置文件

windows server my.ini

linux my.cnf

修改配置文件后必须重启mysql服务

net start mysql;

net stop mysql;

ea684ae2fc2f43648c64b683f606be62.png

ab55778cefb94f63897a86399e6d01de.png

08acfc0aa81d471598725b0d82b62231.png

855c38da8dc040f89c4a19c23b4b4edf.png

7 指定数据库和表及列的字符集

创建数据库时,指定数据库的默认字符集

create database db default charset latin1;

创建表时,指定表的默认字符集

create table student(sid int,sname char(30))default charset utf8;

创建列(字段)时,指定列(字段)的字符集

create table student1(sid int,sname char(30),address char(20) character set latin1)default charset utf8;

创建数据库时,如果不指定默认字符集,就会使用服务器字符集character_set_server

创建表时,如果不指定表的默认字符集,就会使用数据库字符集character_set_datbase

创建列时,如果不指定列的字符集,就会使用表的字符集

8 修改数据库和表及字段的字符集

8.1 修改数据库的字符集

alter database db character set 'latin1';

结论:

更改数据库的默认字符集对已经存在数据库中的没有影响,但会影响新建表的默认字符集。

ba8a37196276459d8a94cd8b7699365c.png

9 字符集兼容性

9.1指定客户端使用的字符集

set names latin1;

9.2字符集的兼容性

c01a1f18826e4a1e922c88cd0a2e2d31.png

结论:UTF8兼容latin1

GBK兼容utf8

更改数据库字段字符集,由latin1可以正常转换为utf8;由utf8转换为latin1,汉字会变成??

 

 

MySQL Router 是用于 MySQL 数据库集群和复制的中间件,可以在多个节点之间分发请求和复制数据。使用教程如下: 1. 下载和安装 MySQL Router: - 下载地址:https://dev.mysql.com/downloads/router/ - 安装方法和配置请参考官方文档:https://dev.mysql.com/doc/mysql-router/en/mysql-router-installation.html 2. 配置 MySQL Router - 创建一个配置文件,如:router.conf - 在配置文件中添加以下内容: [DEFAULT] logging_folder = /var/log/mysqlrouter [logger] level = INFO [routing:redirect_to_rw] bind_address = 127.0.0.1 bind_port = 6446 destinations = rw1,rw2 - 其中,logging_folder 为日志文件夹路径,level 为日志级别,redirect_to_rw 为一个路由器组名,bind_address 和 bind_port 指定路由器监听的IP地址和端口号,destinations 为路由的目标节点名称。 3. 启动 MySQL Router - 运行命令:mysqlrouter -c /path/to/router.conf 4. 测试 MySQL Router - 运行命令:mysql -h 127.0.0.1 -P 6446 -u username -p password - 其中,127.0.0.1 和 6446 为路由器的IP地址和端口号,username 和 password 为连接数据库的用户名和密码。 - 输入 SQL 命令,如:SHOW DATABASES; - 如果一切顺利,即可看到返回结果。 注意事项: - 在使用 MySQL Router 的时候,需要先启动 MySQL 数据库节点。 - MySQL Router 的配置文件中可以包含多个路由器组,每个组可以指定不同的监听端口和目标节点。 - MySQL Router 支持读写分离等高级特性的配置,请参考官方文档进行更详细的了解和配置。 - MySQL Router 可以与不同的编程语言和框架配合使用,如 Java、Node.js、PHP 等,具体方法请参考官方文档和各语言的 API 文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值