初始MySQL数据库

MySQL的安装

在官网中下载MySQL的安装包到opt目录下

yum安装依赖环境 `yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake openssl-devel`

使用tar命令解压MySQL安装包

useradd命令创建mysql用户,不创建家目录,不允许登录

切换到mysql软件的目录中,进行编译安装

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

make -j 4 && make install

 

修改etc/my.cnf的配置文件,重写配置
#客户端设置
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

#服务端设置
[mysql]
port = 3306
#开启自动补全功能
socket = /usr/local/mysql/mysql.sock
auto-rehash

#服务全局设置
[mysqld]
#设置管理用户
user = mysql
#指定数据库的安装目录
basedir=/usr/local/mysql
#指定数据库文件的存储路径
datadir=/usr/local/mysql/data
#指定端口
port = 3306
#设置服务器字符集编码格式为utf8
character-set-server=utf8
#指定pid 进程文件路径
pid-file = /usr/local/mysql/mysqld.pid
#指定数据库连接文件
socket=/usr/local/mysql/mysql.sock
#设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开
bind-address = 0.0.0.0
#禁止域名解析,包括主机名,所以授权的时候要使用 IP 地址
skip-name-resolve
#设置mysql的最大连接数
max_connections=4096
#指定默认存储引擎
default-storage-engine=INNODB
#设置在网络传输中一次消息传输量的最大值。系统默认值为 1MB,最大值是 1GB,必须设置 1024 的倍数。
max_allowed_packet=32M
#指定服务ID号
server-id = 1

将mysql安装目录和配置文件的属主和属组更改为mysql用户

把mysqsl的bin和lib目录添加到path路径中,让系统能识别

初始化数据库

./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

重新刷新服务,启动MySQL服务

 

 

数据库的基本概念:

  • 数据:(Data) 描述事物的符号记录 包括数字、文字、图形、图像、声音、档案记录等 以“记录”形式按统一的格式进行存储
  • 将不同的记录组织在一起 用来存储具体数据
  • 数据库 表的集合,是存储数据的仓库 以一定的组织方式存储的相互有关的数据集合 是按数据结构来组织,存储和管理数据的仓库
  • 数据库管理系统(DBMS) 是管理数据库的系统软件,其包括数据库及用于访问、管理数据库的接口系统
  • 数据库系统(DBS) 是一个人机系统,由硬件、os、数据库、dbms、应用软件和数据库用户组成 用户可以通过dbms或应用程序操作数据库

关系数据库SQL

  • 关系数据库系统是基于关系模型的数据库系统
  • 关系模型的数据结构使用简单易懂的二维数据表
  • 系模型可用简单的“实体-关系(E-R)图来表示
  • E-R图中包含了实体(数据对象)、关系和属性三个要素

 

操作命令:sql语句 存储结构:二维表格 存储的数据:结构化数据

对象: 库--> 表--> 二维表格形式的结构化数据

    列(字段)用来描述对象的一个属性

    行(记录)用来描述一个对象的信息

使用场景:存储业务数据 和账户信息

非关系性数据库 NoSQL

存储结构:不同类型的数据库使用不同的存储结构,比如 键值对 文档 索引 时间序列等

缓存型:Redis Memcached

文档型:MongoDB

索引型:Elasticsearch

时序型:Prometheus InfluxDB

列式型:HBase

数据库的操作管理

SQL常用语言

DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限

常用的数据类型

int :整型   无符号[0,2^32-1],有符号[-2^31,2^31-1]
float :单精度浮点    4字节32位
double :双精度浮点    8字节64位
char :固定长度的字符类型
varchar :可变长度的字符类型
text :文本
image :图片
decimal(5,2) :5个有效长度数字,小数点后面有2位

MySQL基础操作

创建新的库
create database 库名;
创建新的表
create table 表名(字段1 数据类型,字段2 数据类型,...[,primary  key (字段)]);

 

 

 

添加表记录
insert into  表名(字段1,字段2,...) values (字段1的值,字段2的值,....);

SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
#查询表的数据记录

alter  table 旧表名  rename  新表名
#修改表名
alter  table  表名   add 新字段  数据类型  约束属性
#添加新字段
alter  table  表名  change  旧字段  新字段  数据类型 约束属性
#修改字段
alter  table  表名  drop  字段名
#删除字段

 #修改字段

 

删除
alter  table  表名  drop  字段名
#删除字段
drop table  [库名.] 表名;
#删除表名

 

mysql的6大约束特性

primary key 主键约束
#字段的值不能重复,不能为null,一个表只能有一个主键
umique  key  唯一性约束
#字段的值不能重复,但能为null,一个表可以有多个唯一建
not null   非空约束
#字段的值不能为null
default   默认值约束   
#字段的值如果没有设置则使用默认值自动填充
auto_increment   自增约束  
#字段的值如果没有设置默认会从1开始每次自动递增1,要求自增字段必须为主键
foreign  key   外键约束  
#保证外键表与主键表相关联数据的完整性和一致性
int (N)zerofill  零填充

 

表的克隆

create table  新表 like  旧表
#克隆表结构
insert  into  新表  (select * from 旧表)
#克隆表数据,可以实现表结构和表数据与旧表一致

create table 新表 (select * from 旧表)
#新表和旧表的表内容一致,但是新表和旧表的表结构不一定一致

 

清空表

delete from  表名
#delete 是一条一条的删除记录,效率较慢,自增长字段仍然会按照清空表前的最大记录继续自增

truncate table 表名
#直接重建表,清空表效率更高;自增长字段会重新从1开始增长

 

posted @ 2023-12-23 00:16  打开方式不对  阅读(55)  评论(0)    收藏  举报