Mysql笔记

一、Mysql简介

1、介绍

1.1什么是数据库?

数据库:database,数据的仓库(用来存放数据库对象)按照一定的数据结构来组织、存储和管理的数据的仓库,简单来说就是存储数据的仓库。

数据库系统组成:DBS是由DB和DBMS两部分组成。

DBS:数据库系统

DBMS:数据库管理系统----系统软件,用来管理数据库的软件系统,常见的DBMS有Mysql、oracle、Ms SQL server、DB2、sysbase、Access等。

1.2什么是mysql?

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

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

版本:企业版Enterprise、社区版Community

DBA:Database Administrator数据库管理员

1.3数据、数据库、表

用户数据--->表(行、列)--->数据库

2.安装Mysql

2.1版本

分平台:windows、 Linux、MAC-OS

分版本:5.x、6.x、7.x、8.x

2.2安装

安装位置:D:\MySQL\bin

•bin:可执行文件

•data:数据库文件

•my.ini or my.cnf核心配置文件

2.3服务

安装MySQL之后,会在操作系统中添加一个mysql服务

需要先重启服务才能使用mysql;

 

1.什么是数据库?

你可还没有意识到,每当每个同学从自己手机的联系人中查找想要通话的姓名时。这就是在使用数据库。如果在某个搜索引擎查找资料,也是在使用数据库。每个同学到银行的取款机上取钱,这其实也是在使用数据库。

数据库实质是一个数据的集合,数据的仓库。

2、与数据库有关的几个概念

①数据data:凡是可以被计算机处理的对象。如:字母、汉字、声音、符号、动画等。

②信息information:计算机用户或程序员或数据库管理员将数据经过加工处理后对人们的决策起到帮助作用的有用数据。

③数据处理:数据-->数据处理-->信息

3、数据库系统的组成

DBS:database system,由数据库管理系统DBMS、数据库Database、数据库管理员DBA、计算机、数据库应用系统DBAS,

DBMS------MySQL、Oracle、Access、VFP、DB2、Ms-SQL属于系统软件的范围DBAS---数据库应用系统 如学生管理系统、教务管理系统

4、为什么要有数据库

•程序设计 数据类型(整型、浮点型、双精度、字符型、数组、字符串、结构体)

•计算机基础 excel电子表格

5、没有数据库会产生的问题

•存在大量的冗余数据,浪费资源

•数据共享程度低

•无法及时更新

• 无适应业务的扩展、业务需求

小结:

1.数据库:数据的仓库

2.数据库中存放数据库对象(数据库表、视图、存储过程、函数等)

3.用户的数据是存放在数据库表中的

6、常见的关系型数据库

• Oracel

• Mysql

• Ms-SQL server

• DB2

3b2c97a178fc43eea7c7673ab68ee301.png

7、关系型数据库的基本概态

• 关系:用其组银的方此进表册实体和其体集之间的关系。

• 实体:客观存在的井其球以相从这别的事物,如1个人、1本书

• 实体集:一本书------实体100本书----实体集

关系型数据库特征:二维表的组成行和列1特剪存储数据

行表示一条记录,也称为无组、实体信息------除了第1行

列表示一个字段,也称为属性,------只有第1行

姓名

性别

年龄

张三

19

李四

20

王五

21

赵六

18

• 非关系型数据库:文档数据库、键值对数据库等。

8、库

理解为文件柜、房子、容器。

专业的理解:库理解为存储数据的最大的分类,一般在项目的开发过程中金根据项自来创建相应的库(一个项目创建一个库)

9、表

将用户数据存储到数据库表中数据摩要存放到数据库中。

数据库表就是数据库中的一个对象,一般在开发软件项目的过程中会根据功能模块或业务需求来创建相应的表。

I

10、行与列

二维表 行 列

•元组:二维表中的每1列,除了第1行

•属性:二维表中的每1列,只有第1行

学号

姓名

学院

001

小A

明德学院

002

小B

明德学院

003

小C

明德学院

11.MySQL简介

Mysql属于数据库管理系统,属于系统软件,是DBMS,现在被Otacle公司收购,

企业为什么选择Mysql?

从公司运营角度的来讲,选择比yaa1有着种原因:

•oracel是收费的;Mysql是免费的

•Mysql主要从数据安全、稳定、技术服务

•Mysql是开源的(源代码开放,免费)

从技术角度来看,Mysql由于开源,可以带来两大优势:

1 .可以更加了解软件运作的原理,更好的设置Mysql,一旦出现故障也可以很快定位。

2 .可以更容易的开发周边产品。

所以Mysql对于初创公司、互联网公司和很多传统行业不管从功能这是性能,更多的是从或本的角度来讲Mysql是个很好的选择

12、Mysql数据库引擎

