【MySQL】数据库基础

文章目录

  • [1. 登陆选项的认识](#1. 登陆选项的认识)
  • [2. 什么是数据库](#2. 什么是数据库)
  • [3. 存储数据为什么不用文件?](#3. 存储数据为什么不用文件?)
  • [4. 见一见数据库](#4. 见一见数据库)
  • [5. SQL语句分类](#5. SQL语句分类)
  • [6. 查看MysQL存储引擎](#6. 查看MysQL存储引擎)

1. 登陆选项的认识

mysql -h 指明部署mysql服务的主机 127.0.0.1(单机访问)
mysql -P 指明要访问的端口号 (默认为3306)
mysql -u 指明登陆用户
mysql -p 指明需要输入的密码


对于 mysql登录指令 mysql -h 127.0.0.1 -P 3306 -u root -p q
若不加 - h ,则连接数据库时,默认连接本地服务器上所搭建的mysql服务
若 不加 -P ,则当前不使用用户自定义的端口,而是采用默认配置的3306端口号

由于 h和P都可以省略,所以可以只写成 mysql -u root - p 也可登录mysql


2. 什么是数据库

mysql 称之为 数据库的客户端


mysqld 称之为 数据库的服务端

mysql本质是一种基于C(mysql) S(myqld)模式的网络服务


mysql 是一套提供数据存取的服务的网络程序
数据库一般指的是,在磁盘或者内存中存储的特定结构组织的数据, 即在磁盘中存储的一套数据库方案
数据库服务 指的是 mysqld

3. 存储数据为什么不用文件?

一般的文件确实提供了数据的存储功能,但是文件并没有提供非常好的数据管理能力(站在用户角度)
每一个对内容做相关的管理工作, 全部都要程序员自己去做, 所以不方便


数据库本质:对数据内容存储的一套解决方案
将字段或要求给数据库,数据库直接给出结果
此时对内容做相关的管理工作,全部由数据库来做, 就不需要程序员自己做了


mysql提出某种需求后,mysql服务端(mysqld) 去数据库文件中 进行搜索 增加 等操作,
将结果交给mysqld,mysqld再将结果交给mysql


4. 见一见数据库

创建数据库

样例:
使用mysql建立一个数据库 建立一张表结构,插入一些数据


在终端1中输入 show databases;


在终端2中输入 vim /etc/my.cnf 指令

datadir 会保存mysql对应的数据存放的路径 ,默认存放路径为 /var/lib/mysql


退出vim后,输入 cd /var/lib/mysql 指令
数据存放的目录当中对应的数据内容


建立数据库
create database hello;

通过mysql 的客户端 向mysqld 服务端 下达 了一个创建数据库的请求


在终端1中输入 show databases; 查看数据库

发现此时多个一个hello的数据库


由于终端1创建了一个数据库,在终端2中,在数据目录中也会多了一个目录,叫做hello

结论1:建立数据库 ,本质就是Linux下的一个目录


创建表

建立表之前,需要选择数据库,此时选择了hello这个数据库


在终端1中,使用 create table student( 创建一个张表 student
name 叫做 类名称 varchar 叫做 类型

名字name的 类型为32个字节
年龄age 的类型为int
性别gender的 类型为2个字节


此时在终端2中可以看到hello的数据库中存在文件

结论2:在数据库内建立表,本质就是在Linux下创建对应的文件即可


insert into student (name,age,gender) values ('李四',19,'男');
向name age gender 中插入 数据
插入数据为 李四 19 男


使用 select * from student; 将学生信息筛选出来

数据库本质也是文件,只不过文件并不是由程序员直接操作,而是由数据库服务(mysqld)帮我们进行操作

5. SQL语句分类

DDL 数据定义语言 用来维护存储结构的相关语句
如:create (创建表) 、alter(修改表结构)

DML 数据操纵语言 用来对数据进行操作
如:insert(插入数据) 、delete(删除数据)

DCL 数据控制语言 负责权限管理和事务
如:grant(赋权)、revoke(取消权限)

6. 查看MysQL存储引擎

存储引擎:数据库管理系统如何存储数据等 技术 的具体实现方法

使用 show engines \G 查看存储引擎


常用的储存引擎为 InnoDB MyISAM

相关推荐
运维行者_6 小时前
企业无线网络监控的挑战与智能化演进趋势
大数据·运维·服务器·网络·数据库
国强_dev7 小时前
技术探讨:使用 stunnel 加密转发数据库连接时,如何获取客户端真实 IP?
数据库·网络协议·tcp/ip
@insist1237 小时前
系统规划与管理师-信息系统规划核心工作要点解析
数据库·软考·系统规划与管理师·软件水平考试·系统规划与管理工程师
超级数据查看器7 小时前
超级数据查看器 v10.0 发布
java·大数据·数据库·sqlite·安卓
数安3000天8 小时前
增量数据如何自动分类分级,避免目录“过期“?
大数据·数据库
南墙上的石头9 小时前
麒麟 V10 重装人大金仓 V8R6 踩坑实录(含 MySQL 兼容模式)
数据库·mysql
画中有画10 小时前
论向量数据库在项目中的应用
数据库
spider_xcxc10 小时前
Redis 数据库高质量实践指南(一)
运维·数据库·redis·oracle·云计算
l1t11 小时前
在linux和windows中解决duckdb 1.6dev版本输出执行计划报错问题
linux·运维·数据库·windows·duckdb
执子手 吹散苍茫茫烟波11 小时前
RC 隔离级别下 MySQL InnoDB 死锁典型案例
数据库·mysql