Mysql基本介绍以及安装
一、初识Mysql
1、为什么学习mysql
①岗位需求
②大数据时代
③被迫需求:存数据
④数据库是所有软件体系中最核心的存在
2、什么是数据库
数据库(DdataBase):安装在操作系统之上的软件,存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的
作用:存储数据,管理数据
3、数据库分类
关系型数据库(SQL):Mysql、Oracle、SQL Server、DB2。通过表和表之间,行和列之间的关系进行数据的存储,学院信息表、考勤表
非关系型数据库(NoSQL):Redis、MongDB。对象存储,通过对象的自身的属性来决定,数据存储方式 k,v键值对的形式
4、DBMS(数据库管理系统)
数据库的管理软件、科学有效的管理我们的数据,维护和获取数据。
5、msyql简介
MySQL是一个关系型数据库管理系统,在web应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
前世:由瑞典MysqlAB 公司开发
今生:属于Oracle旗下产品
关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。
体积小、速度快、成本低,开放源码,一般中小型网站的开发都选择 MySQL 作为网站数据库。
7、安装建议
使用压缩包安装,5.7版本
8、在windows上安装mysql5.7
①下载以及解压安装包:链接:https://pan.baidu.com/s/1OM0PkP6iIT6Y8hBoE7mCtw 提取码:vp7b
②解压出来的文件命名:Mysql57、移动到D盘根目录下
③添加环境变量:D:\Mysql57\bin
④在Mysql57目录中新建my.ini文件,添加以下内容:
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql的安装目录 # 设置mysql数据库的数据的存放目录 basedir=D:/Mysql57 datadir=D:/Mysql57/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB
⑤打开cmd命令,切换到bin目录下:
初始化:mysqld --initialize-insecure
安装:mysqld -install (如果已存在,则删除:sc delete mysql 或者 mysql –remove)
开启:net start mysql
⑥初始化登录密码:
执行命令:mysqladmin -u root -p password,回车
出现Enter password:直接回车(未设置密码时默认没有密码)
接着出现“New password:”,输入新的密码:password,回车即可,
接着出现“Confirm new password:”,输入确认密码:password,回车即可。
登录mysql:mysql –uroot –ppassword
⑦令所用用户可以访问
use mysql;
update user set host='%' where user ='root';
flush privileges;
⑧删除无用配置
delete from mysql.user where user='';
delete from mysql.user where host='::1';
重启mysql,连接测试,如果成功那么,以上安装mysql5.7成功。
9、破解密码(密码忘记了解决方式):跳过密码登录再修改密码
①停止mysql服务
②以管理员身份打开cmd:mysqld --skip-grant-tables(跳过用户密码认证模式)
③打开新的cmd(管理员身份): mysql -uroot -p(没有密码也可以登进去)
④登进去修改密码:update mysql.user set password=password(3822515) where user='root' and host='localhost';
⑤启动mysql
⑥登录:mysql -uroot -p新密码
10、安装Navicat Premium 12
https://www.cnblogs.com/zhangguosheng1121/p/10877545.html
11、在Centos7上安装mysql5.7
https://www.cnblogs.com/zhangguosheng1121/p/14945963.html
二、增删改查
操作数据库 ——>>>操作数据库中的表——>>>操作数据库中的表的数据
mysql关键字不区分大小写
1、操作数据库
①增 create database db1 charset utf8;
②查 show create database db1;
③改 alter database db1 charset gbk;
④删 drop database db1;
2、操作表
查看创建数据库的语句:show create database school
查看student数据表的定义语句:show create table student
应该在具体某一个库下面创建表
切换到指定的库内:use day41;
查看当前所在的库 :select database();
①增:create table userinfo(id int,name char);
②查 :
show tables
show create table userinfo (查看表的详细信息 )
describe userinfo (查看表结构 )
③改:alter table userinfo modify name char(16); ( 在创建char类型字段的时候,建议加上数字char(32) )
④删:drop table userinfo;
3、操作数据
①增:insert into userinfo values (1,'egon'), (1,'egon'), (3,'echo'), (4,'eason') ;
②查:select id,name from userinfo;
select * from userinfo;
③改:update userinfo set name='DSB' where id > 1;
update userinfo set name='DSB' where id = 2 or id = 3;
④删:delete from userinfo where id >3;
delete from userinfo where name='egon';
三、存储引擎
1、为什么
文件格式有很多种,对应的软件也有很多种txt,pdf等
针对不同类型的文件,需要对应有不同的软件帮助我们去操作
2、在物理空间存在的位置
所有数据库文件都存在data目录下,一个文件夹对应一个数据库。本质还是文件的存储
3、查看所有的存储引擎
show engines;
4、比较
默认使用:INNODB
早些年使用:MYISAM
MYISAM | INNODB | |
事物支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约为2倍 |
常规使用操作:
MYISAM:节约空间,速度较快
INNODB:安全性高,事物的处理,多表多用户操作
5、不同存储引擎存储表结构区别:
①create table t1(id int)engine=innodb; (创了两个表:frm表结构 ibd存的真实的数据,在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件)
②create table t2(id int)engine=myisam; (三个表:frm表结构定义文件,MYD数据文件,MYI基于索引插数据,所以比innodb快 )
③create table t3(id int)engine=blackhole; (一个表:frm表结构 )
④create table t4(id int)engine=memory; ( 一个表:frm表结构 为什么:这个引擎的数据是存在内存的,不是在硬盘里)
5、设计数据库表的字符集编码
charset=utf8
不设置的话,回事mysql默认的字符集编码(不支持中文)
四、MYSQL数据管理
数据库意义:数据存储、数据管理
1、DML语言(数据操作语言)
insert
update
delete
添加(insert)
修改(update)
删除(delete)
delete from tb1; 删表中的数据
强调:上面的这条命令确实可以将表里的所有记录都删掉,但不会将id重置为0,
所以收该条命令根本不是用来清空表的,delete是用来删除表中某一些符合条件的记录
delete from tb1 where id > 10;
truncate tb1; 清空表
作用:将整张表重置,id重新从0开始记录
清空含有外键的表:
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE 表名;
SET FOREIGN_KEY_CHECKS = 1;
比较:
相同点:都能删除数据,都不会删除表结构
不同点:Truncate重新设计自增列id,id从0开始
truncate不会影响事物
2、DQL:数据库查询语言
https://www.cnblogs.com/zhangguosheng1121/p/10870552.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现