数据库引擎是用于存储、处理和保护数据的核心服务。Mysql数据库引擎非常多。使用show Engines可以查看当前数据库的引擎信息。

8a1626ac804045c18b540f3e2dc85599.png

 

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安装与配置

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

439f4e9756a6467c80f7f54e64fb2918.png

提示:如果检查产品更新,会从官网瞎子啊最新安全补丁;

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

738e3fd95b5249c192efb73c48f15b6f.png

•Vmware安装windows server 2019或windows server 2016

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

②步骤

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

1.在此电脑D盘中新建一个虚拟机系统目录Vm-Server

2.打开VMware

3.文件——新建虚拟机——自定义——Workstation 16.x——点击稍后安装操作系统——Windows(Windows Server 2016)

4.虚拟机名称(Test-mysql-windows)——位置为D盘新建的Vm-Server——内核数量为2——使用桥接网络——磁盘大小100(单个文件)

5.自定义硬件(打印机,声卡移除)——网络适配器选择自定义(VMnet8(NAT模式))

6.编辑——虚拟网络编辑器——桥接至本机无线网卡

7.右键Test-mysql-windows点击设置——CD/DVD(使用ISO映像文件)——学习通下载 server 2019(启动时连接)

8.开机

f16120fd4706422e81622c9e26a39b80.png

8e2aa26f28ce4cdbaca0196beef3ff79.png

013de6e8f47f4780a5c3eb53586be9b0.png

826804649c8f491ab0deb18c78c3a57e.png

ade0eafdfc7b440d8f4cfd32f78922a7.png

2f8bfc8d9051442796822d1b9cc2d721.png

③安装Windows server 2019

④Windows server 2019激活与优化

a.安装VMware tools

b.显示Windows server 2019的桌面图标:桌面空白处--->右键---->个性化--->主题----->桌面图标

c.激活Windows server 2019

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

  • Vmware安装CentOS Linux

①新建虚拟机

②将系统光盘镜像文件插入光驱中

0e67cd07c08f4328a8ac89f4e4963308.png

③安装操作系统

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

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

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

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

3、将下载好的系统镜像文件,使用UItraISO(软碟道)制作操作系统安装盘

4、设置笔记本电脑的启动顺序,第1启动设置为优盘启动(按F12或ESC)

5.同在虚拟机中安装Windows server 2019相同,一路下一步进行安装

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

三、学习环境规划

1.物理拓扑

b2b86e60308e4bc0807f912712cc9e02.png

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

 

 

 

VMware虚拟机与物理

1、在物理机中添加回环网卡

2、到Vm虚拟机中选择VMnetX

3、将VmnetX桥接到新建的回环网卡上

4、修改VM虚机与物理机的ip地址

①物理机回环网卡的ip地址:10.10.10.10 255.255.255.0

②虚拟机网卡ip地址:10.10.10.100 255.255.255.0----windows虚拟机

 

windows快速安装MySQL8.0

一、MySQL简介

1.介绍

1.1什么是数据库?

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

数据库管理系统DBMS:用来管理数据的系统软件,常见:MySQL、Oracle、 MSSQLServer、DB2、Sybase、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步,在第2章已做过介绍。

MySQL :: MySQL Community Downloads

d4685fb782cb45e1a253356cfb65ca25.png

4.MySQL8.0数据库配置

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

e19db37623324fdebfc7f1a1bd9d1a8b.png

1edee62a7a4f4c26889039067e0bc223.png

②Mysql router 8.0.39读写分离的配置

③数据库实例配置

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

d5b784dc547748a889dce2eb48082c51.png

问题解决:

mysql -u root -p; use mysql; alter user 'root'@'localhost" identified with mysql_native_password by "abc..123°; flush privileges;

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

mysql> alter user 'root'@'192.168.0.%' idtntified with mysql_native_password by 'abc..123'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)

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

  • 修改root密码

mysql -u root -p use mysql; alter user root'@'localhost'identified with mysql_native password by abc..123; exlt;

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

  • 允许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; exlt;

三、Mysql登录与退出

1.MySQL登录

  • 本地登录

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

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

  • 远程登录

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

2.MySQL退出

exit; quit;

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

  • 查看mysql服务

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

9a3a7eeffc4f4c84b6f88a39656734ad.png

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

8ad822d6e2f74f36b3128bd7224ddcec.png

3ccf98335a7b4c0e9fefd26f6b3510d0.png

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

d0fb05c627454b49852259d684db14fe.png

  • mysql服务的开启与停止

①鼠标的方式

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

②命令的方式

net start mysql80 net stop mysql80

  • mysql配置文件

初学者不建议修改

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

四、Mysql安装方式之配置方法

1、mysql卸载

  • 控制面板 win+R--->运行---->输入control---->卸载程序---->与mysql有关组件--->卸载
  • 安装包 双击mysql-installer-community-8.0.39.0.msi

