初识MySQL数据库

初识MySQL数据库

文章目录

  • 初识MySQL数据库
    • 一、数据库
      • 1、什么是数据库?
      • 2、数据库的本质
      • 3、数据库的分类
      • 4、常见数据库默认端口
    • 二、MySQL简介
      • 1、MySQL的组成
    • 三、MySQL的下载与启动
    • 四、MySQL基本设置
      • 4 .1、将mysql服务端制作成系统服务(开机自启动)
    • 五、MySQL客户端设置
      • 5 .1 客户端登录
      • 5 .2 设置密码
      • 5 .3 破解密码(了解)
    • 六、设置MySQL配置文件
      • 6 .1 统一编码
      • 6 .2 将管理员用户名添加到配置文件
    • 七、基本的SQL语句

一、数据库

1、什么是数据库?

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

2、数据库的本质

数据库的本质就是一个C/S架构基于网络通信的应用程序。

  • 数据库拥有服务端与客户端
    • 服务端
      • 基于socket通信
      • 收发消息
    • 客户端
      • 基于socket通信
      • 收发消息

3、数据库的分类

经过多年的发展,根据不同的需求,市面上出现了各种存储方式,存取速度不同的数据库,我们通常根据数据库的存取数据的特点来进行分类。将不同的数据库分为这两类:关系型数据库非关系型数据库

  • 关系型数据库
    • 特点:有固定的表结构, 可以建立表与表之间的关系
    • eg: MySQL、Oracle 、 sqllite 、SQLserver 、access 、db2
  • 非关系型数据库
    • 特点:没有固定的表结构,表与表之间没有关系,存储格式:k:v键值对
    • eg: Redis (字符串,无序集合,有序集合,哈希类型,列表类型)、MongoDB (爬虫用的多)、Memcached (只支持字符串)

4、常见数据库默认端口

关系型数据库 默认端口号
MySQL 3306
Oracle 1521
SQL Server 1433
db2 5000
access 不需要
非关系型数据库 默认端口号
MongoDB 27017
Redis 6379
Memcached 11211
  • 了解
web框架 默认端口号
django 8000
flask 5000
tomcat 8080

二、MySQL简介

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL 使用标准的 SQL 数据语言形式;目前MySQL是开源免费的,隶属于 Oracle 旗下产品,拥有社区版与商业版两个版本。

1、MySQL的组成

文件夹
文件
记录 文件中的数据
字段 文件的表头

三、MySQL的下载与启动

查看我这篇详细版:https://blog.csdn.net/weixin_44884608/article/details/119112963?spm=1001.2014.3001.5502

四、MySQL基本设置

4 .1、将mysql服务端制作成系统服务(开机自启动)

	1. 以管理员身份进入到cmd中
	2. mysqld --install 添加服务  	了解:mysqld --remove  删除服务
	3. 默认情况是未启动状态,需要手动点击启动
	4.如何查看服务是否启动?
		1.services.msc
		2.我的电脑 -> 右键 -> 管理 -> 服务和应用程序
		3.任务管理器 -> 服务 -> MySQL

五、MySQL客户端设置

5 .1 客户端登录

mysql -u root -p     # 客户端用户在cmd窗口登录
mysql -u root -p 密码  # 在cmd中命令尾部跟密码,明文密码显示不建议使用

5 .2 设置密码

# MySQL客户端第一次登录不需要密码登录,密码输入 回车键即可
mysqladmin -uroot -p原密码 password 新密码  # 在cmd窗口输入即可
改密码例子:
mysqladmin -uroot -p123 password 123456

5 .3 破解密码(了解)

当时间过长忘记MySQL密码,如何破解?
可以将MySQL获取用户名和密码校验的功能看成是一个装饰器,装饰在客户端请求访问的功能上,如果将装饰器移除,那么MySQL服务端就不会校验用户名和密码了。

# 1、先关闭当前mysql服务端
	命令行方式启动(让mysql跳过用户名密码验证功能)
    mysqld --skip-grant-tables
# 2、直接以无密码的方式连接
	mysql -uroot -p 直接回车
# 3、修改当前用户的密码
	update mysql.user set password=(123456) where user='root' and host='localhost';
   '''
   真正存储用户表的密码字段 存储的肯定是密文
   只有用户自己知道明文是什么 其他人都不知道 这样更加安全
   '''
# 4、立刻将修改数据刷到硬盘
   flush privileges;
# 5、关闭当前服务端 然后以正常情况启动

六、设置MySQL配置文件

MySQL默认的配置文件是在MySQL的软件目录下的my-default.inimy-default.ini是一个模板配置文件,一般是不可动,不可修改。ini结尾的一般为配置文件。程序启动会先加载配置文件中的配置之后真正的启动。

[mysqld] # 一旦服务端启动立刻加载下面配置
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

[mysql] # 一旦客户端端启动立刻加载下面配置
...
[client] # 其他客户端
...

6 .1 统一编码

  • 统一编码需要自己新建一个my.ini的配置文件,修改配置文件后一定要重启服务才能生效
# 统一编码的配置  直接拷贝即可
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

6 .2 将管理员用户名添加到配置文件

作用:方便登录

# 偷懒 将管理员的用户名密码添加到配置文件中
[mysqld] # MySQL服务端
character-set-server=utf8
collation-server=utf8_general_ci
[client] # 其他客户端
default-character-set=utf8
[mysql] # MySQL客户端
user="root" # 不识别单引号
password=123456
default-character-set=utf8

七、基本的SQL语句

ps:大部分的业务逻辑都是增删改查(远程操控文件夹)

  • 针对库的增删改查(文件夹)
# 增
create database db1;
create database db1 charset='gbk'; 

# 查
show databases; # 查所有. 查看数据库下的所有库名信息
show create database db1; # 查单个,查看以及创建的数据库db1是用的什么字符编码.

# 改 
alter database db1 charset='utf8'; # 改的只是数据库的字符编码

# 删除
drop database db2;
  • 针对表的增删改查(文件)
'''
在操作表(文件)的时候 需要指定所在的库(文件夹)

'''
# 查看当前所在的库的名字
select database();

# 切换库
use db1;

# 增(表)
create table t1(id int,name char(4));

# 查
show tables; # 查看当前库下面的所有表名
show create table t1; # 查单个表

# 查看表结构
describe t1; # 支持简写 desc t1;

# 改字段类型
alter table t1 modify name char(16);

# 删
drop table t1;

"""
craete table db2.t1(id int);	# 也可以用绝对路径的形式操作不同的库
"""
  • 针对数据的增删改查(一行行数据)
'''
1、一定要先有库 有表 最后才能操作记录
'''

# 增
# 加into不加into都可以, 不过为了语义完整还是加into
insert into t1 values(1,'xiao'); # 为表t1中的第一个字段, 第二个字段插值, 一个小括号就是一条记录.
insert into t1 values(1,'xiao'),(2,'chen'),(3,'a');

# 查 *代表所有字段 
select * from t1;  # 将t1表的数据都查出来  ;当数据量特别大的时候不建议使用
select name from t1; # 在当前路径查看t1表中属于字段name的记录

# 改
update t1 set name='DSB' where id > 1; # 将表t1中id>1的name字段修改为DSB

# 删
delete from t1 where id > 1; 
delete from t1 where name='xiao'; 
# 将表所有的数据清空
delete from t1;


你可能感兴趣的:(mysql,数据库)