Bootstrap

MySQL基础介绍以及操作指南

目录

第一章 数据库的基本介绍——带你更清晰的了解数据库

一、学习环境的介绍

二、数据库系统概述

三、数据库发展史

四、数据库系统的三级模式和两级映像

五、数据类型

六、MySQL安装简单叙述

第二章       V-Mware的介绍以及安装

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

1.1、什么是虚拟机?

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

1.3、Vmware workstation虚拟机介绍

1.4、实战内容

二、学习环境规划

2.1、物理拓扑

2.2、逻辑规划

第三章        字符、字符集、字符序 

一、mysql的安装

1.1准备-台windows server 2019的主机

1.2安装windows server 2019

1.3、下载mysql 8.0版本

1.4、MysqI8.0数据库配置

二、Mysql安装方式之配置方式

2.1、用配置文件来安装mysql

2.2、环境变量的配置

2.3、了解和使用Mysql目录和配置文件

三、mysql8.0卸载  

3.1、 停止mysql服务

3.2、删除mysql服务

3.3、 删除mysql8.0的安装文件

3.4、 清理注册表

四、mysql 数据库连接方式  

4.1 使用crt客户端工具  

4.2 在linux上通过命令行访问windows上的mysql  

4.3 在windows上通过命令行访问linux上的mysql  

五、Mysql的基本操作

5.1、连接Mysql

5.2、查看数据库和表

六、导入初始数据

6.1导入数据

6.2表结构

七、SQL语句的介绍

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

一、Mysql用户登录过程和管理mysql用户

1.1、Mysql8.0本地登录访问数据库

1.2 Mysql8.0远程访问数据库的设置

1.3、数据库命名规范数据库命名不能超过30个字符,推荐使用下划线命名方式

二、基本操作

2.1、连接mysql

2.2、查看数据库和表

第五章 Linux快速安装Mysql8.0

一、Centos 8.4.2105系统下使用yum方式安装mysql 8.4

1.1、查看CenteOS系统版本

1.2、配置yum源(由于CenteOS默认yum源镜像链接有误无法直接进入第3步,所以需要更新配置yum源)

1.3、下载mysql源安装包

1.4、安装mysql源

1.5、检查是否安装成功

1.6、安装mysql

1.7、安装成功,启动mysql

1.8、设置开机自动运行

1.9、查看mysql运行进程

1.10、关闭防火墙

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

一、SQL简介

二、表和库的管理

2.1、数据类型

2.2、创建表

2.3、修改表

2.4、删除表

2.5、截断表

2.6、创建库

2.7、删除库

三、数据引擎的介绍

3.1、数据库存储引擎的概述

3.2、常见的数据库存储引擎

3.3、InnoDB与MyISAM引擎的区别

3.4、更改数据库默认存储引擎

3.4.1、查看数据库支持的存储引擎

3.4.2、显示默认数据库的存储引擎

3.4.3、修改默认数据库的存储引擎

3.4.4、修改表的存储引擎

3.4.5、创建表的时候指定存储引擎

四、mysql命令行帮助

4.1、使用?在命令行中显示当前支持的命令

4.2、使用?contents列出可以查看哪些帮助

五、课后作业

第七章   字符集和排序规则

7.1彻底搞定MySQL的乱码问题

7.2预备知识

7.3常见的字符集

7.4mysql支持的字符集


第一章 数据库的基本介绍——带你更清晰的了解数据库

一、学习环境的介绍

1.windows 10/11非家庭版

内存:8G

2.VMware workstation 16.0

3.LAMP——Linux Aparche mysql php.

LNMP——Linux nignx mysql php.

WAMP——windows Aparache mysql php.

WNMP——windows nignx mysql php.

注意:windows是非客户端操作系统,而不是服务器

4. 1台windows server2019,2台Linux

二、数据库系统概述

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

2.信息information:数据——数据处理——信息,对人们的决策有帮助作用的有用的数据。

3.数据处理:将数据→信息的过程

4.数据库Database:数据的仓库,容器级别的概念,存放数据库对象的容器

5.数据库系统的组成:数据库系统(DBS)是数据库Database、数据库管理系统DBMS,数据库管理员DBA、数据库应用系统DBAS和计算机硬件5部分组成。

6.数据库管理系统DBMS:MsSQLServer 2019、MicrosoftAccess、VFP\Mysql、Oracel DB2等属于系统软件。