2、用配置文件来安装mysql

[mysqld] ;设置3306端口 port=3306 ;设置mysql的安装目录 basedir="C:mysql-8.0.39-winx6x" ;设mysql数据库的数据的存放目录 datadir=C:\mysql-8.0.39-winx64\Data ;允许最大连接数 max_connections=200 ;允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 ;服务端使用的字符集默认为UTF8 character-set-server=utf8 ;创建新表时将使用的默认存储引擎 default-storage-engine=INNOOB ;默认使用"mysql_native_password"插件认证 default_authentication_plugin-mysql_native_password [mysql] ;设置mysql客户端默认字符集 default-character-set=utf8 [client] ;设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8

mysqld --initialize --console mysqld --install alter user 'root'@'localhost"identified with ysql_native_password by"abc..123';

五、环境变量

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

a19ed8786e2b4f03b815cd22788e1dea.png

a693dee3ba1d43088196ec8003d644ba.png

6085d0a44a414b6e88f35eaa83ef9749.png

33d383232af543e0946bb385352bd57b.png

六、Mysql目录和配置文件

c195b25f3b344e88aa8ca7242ed12877.png

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

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

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

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

include目录:存放一些头文件

lib目录:存放一些库文件 5

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

七、基本操作

1、连接Mysql

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

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

2、查看数据库和表

show databases;-- 查看当前所有数据库 use 数据库名;-- 切换数据库 show tables;-- 显示当前数据库中的所有表 select database();-… 查看当前正在操作的数据库 select user();-- 显示当前登录的用户

八、导入初始数据

1、导入数据

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

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

source d:\init.sql

2、表结构

desc 表名;-- 查看表结构 select * from 表名;-- 查看表中所有记录

tstudent学生表

列名

类型

含义

StudentID

varchar(10)

学号

Sname

varchar(10)

姓名

sex

char(2)

性别

cardID

varchar(20)

身份证号

Birthday

datetetime

出生日期

Email

varchar(40)

电子邮箱

Class

varchar(20)

班级

enter Time

datetetime

录入时间

tsuject课程表

列名

类型

含义

subJectID

varchar(4)

课程号

subJectName

varchar(30)

课程名

BookName

varchar(30)

书名

Publisher

varchar(20)

出版社

tscore成绩表

列名

类型

含义

StudentID

varchar(10)

学号

subJectID

varchar(4)

课程号

mark

decimal(10.0)

分数

 

 

数据库创建与常用操作

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

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

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

select user();

use mysql; I

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 uesr;

  • 主机可以使用通配符,规则和标准的SQL语法中定义的完全相同
  • %表示任意长度的字符
  • _表示1位的任意字符
  • 设置hector@'localhost'的密码为'abc..123'

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

  • 创建用户时指定密码

create user hector@'localhost' identified by 'abc..123';

  • 练习:

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

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

1.2Mysql8.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远程登录

sysql -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;

2.数据库命名规范

  • 数据库命名不能超过30个李符,推荐使用下划钱命名方式
  • 数据库命名必须为项目英文名称脱有意义的缩写
  • 数据库创建时必须添加默认字符集和字符序

ut8: utf8_general_c不区分大小写 utf8_general_cs区分大小写;utf8_bin二进制

  • 命名应使用小写

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

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

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

3.字符集的选择

 

 

 Linux快速安装Mysql8.0

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

1、查看CenteOS系统版本

be06434b3c0141de8c02521981d97f18.png

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

a0f0d74447404949a15a06ed5223aa3f.png

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

8c22732d01a64da98b4a9ee0076c605d.png

3、下载mysql源安装包

be4ecfc380e348389a8155644952f67b.png

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

1.noarch.rpm

c20ced3dbba1404bb6b57e520a624ead.png

4、安装mysql源

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

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

96b89620d2354590b92de94f9eebe0b7.png

43ff32b092514181a56b9b61ab3e3c63.png

5、检查是否安装成功

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

af5b9736869e4834b77bd8ae40a1823d.png

6、安装mysgl

yum install -y mysql-server

ed93178f83db4763b60d08b055d56730.png

7、安装成功,启动mysql

e47de8ecb8de4930b2ea3dd587f7377e.png

8、设置开机自动运行

39a6b04ebc1e4929a1f434e204a69c2a.png

9、查看mysql运行进程

ps -eflgrep mysql

10、为保证mysq|服务器可以远程访问,我们可以使用简单粗暴点的方法,直接将防火墙关闭,或者防火策略中放行3306端口的方式实现远程登陆。

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

firewall-cmd .-state

systemctl stop firewalld.service

systemctl disable firewalld.service

firewall-cmd .state

052350108bb94f3ab94bdb63480bce48.png

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

1.登录

dc8289c01ce141bc8aea0a93ea61024c.png

