MySql==>初识数据库

本文介绍了MySQL的基础知识,包括数据库管理软件的分类、MySQL的基本管理和SQL语句基础。内容涵盖设置和忘记密码、SQL语言特点、数据库操作步骤、系统数据库介绍以及MySQL的存储引擎场景。此外,还提及了MySQL的安装过程和一些小知识点。
摘要由CSDN通过智能技术生成

一.mysql相关概念介绍

mysql 使用方法:

方法一:通过图形界面工具,如Navicat等(高级课使用)
方法二:通过在命令行敲命令来操作(基础阶段使用)

mysql => 数据库管理软件,本质上就是一个套接字程序,记录事物一些数据特征

字段=>标题
记录=>文件中的一行内容
表=>文件
库=>文件夹

数据服务器 => 运行有数据库管理软件服务端的计算机

数据库管理软件分两大类:
  
关系型:如db2,oracle,sql server,MySQL,注意:sql语句通用
非关系型:mongodb,redis,memcache

可以简单的理解为:

关系型数据库需要有表结构(表与表之间有联系)
非关系型数据库是key-value存储的,没有表结构

二.mysql基本管理

设置密码

# 方法一:
5.6版本设置密码方式
update mysql.user set password=password("123") where user="root" and host="localhost";
flush privileges;  # 刷新MySQL的系统权限相关表­
5.7版本
update mysql.user set authentication_string=password("123") where user="root" and host="localhost";
# 方法二:
set password = password("123456");

忘记密码

可以将mysql获取用户名和密码校验的功能看成是一个装饰器,装饰在了客户端请求访问的功能上
我们如果将该装饰器移除,那么mysql服务端就不会校验用户名和密码了

(1)先关闭mysqld服务端
(2)重新启动:
命令行的方式启动(让mysql跳过用户名密码验证功能)
mysqld --skip-grant-tables

(3)启动客户端:
	# 直接以无密码的方式连接
	mysql -uroot -p  直接回车
	update mysql.user set password=password("") where user="root" and host="localhost";
'''
真正存储用户表的密码字段 存储的肯定是密文
只有用户自己知道明文是什么 其他人都不知道 这样更加的安全
密码比对也只能比对密文
'''
	# 立刻将修改数据刷到硬盘
	flush privileges;
(4) 关闭当前服务端 然后以正常校验授权表的形式启动,重新启动mysqld

三.sql语句基础

mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要下载mysql的客户端,或者其他模块来连接到mysqld,然后使用mysql软件规定的语法格式去提交自己命令,实现对文件夹或文件的管理。该语法即sql(Structured Query Language 即结构化查询语言)

SQL语言分为4个部分:DDL(定义),DML(操作),DQL(查询),DCL(控制)

1.DDL语句 数据库定义语言:数据库,表,视图,索引,存储过程,例如CREATE, DROP ,ALTER
2.DCL语句 数据库控制语言:例如控制用户的访问权限GRANT , REVOKE
3.DML语句 数据库操纵语言:插入数据INSERT,删除数据DELETE,更新数据UPDATE
4.DQL语句 数据库操纵语言:查询数据SELECT

SQL语句中的快捷键

>>> \G 格式化输出(文本式,竖立显示)
>>> \s 查看服务器端信息
>>> \c 结束命令输入操作
>>> \q 退出当前sql命令行模式
>>> \h 查看帮助

操作数据库的步骤

连接,打开库,操作,关闭退出
1.通过命令行连接MySql
在这里插入图片描述
数据库语法的特点:
①SQL语句可以换行,要以分号结尾
在这里插入图片描述

②命令不区分大小写,关键字和函数建议用大写
在这里插入图片描述

③如果提示符为’> 那么需要输入一个’ 回车
在这里插入图片描述

④命令打错了换行后不能修改,可以用\c取消
在这里插入图片描述

数据库操作

# 查看数据库  show databases;
# 创建数据库  create database 库名 default charset=utf8;
# 删除数据库  drop database 库名;
# 打开数据库  use 库名;

系统数据库

information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等
performance_schema: MySQL
5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象 mysql: 授权库,主要存储系统用户的权限信息 test: MySQL数据库系统自动创建的测试数据库

1.库操作=>文件夹

创建库数据库

语法:

CREATE DATABASE 数据库名 charset utf8;

数据库命名规则:

可以由字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
最长128位

# 增
# 创建数据库 charset utf8mb4是默认的,可以不写
create database db1 charset utf8mb4;

# 查
# 查看所有数据库
show databases;
# 查看数据库的建表语句
show create database db1;

# 改
alter database db1;
# 更改数据库的字符集
alter database db1 charset gbk;

# 删除
drop database db1

2.表操作=>文件

数据库管理系统中,可以有很多’库’,每个数据库中可以包括多张数据’表’

# 增
# 方式一:
create table db1.t1(id int,name char);
# 方式二:
# 切换文件夹
use db1;
select database();
create table t1(id int,name char);

# 查
# 查看所有的表名
show tables;
# 查看刚刚创建的命令
show create table db1.t1;
show create table db1.t1\G # (加上\G垂直显示,默认横向显示)
# 查看创建成功的表的结构
desc/describe t1;