7.数据库应用系统DBAS:教务系统、一卡通消费系统、进销存管理系统、OA办公自动化系统等,属于应用软件。

这是三者的关系图,看着了解一下

三、数据库发展史

1.人工管理系统 20世纪40——50年代 磁带纸带等存储设备相对落后数据处理也比较落后。

2.文件系统阶段 20世纪50——60年代 磁盘文件系统FAT16、FAT32、NTFS、EXT,相比人工管理阶段而言有进步,存在大量的冗余(重复)数据 数据独立性差

3.数据库系统阶段 20世纪60年代中后期 提高了数据的冗余度,提高了数据的独立性,数据与程序是独立分开的。

提示:一定不是消除了冗余

四、数据库系统的三级模式和两级映像

1.模式 学生表(学号、姓名、性别、年龄)

2.内模式 excel工作薄存放在计算机的什么地方

3.外模式 视图 从学生表中查询age

总结:内模式是靠近计算机硬件,外模式是靠近计算机用户的

五、数据类型

1.层次模型:组织结构图

2.网状模型:地图

3.关系模型:用二维码的方式来表示实体和实体集之间关系的一种模型

4.实体:客观存在的并且可以互相区别的事物 eg:1个人,一本书 与面向对象程序“对象”概念相同

5.实体集:实体的集合

6.属性:二维表中,每1列的名称,描述实体的自身属性,特殊的字段,如学生表(学号,姓名,性别)中的学号、姓名、性别都是属性。

7.实体之间的关系

a.一对一:班长和班级、一夫一妻

b.一对多:班级与学生

c.多对多:图书与学生 老师与学生

8.关系模型的相关概念

a.元组:二维表中的每一行,除了第一行——也成为记录

b.属性:二维表中的每一列,只有第一行——也成为字段

c.主键:在一个表中至少有这样一个字段,这个字段所对应的值一不能有空值(NULL值:不确定的值)二不能有重复,这个字段所对应的值能够起到唯一标识表中记录的作用,这个字段就称为主关键字,

d:外键:在一个表中某一个字段,它不是表中的关键字,但它却是其他表的关键字,叫外键。

9.数据库设计

概念设计(将客观世界的事物抽象为计算机可以识别的事物的过程)

逻辑设计将概念模型中的E——R图转化为关系数据库管理系统中的关系模型——(数据模型:层次模型、网状模型、关系模型)

物理设计(在mysql这个数据库管理系统中新建数据库、新建数据库对象、视图、存储过程、函数等)

六、MySQL安装简单叙述

1.下载Mysql (.msi安装包、.zip安装包)

2.Windows Server上安装、Linux系统上安装

3.mysql 安装完成后的状态

①Windows+R--services.msc

a.鼠标方式 b.命令方式 mysql服务启动与停止

②win+r→cmd→net stat -an 用来看mysql数据库的 端口 3306

4.连接mysql 数据库--本地登录mysql

win+R→cmd→cd c:\program Files\Mysql\Mysql Server 5.1\bin mysql -u root -p

密码root

注意:c:\program Files\Mysql\Mysql Server 5.1\bin mysql下载哪里从哪里找

cd与路径之间必须有一个空格

select version(); 查看版本

sclect user();查看当前登录用户

create user hector@'127.0.0.1' indentified by'abc..123';

创建一个用户

grant all privileges on . to hector@'127.0.0.1' with grant option;

给hector@'127.0.0.1'用户赋权值

5.使用图形化界面工具 navicate for mysql 连接mysql--本地登录

第二章       V-Mware的介绍以及安装

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

1.1、什么是虚拟机?