2.

7fbe78e3f0cf499ea04cd158f0a37605.png

三、CentOS Linux 7.6安装Mysql8.0

安装步骤

配置hosts文件

2b1cea32f7024ed0b2245c637eb4da20.png

卸载主机自带的mysql

d5450d1f7c834d9fbd7678de82a27502.png

安装mysql8.0

e26c8cbdd7694dd9b4d64a933454f065.png

设置环境变量

4de176efca524540b1b1777b8b504ded.png

验证:环境变量

9408d8e28d90479494fd5ac868474467.png

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

e1a96fa678c24f7f979108438c9ce8bc.png

配置参数文件

3f64e53eec2b462d8a89e105d59a0232.png

Mysql数据库初始化

b1c3ce81cb9c46428322cb99c7849ddd.png

配置CentOS linux启动和停止脚本

4498e80b7c2f4acd8eabb6968de69af3.png

配置systemctl启动和停止方法

d98c32ff1ada49d6b391fe1cbe873abe.png

修改root密码

e7bfa4a7eaf040538b6542c7c2d7887e.png

设置允许root用户远程登录

05172ac306f2440ca1a52f587c79e12b.png

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

设置允许root用户远程登录

86a11544578849e088845c225d7b6fc8.png

远程连接需要关闭防火墙

5cb2b2cedc704780800e22ccd6e870f6.png

 

表和库的管理

一、SQL简介

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

包含三个部分:

DML

Data Manipulation language数据操纵语言

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

  • DDL

Data Defination language数据定义语言

用于定义的数据的结构:create alter drop

  • DCL

Data Control language数据控制语言

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

二、表和库的管理

1、数据类型

整数型:smallint、int、bigient

小数型:float、double

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

字符串:varchar、char、text

其他:clob存储文本大数据

blod存储二进制大数据

2、创建表

语法:

create table 表名 ( 列名 数据类型 特征, -- 字段名 属性名 列名 数据类型 特征, …… 列名 数据类型 特征 )

实例:

create table t_user ( id int, username varchar(20), password varchar(50) );

create table t_student ( id 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());

3、修改表

  • 添加列

  语法:

      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;

4、删除表

语法:

drop table 表名;

drop table if exits 表名;

示例:

删除test数据库中的t_user表?

drop table t_user;

drop table if exits t_user;

5、截断表

清空表中的数据,作法类似于无条件的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列归零

6、创建库

语法:

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

示例:

     create database if not exists shop charset utf8;

7、删除库

语法:

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

示例:

    drop database if exists shop;

 

 

彻底搞定Mysql的乱码问题

1、什么是乱码?

9998f162dd23450c8272083c000134a7.png

2、预备知识

  • 字符 character eg:abcd 1234 , . ( )
  • 字符计划 charset 一组字符

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

86af2604924a44b9aac2d83777bdd5e0.png

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

56835b85c5ab459c86ddc7cca8eea98a.png

GB2312 简体中文

BIG5 繁体中文

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

  • 字符编码 给字符集合中的每1个字符指定1个二进制数字来标识。
  • 字符集:字符集合+编码=字符集
  • 字符序:字符的排序规则 1个字符集,可以有多个排序规则即多个字符序

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

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

3、常见的字符集

  • Ascii字符集
  • 扩展Ascii字符集 latin1 8位二进制 包括Ascii字符集中的全部字符
  • GB2312 BIG5 GBK 16位二进制
  • 扩展Ascii字符集 latin1 latin2
  • unicode字符集 unicode编码 一个字符2个字节

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

一个中文字符使3个字节

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

示例:

1字节 0oox yoox

2字节 110xy 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

示例:

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

25a809fd9dd7481b98d1629889bd804c.png

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

4、Mysql支持的字符集

语法

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

f854d5c5b7db4d9f8d623fac13ba152d.png

  • character_set_client 客户端字符集
  • character_set_connection连接字符集
  • character_set_database数据库字符集
  • character_set_results返回结果的字符集
  • character_set_server服务器字符集
  • character_set_system系统字符集

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

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

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

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

82186b381aa34c96896791a3b4a6cc6c.png

6、设置mysql字符集

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

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

6.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;

7、指定数据库和表以及字段的字符集

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

create database db default charset latin1;

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

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

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

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 db1 character set 'latin1';

结论:

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

8.2修改表的字符集

语法;

alter table student1 character set'utf8';

结论:

修改表的默认字符集,对表中没有列的字符集没有影响,但是还会影响在表中新插入列的默认的字符集。

8.3修改表中列的字符集

语法:

alter table student1 change dz dz char(20) character set 'latin1';

9、指定客户端使用的字符集

语法:

set name latin1;

10、字符集的兼容性

4186fd3ca81f4e878c5d5c155a4aabf1.png

字符集兼容性结论:

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值