Mysql-简介

108 阅读3分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

  1. 常用命令

create database test;  -- 创建数据库

use test;                -- 使用数据库

show create database  test -- 查看创建数据库的语句

-- CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */

show create table student -- 查看创建表的语句

-- CREATE TABLE `student` (

--   `StudentNo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

--   `LoginPwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

--   `StudentName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

--   `Sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

--   `GradeId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

--   `Phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

--   `Address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

--   `BornDate` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

--   `Email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL

-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC



-- 查看表结构

desc student

科普:创建表或者数据库语句的时候字符编码 charset=utf8

数据库默认字符编码是Latin1,是不支持中文的,我们需要把字符集改为中文,才可以存储中文

修改字符集的方式有以下两种

1 创建表或者数据库的数据,字符集选择charset=utf8(建议使用这种方式)

2 修改my.ini(mysql核心配置文件)中配置默认的编码character-set-server=utf-8,下次创建表或者数据库的时候就不用一只选择字符编码了,但是不建议使用这种方式

  1. INNODB和MYISAM

不论数据库版本是5.7还是8.0,默认使用的引擎就是innodb,

查看数据库全部的引擎

INNODB和MYISAM的区别

MYISAMINNODB
版本是早期数据库的引擎无论是5.7还是8.0,数据库默认使用的引擎都是innodb
事务不支持事务支持事务,mysql自动开启事务,并且会自动提交事务
数据行锁不支持,myisam是表锁, 会把整张表锁住支持 innodb是行锁,只会锁住一行,效率更高
外键不支持支持
全文索引支持不支持
表空间大小较小较大,约为myisam的两倍

总结:

MYISAM:由于空间较小, 节约空间,速度更快

INNODB:由于支持事务,安全性高,而且支持外键,就可以多表多用户操作

数据库文件表在物理空间存在的位置

所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库,本质还是文件的存储

mysql引擎在物理文件上的区别

innodb在数据库表中只有一个*.frm文件(存储表结构的文件),以及上级目录下的ibdata文件

myisam在数据库中以下文件

1 *.frm文件 存储表结构的文件

2 *.MYD文件(data) 存储表数据

3 *.MYI文件(inex) 索引文件

MYISAM和INNODB分别使用什么情况

MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。

InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。