· 虚拟机(virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

· 虚拟机系统是一个操作系统镜像,它具有与真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立环境上进行,可以独立安装应用软件、保存数据、拥有自己的独立桌面,不会对真正的系统产生影响,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。

· 流行的虚拟机厂家有Vmware、Oracle virtual box、微软virtual PC等,它们都能在windows系统上虚拟出多个计算机(windowsЛinux)。

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

· 演示环境,可以安装各种演示环境,便于做实验…-实验、学习环境申保证主机的快速运行,减少不必要的垃圾安装程序,偶尔使用的程序或者测试的程序可以在电廖拟机上运行避免每次重新安装操作系统。

体验不同版本的操作系统,如Mac-OS、Linux、windowsserver

1.3、Vmware workstation虚拟机介绍

Vmware workstation中文名威睿工作站。是一款功能强大的桌面虚拟化软件,提供用户可以在单一桌面上运行不同的操作系统,和进行开发、测试、部警新的应用程序的最佳解决方案。

Vmware workstation收费,非开源

1.4、实战内容

Vmware Workstation安装与配置

①官方网站下载www.vmware.com/cn

②提示:如果检查产品更新,会从官网下载最新安全补丁;

加入客户体验会造成个人信息泄露

Vmware安装windows server 2019或windows server 2016

①在“此电脑”非系统盘如E盘或F盘,新建一个虚拟机系统目录Vm-Server (E:\VM-Server)

②步骤

(1)安装Vmware

单击下一步

(2)配置运行环境

单击下一步

这里选择稍后安装系统

这里我们安装windows客户机选择要选择Windows

点击下一步

点击BIOS,然后点击下一步

这里处理器数量根据自己电脑来配置

这里选择桥接网络

接下来两步默认选择

这里选择创建虚拟磁盘

点击下一步

将自定义硬件中的不需要设备删除,点击完成

将ISO文件放置在这里点击确定,开始安装

二、学习环境规划

2.1、物理拓扑

2.2、逻辑规划

主机名

IP地址

网关

系统类型

Test-MySQL-windows

192.168.121.128

192.168.121.1

windows server 2019

Test-Mysql-linux

192 168.121.129

192.168.121.1

Centos linux 7.6

第三章        字符、字符集、字符序 

一、mysql的安装

1.1准备-台windows server 2019的主机

1.2安装windows server 2019

1.3、下载mysql 8.0版本

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

MySQL :: MySQL Community Downloads

链接:MySQL :: Download MySQL Installer

1.4、MysqI8.0数据库配置

①Mysql server 8.0.39数据库服务器配置

②Mysql router 8.0.39读写分离的配置

③数据库实例配置

注意:使用8.0密码策略,要选择“高级认证“方式出错。

提示:使用navicat图形化工具访问mysqI服务器时出错‘1251错误’

5、MysqI8.0数据库管理入门

· 修改root密码

说明:上述修改用户密码的命令中with mysql native password 是mysql 5.7的方式

· 允许root远程登录

三、MySQL登录与退出

1、MySQL登录

本地登录

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

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

mysql -h主机名或ip地址 -u 用户名(root) -p 密码

2、MySQL退出

3、当mysql8.0安装完成后的相关配置

查看mysqI服务

WIN+R-->运行-->services.msc

windows+R--->运行-->输入netstat -an

windows+R===>运行-->输入wf.msc

mysql服务的开启与停止

①鼠标的方式

windows+R--->services.msc-->mysql80-->右键-->启动或停止上

②命令的方式

初学者不建议修改

提示:若要修改配置文件my.ini,就需要重启mysqI服务

二、Mysql安装方式之配置方式

2.1、用配置文件来安装mysql

[mysqld];

设置3306端口

port=3306

;设置mysql的安装目录

basedir "C:\mysql-8.0.39-winx64";

设置mysql数据库的数据的存放目录

datadir=C:\mysql-8.0.39-winx64\Data;

允许最大连按数

max connections=200

;允许连接失败的次数,这是为了防止有人从该主机试图攻击数据库系统

max connect errors=10

;服务端使用的字特集默认为UTF8

character-set-server=utf8

创建新表时将使用的默认存储引整

default-storage-engine INNODB;

默认使用“mysqlnative_password”插件认证default authentication

plugin=mysql native _password[mysql}

设置mysql客户端默认字符集

default-character-set utf8

[client]设置mysql

客户端连接服务端时默认使用的端口

port=3306

default-character-set=utf8

2.2、环境变量的配置

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

2.3、了解和使用Mysql目录和配置文件

Mysql安装目录包括启动文件,配置文件,数据库文件和命令文件,具体如下:

bin目录:存放一些客户端程序和可执行脚本

data目录:存放一些日志文件以及数据库

docs目录:存储一些版本信息

include目录:存放一些头文件

lib目录:存放一些库文件

share目录:存储错误消息文件、字符集等

三、mysql8.0卸载  

本案例主要针对配置方式安装mysql8.0后的数据库的卸载。

3.1、 停止mysql服务

命令行   net stop mysql(根据各自计算机系统的实际情

3.2、删除mysql服务

win+r-->cmd-->sc delete mysql

3.3、 删除mysql8.0的安装文件

3.4、 清理注册表

windows+r-->regedit-->注册表管理器

在这个文件路径下:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\E ventlog\Application\找到MySQLD Service以及MYSQL进行删除(如果没有就可以忽略),另外在你的电脑可能会有多个或者不同的ControlSet00x,都要将其中的MySQL删掉。

四、mysql 数据库连接方式  

案例环境:服务器:使用vmware虚拟机来实现

windows server 2019 10.10.10.100 255.255.255.0 linux server centos 7.6或8.4 10.10.10.200 255.255.255.0

4.1 使用crt客户端工具  

4.2 在linux上通过命令行访问windows上的mysql  

4.3 在windows上通过命令行访问linux上的mysql  

五、Mysql的基本操作

5.1、连接Mysql

mysql -u root -p

默认密码:输入自己的密码

案例:

windwos+r→cmd→cd C:\Program Files\MySQL\MySQL Server 8.0\bin

提示:安装mysql之后,默认有一个管理员root

5.2、查看数据库和表

show databases;——查看当前所有数据库 use 数据库名

use (数据库名);——切换数据库

show tables;——查看当前数据库中的所有表

select database();——显示当前正在操作的数据库

select user();——显示当前登录的用户

下面是一些指令的展示过程

提示:mysql库属于系统数据库,包含mysql的相关系统信息,无需做修改

六、导入初始数据

6.1导入数据

以init.sql结尾的数据库脚本文件,数据库脚本文件扩展名.sql线连接登陆mysql,然后使用执行下列命令完成导入:source d:\init.sql

6.2表结构

desc表名;——查看表的结构

select *from 表名;查看表中所有记录

表结构:表中属性的集合:(属性:二维码中的每1列,只有第1行)——字段

姓名

性别

年龄

张三

18

钱多多

20

赵六

19

表记录:表中元组的集合(元组;二维表中的每1行,除了第1行)——记录

数据库:数据库的仓库

用户的数据→表→数据库

为什么要使用数据库?

tstudent学生表

列名

类型

含义

studentID

sname

sex

cardID

Birthday

vachar可变长字符型

vachar可变长字符型

char字符型

varchar可变长字符型

datetime日期时间型

学号

姓名

性别

身份证号

电子邮件

class

EnterTime

varchar可变长字符型

datetime日期时间型

班级

录入时间

tsubject课程表

列名

类型

含义

subjectID

varchar

课程编号

subjectName

varchar

课程名称

BookName

varchar

书名

Publisher

varchar

出版社

toscore分数表

列名

类型

含义

StudentID

varchar

学号

subjectID

varchar

课程编号

mark

decimal

分数

这个表的创建方法方式,我们会在第六章详细与大家说明。

七、SQL语句的介绍

SQL:Structured query language结构化的查询语言,用来对数据库进行查询、更新和管理的一种特殊语言。

包含三部分:

DML

Data Manipulation language数据操纵语言,是SQL语言的核心。

用于检索或更新数据库:insert delete update select 增删改查

DDL

Data Definition language 数据库定义语言

用于定义表的结构:create alter drop

DCL

Data control Language数据控制语言

用于定义数据库用户的权限

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

一、Mysql用户登录过程和管理mysql用户

1.1、Mysql8.0本地登录访问数据库

  • Mysql用户存储在mysql数据库的user表中,该表在mysql服务启动时自动加载到内存,控制用户的登录。
  • 查看当前连接的mysql的用户
select user();

use mysql();

select user,host from user;
  • 创建mysql用户账户
create user hector@'localhost';

alter user hector@'localhost' identified by 'abc..123'; 修改hector用户的密码
  • 为新建本地登录用户赋权
grant all privileges on *.* to hector@'localhost' with grant option;

create user hector;

select host,user from user;
  • 主机可以使用通配符,规则和标准的SQL语法中定义的完全相同
  • %表示任意长度的字符
  • _表示1位的任意字符
  • 设置hector@'localhost'的密码为'abc..123';
alter user hector@'localhost' identified by 'abc..123';
  • 创建用户时指定密码
create user hector@cra'localhost' identified by 'abc..123';
  • 练习:

创建1个新用户设置密码并实现本地登录,注意授权。

create user chen@'localhost' identified by 'abc..123'; grant all privileges on *.* to chen@'localhost' with grant option;

1.2 Mysql8.0远程访问数据库的设置

  • 修改root密码
mysql -u root -p

use mysql;

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

exit;

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

允许root远程登录

mysql -u root -p; 
use mysql;
 select host,user from user where user 'root'; 
create user 'root'@'192.168.x.%' identified by 'abc..123';
 grant all privileges on *.* to 'root'@'192.168.x.%' with grant option; exit;

1.3、数据库命名规范数据库命名不能超过30个字符,推荐使用下划线命名方式

  • 数据库命名必须为项目英文名称或有意义的缩写
  • 数据库创建时必须加默认字符集和字符序

       utf8:utf8_general_ci不区分大小写

       utf8_general_cs区分大小写

       utf8_bin二进制

  • 命名应使用小写

      unicode 万国码,统一码,单一码:ucs2,utf16,utf161e,utf8,utf8mb4,utf32

      utf8:1个字符占1-3个字节 升级,老系统

      utf8mb4:1个字符占1-4个字节 新系统

二、基本操作

2.1、连接mysql

语法:

mysql -u 用户名 -p 密码 -h 数据库服务器的地址 -D 数据库名

安装Mysql以后,默认有一个管理员root

  • 显示登录
  • 隐式登录

2.2、查看数据库和表

show databases;-----查看当前所有数据库

use 数据库名;-------切换数据库

show tables;-------查看当前数据库中的所有表

select user();-----显示当前登陆的用户

select database();----显示当前操作的数据库

mysql库属于系统数据库,包含mysql的相关系统信息,不要修改

这个我们前面已经说过了,但是这一部分至关重要,所以我们在这里进行了二次说明。

第五章 Linux快速安装Mysql8.0

一、Centos 8.4.2105系统下使用yum方式安装mysql 8.4

1.1、查看CenteOS系统版本

1.2、配置yum源(由于CenteOS默认yum源镜像链接有误无法直接进入第3步,所以需要更新配置yum源)

​
vim /etc/yum.repos.d/CentOS-Linux-AppStream.repo

[appstream]

name=CentOS Vault - AppStream

baseurl=http://vault.centos.org/8.4.2105/AppStream/x86 64/os/

enabled=1

gpgcheck=1

​

1.3、下载mysql源安装包

root@LinuxServer ~]# wget https://repo.mysql.com/mysql84-community-release-el8-

1.noarch.rpm

1.4、安装mysql源

下载完成后使用下面的命令安装源:

yum localinstall mysql84-community-release-el8-1.noarch.rpm

1.5、检查是否安装成功

使用yum repolist命令检查是否安装成功

1.6、安装mysql

yum install -y mysql-server

1.7、安装成功,启动mysql

1.8、设置开机自动运行

1.9、查看mysql运行进程

ps -eflgrep mysql

1.10、关闭防火墙

在此我以关闭防火墙的方式实现。

firewall-cmd .-state

systemctl stop firewalld.service

systemctl disable firewalld.service

firewall-cmd .state

二、Linux中MySQL8.0用户管理和用户登录方式

1.登录

2.

三、CentOS Linux 7.6安装Mysql8.0

安装步骤

配置hosts文件

卸载主机自带的mysql

安装mysql8.0

设置环境变量

验证:环境变量

创建mysql用户和组,目录授权

配置参数文件

Mysql数据库初始化

配置CentOS linux启动和停止脚本

配置systemctl启动和停止方法

修改root密码

设置允许root用户远程登录

四、MySQL安装完成后远程登录

设置允许root用户远程登录

远程连接需要关闭防火墙

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

一、SQL简介

SQL:Structured Query Languagege 结构化的查询语言,用来对数据库进行查询、更新和管理的一种特殊的语言。DML是SQL语言的核心。

包含三个部分:

  • DML

Data Manipulation language数据操纵语言

用于检索或更新数据库表:insert、delete、update、select增删改查

  • DDL

Data Defination language数据定义语言用于定义的数据的结构:create alter drop

  • DCL

Data Control language数据控制语言

用于定义数据库用户的权限:grant revoke

二、表和库的管理

2.1、数据类型

整数型:smallint、int bigint

小数型:float、double

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

字符串:varchar、char、text

其他:clob存储文本大数据

blod存储二进制大数据

2.2、创建表

语法:

示例:

2.3、修改表

  • 添加列

语法:

示例:

在t-student表中增加1名为weight体重字段,类型为双精度

  • 修改列的类型

语法:

示例:

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

  • 修改列名

示例:

将t-student表中的sex字段修改为gender。

  • 删除列

语法:

示例:

删除t-student表中的weight列(字段)。

  • 修改表名

语法:

示例:

将t-student表名修改为student。

2.4、删除表

语法:

示例:

删除test数据库中的t-user表?

2.5、截断表

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

语法: 

示例:

delete与truncate的区别:

- delete会记录日志,所以速度慢,而truncate不记录日志,清空表并释放资源,速度快

- delete可以指定条件只删除部分数据,而truncate只能用来清空表中所有数据

- delete不会将自动增长列归零,而truncate会使自动增长的列如id列归零

2.6、创建库

语法:

示例:

2.7、删除库

语法:

示例:

三、数据引擎的介绍

3.1、数据库存储引擎的概述

数据库存储引擎是数据库管理系统DBMS的核心组件,主要用于处理数据的存储、检索、索引和更新等。

3.2、常见的数据库存储引擎

MYISAM不支持事务,但读取速度快适用于以读为主的场景,如数据仓库。不支持主键、外键索引。

InnoDB支持事务,支持主键和外键索引

memory

Merge

示例:事务

   A同学给B同学转账500元

(1)A账户少500元 (2)B增加500元,上述两步要么都执行,要么都不执行

3.3、InnoDB与MyISAM引擎的区别

回忆

主键:在一个表中至少应该有一个字段,这个字段所对应的值能够起到唯一标识表中记录的作用,它对应的值是无重复的,不能为null值的,如学生表中学号,身份证号

alter table student add primary(sid);给学生表的学号字段设置主键

——修改学生存储引擎为myisam

alter table student engine=myisam;

3.4、更改数据库默认存储引擎

3.4.1、查看数据库支持的存储引擎
show engines;
3.4.2、显示默认数据库的存储引擎
show variables likec'table_type';
3.4.3、修改默认数据库的存储引擎

windows修改my.ini;

linux修改my.cnf;

3.4.4、修改表的存储引擎

语法

alter table student engine=innodb;
3.4.5、创建表的时候指定存储引擎
create table teacher(tid int,tname char(20))engine=myisam;

四、mysql命令行帮助

4.1、使用?在命令行中显示当前支持的命令

4.2、使用?contents列出可以查看哪些帮助

?account management

?create user

?create table;

五、课后作业

命令行的形式完成

1.新建一个属于名为schooldb的库

2.查看我们已经建好的库

根据题目要求

3.在schooldb数据库中新建一个学院表

运行结果如下

4.第二个题目

在schoolDB表中新建专业表

在这里,我们根据题目所给的文本类型和宽度建立我们需要的表

如图为我们所建好的表

5.第三个题目

根据题目要求在数据库中新建一个学生表。

代码如下:

结果如下

6.第四个题目

新建一个课程表,代码表示如下

运行结果表示如下:

7.第五个题目

新建一个成绩表

这里我们对题目中所示的约束条件进行一个编写,注意编写的方式

结果如下图

到此,创建库和表的问题结束,接下来要将题目中所给的数据进行一个导入

8.学院表的导入及结果

9.专业表的导入及结果

10.学生信息表的导入及结果

11.课程表的导入及结果

12.插入成绩表及结果

第七章   字符集和排序规则

7.1彻底搞定MySQL的乱码问题

什么是乱码?

乱码是指由于编码、解码过程中的不匹配或错误,导致文本或数据在显示或解读时出现无意义、混乱或不可读的字符序列。简单来说,当你打开一个文件或接收一段信息时,如果看到的字符不是预期的文字,而是一串无法理解的符号或乱码,这通常意味着信息的编码方式与你所使用的解码方式不一致。

7.2预备知识

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

——字符集合:charset一组字符

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

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

GB2312   简体中文

  BIG5   繁体中文

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

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

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

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

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

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

7.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个字节。

7.4mysql支持的字符集

语法:

show character set;——查看mysql支持的字符集

show variables like'character_set%'_%’;——查看学前mysql字符集

character_set_client客户端字符

character_set_connection连接字符集

character_set_database数据库字符集

character_set_results返回结果的字符集

character_set_server服务器字符集

character_set_system系统字符集

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

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

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

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;