# 改
# 更改表名 :rename
alter table t1 rename tt1;
# 只能改变数据类型:modify
alter table tt1 modify name char(10);
# 字段名+数据类型一起改变:change
alter table tt1 change name mingzi char(3);

# 删
drop table tt1;

3.记录操作=>文件中的一行内容

mysql null 相当于python None 是一样的,代表空,什么也没有

# 增
# 插入单条数据
insert t2 values(1,"egon");
# 插入多条数据
insert t2 values(2,"tom"),(3,"lxx"),(4,"hxx");
# into可写可不写
insert into t2(id) values(5),(6);

# 查
# *代表所有
select * from t2;
select name from t2 where id=3;

# 改
# update 表名 set 字段=值,id=值 where 条件
update t2 set name="lxx",id=444 where id=4;
# 如果不加条件,所有的数据都会改掉
update t2 set name="lxx"
# 删
delete from t2 where id=444;

# 清空整张表(推荐)
truncate t2
# primary key :主键
# auto_increment : 自增
create table t3(id int primary key auto_increment,name char(10));
insert t3(name) values("egon"),("tom"),("jack");

退出MySQL

exit;
quit;

卸载MySQL(Windows)

# 关闭服务
cmd:mysqld remove
# 删除已经解压的文件夹
# 重启电脑

存储引擎场景

日常生活中文件格式有很多中,并且针对不同的文件格式会有对应不同存储方式和处理机制(txt,pdf,word,mp4…)

针对不同的数据应该有对应的不同的处理机制来存储

存储引擎就是不同的处理机制

MySql主要存储引擎:

InnoDB

用于事务处理应用程序,支持外键和行级锁.
是MySql5.5版本及之后默认的存储引擎
存储数据更加的安全

MyISAM

是MySql5.5版本之前默认的存储引擎
速度要比InnoDB更快,但是我们更加注重的是数据的安全

Memory

内存引擎(数据全部放在内存中) 断电数据丢失

blackhole

无论存什么,都立刻消失(黑洞)

查看当前的默认存储引擎:
show variables like "default_storage_engine";

更改表的存储引擎
alter table t1 engine = innodb;

# 方法2:
# my.ini文件
[mysqld]
default_storage_engine=INNODB

四.mysql安装

从官方提供的mysql-apt-config.deb包进行APT源设置

APT源下载地址:https://dev.mysql.com/downloads/repo/apt/

windows安装mysql5.7

### windows安装mysql5.7

# mysql的配置文件(自己新建一个my.ini的配置文件)
ini结尾的一般都是配置文件
程序启动会先加载配置文件中的配置之后才真正的启动
(1) 在D:\MySQL5.7\mysql-5.7.25-winx64文件下创建一个my.ini文件
以下部分可以黏贴: 但是要注意路径,除非你和我的一模一样.
[mysql]  # 一旦客户端启动立刻加载下面的配置
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld] # 一旦服务端启动立刻加载下面的配置
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\MySQL5.7\mysql-5.7.25-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\MySQL5.7\mysql-5.7.25-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB


以管理员身份运行cmd,进入bin目录,执行:
(2)初始化,创建mysql默认的root账户
mysqld --initialize-insecure --user=mysql 命令。不进行这一步,安装完成之后无法启动服务。
(3)依然在管理员cmd窗口的bin目录下,执行 mysqld install  命令安装。完成后会提示安装成功。
(4)依然在管理员cmd窗口的bin目录下,执行 net start mysql 命令启动MySQL服务。
(5)修改环境变量,添加"D:\MySQL5.7\mysql-5.7.25-winx64\bin"(6)cmd窗口中,执行 mysql -uroot -p 命令,默认没有密码,回车进入
(7)若要卸载,需要先停止服务,再删除即可

# 启动mysql服务
net start mysql
# 停止mysql服务
net stop mysql 
# 重启:先停止在启动

mysql相关基础操作

"""
命令可以用tab来补全
d:
D:\>cd MySQL5.7
D:\>cd D:\MySQL5.7\mysql-5.7.25-winx64\bin 直接切换到对应的路径
D:\>dir 来查看文件夹里面的内容
"""
cls 清屏(windows) ctrl + l 清屏(linux)
ctrl + c 终止

[windows] 在超级管理员权限下才能使用:
net start mysql  启动mysql
net stop mysql   停止mysql

[linux]
service mysql start     启动mysql
service mysql stop      停止mysql
service mysql restart   重启mysql


# ### part1 
登录完整语法: 
	mysql -u用户名 -p密码 -h地址ip
	
# (1) 登录到本地mysql 默认用户root 是最高权限账户
mysql -uroot -p
localhost => 127.0.0.1 本地ip地址
# (2) 退出mysql
\q 或者 exit
# (3) 远程连接mysql 服务器
mysql -uroot -p -h192.168.65.130

# ### part2
# 查询当前登录的用户是谁
select user();
# 设置密码
set password = password("123456");
# 去除密码
set password = password("");

小知识点

1.如何查看当前具体进程
tasklist
tasklist |findstr mysqld

2.如何杀死具体进程(只有在管理员cmd窗口下才能成功)
taskkill /F /PID PID号

查看当前计算机的运行进程数
services.msc

将mysql制作成系统服务
mysqld --install

移除mysql系统服务
mysqld --remove
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值