Linux运维:MySQL数据库(1)

1.信息与数据:

        数据是信息的载体,信息是数据的内涵。数据库就是存储数据的仓库,并长期存储在计算机磁盘中,可由多个用户和应用程序共享的数据集合,就是数据库。

2.数据库中的数据的特点:

        2.1.数据是按照某种结构组织的:数据的内部构成及对外联系就是数据库的“型”,而数据的具体取值就是数据库的“值”。

        2.2.数据具有整体性:即数据库中的数据是从整体出发,综合了各个应用程序和用户的需求,数据是整体结构化的。

        2.3.数据有共享性、数据有较高的独立性:数据库中的数据和应用程序在物理和逻辑上均实现了分离,数据结构的该变不影响应用程序的运行,数据和程序具有较高的独立性。

3.数据库管理系统的功能

        DBMS(数据库管理系统):是管理数据库的系统软件,它实现数据库系统的各种功能。是数据库系统的核心。数据库管理系统位于操作系统之上,通过调用操作系统的各种服务,为用户提供管理各种数据库对象的接口和各种方法,从而实现对数据的各种操作。DBMS的功能建立在操作系统的底层服务之上,数据库的管理控制及用户对数据的各种操作命令的执行均由DBMS实现。

        数据库管理系统主要有三个功能:数据定义(DDL)、数据操纵(DML)、数据控制。

数据定义是定定义了数据库的各种对象,表,视图,索引,存储过程,触发器等。一般有create,drop,alter

        数据操作是对数据表中的操作,如增、删、改、查、统计等各种存储操作。实现对数据库中数据的基本操作。一般有insert,delete,update等。

        数据控制一般有grant,revoke。

        数据查询语句:select

        结构化查询语言(SQL)是一种专门用来与数据库通信的语言,其利用一些简单的句子构成基本的语法来存取数据库中的内容,便于用户从数据库中获得及操作所需数据。

        SQL语言具有以下特点:(1)SQL语言是非过程化语言。(2)SQL语言是统一的语言。(3)SQL语言是关系型数据库的公共语言。

        关系型数据库中的一个表是由行和列组成的,并且要求表中的每行记录必须唯一。在设计表时,可以通过定义主键(primary key)来保证记录(实体)的唯一性。关系型数据库一般是MySQL,SQL Server,access,DB2,sybase等等。关系型数据库结构是二维数据库表,二维表中每个字段用来描述对象的一个属性。每个记录用来描述一个对象的信息,关系数据写到哪里也就是存储在硬盘当中读写系统就会受到的IO限制或者瓶颈。非关系型数据库:NoSQL,Redis。它们都存储高热数据(在内存中高速运行),不同点:redis可以做持久化保存,可以存储对象。

        一个表的主键由一个或多个字段组成,值具有唯一性,且不允许去控制,主键的作用是唯一的标识表中的每一条记录。

        关系型数据库中的术语:

关系:关系就是二维表,其中表中的行、列次序并不重要

行row:表中的每一行,又称为一条记录或元组

列column:表中的每一列,称为属性或字段或域

主键primary key:用于唯一确定一个记录的字段,一张表只有一个主键,可以有多个外键

域domain:属性的取值范围,如:性别只能是“男”和“女”两个人,人类的年龄只能0-150

联系类型:一对一联系(1:1)、一对多联系(1:n)外键、多对多联系(n:n)三张表。

数据库的编译安装:

#创建一个目录/data/

[root@Node1 ~]#:mkdir /data ; cd /data/

#把源码包拖进来。

[root@Node1 data]#:ls

mysql-boost-5.7.20.tar.gz

#解压
[root@Node1 data]#:tar xf mysql-boost-5.7.20.tar.gz

[root@Node1 data]#:ls
mysql-5.7.20  mysql-boost-5.7.20.tar.gz

[root@Node1 data]#:cd /data/mysql-5.7.20/

#安装依赖包

[root@Node1 mysql-5.7.20]#:yum install -y ncurses-devel autoconf cmake 

[root@Node1 mysql-5.7.20]#:yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

#新建一个用户mysql,用于管理mysql

[root@Node1 mysql-5.7.20]#:useradd -M -s /sbin/nologin  mysql

#编译安装:

[root@Node1 mysql-5.7.20]#: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_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

[root@Node1 mysql-5.7.20]#:make -j4               #编译,4核。这里等待时间较长,约20分钟
[root@Node1 mysql-5.7.20]#:make install

数据库安装成功。给数据库mysql用户权限

#数据库目录进行权限调整
[root@localhost mysql-5.7.20]#:chown -R mysql:mysql /usr/local/mysql/
#建立调整配置文件
[root@localhost mysql-5.7.20]#:vim /etc/my.cnf

[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE

_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_

FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES    #这里是一行

#修改配置文件权限

[root@localhost mysql-5.7.20]#:chown -R mysql:mysql /etc/my.cnf

#设置环境变量
[root@localhost mysql-5.7.20]#:echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost mysql-5.7.20]#:echo 'export PATH' >> /etc/profile
[root@localhost mysql-5.7.20]#:source /etc/profile

#初始化数据库,相对路径
[root@localhost mysql-5.7.20]#:cd /usr/local/mysql/

[root@localhost mysql]#:bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

#ls看一下,就会有一个data文件夹

#准备systemctl配置文件

[root@localhost mysql]#:cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
[root@localhost mysql]#:systemctl daemon-reload
[root@localhost mysql]#:systemctl start mysqld

#可以查看状态,是否启动
[root@localhost mysql]#:systemctl status mysqld

#修改数据库密码
[root@localhost mysql]#:mysqladmin -u root -p password "abc123"
#直接回车

#登录数据库:

[root@localhost mysql]#:mysql -uroot -p"abc123"


登录成功!

ctrl + D退出登录



--end---

DDL和DML:以分号结尾;

1.显示所有数据库:show databases;

2.创建数据库:create database db1;

查看:多了一个数据库,其他的四个是系统中自带的数据库

3.创建表:

创建一个学生表student,包括学号ID,姓名name,性别sex,年龄age,电话号码phone,邮箱email。其中学号ID为int型,设置为主键。电话号码最长不超过11位,不为空。邮箱不超过30位,唯一。创建表要先进入数据库:use db1;

create table student (
id int primary key,
name varchar(10),
sex char(1),
age varchar(3),
phone varchar(11) not null,
email varchar(30) unique
);
Query OK, 0 rows affected (0.00 sec)

4.添加字段:

查看表结构:desc student;

如果再添加一个字段,使用alter,add添加。如,添加班级class,字符型,最长为10位。

alter table student add class varchar(10) not NULL;

5.修改字段名:

如果修改字段名:使用change修改。

如果将class修改成bj,语句:alter table student change class bj varchar(10) not NULL;

修改成功:

6.修改字段约束:

在改字段名的时候也可以指定新名字的字段约束,如将class改成bj并直接将varchar改成char。

如果在不修改字段名的情况下,直接修改字段约束:使用alter .. modify

alter table student modify bj char(5);

7.删除字段:

删除字段:使用alter ..drop:

如将bj字段删除掉:alter table student drop bj;

8.显示表:

必须use进入到一个数据库中,才能显示表:

show tables;   只创建了一张表student。

9.删除数据库:

通过语句:drop database db1;

db1的表已删除了。

---end---

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/750352.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ai assistant 是所有编程助手中最出色的一款 ?

ai assistant激活成功后,如图 ai assistant渠道:https://web.52shizhan.cn/activity/ai-assistant 在去年五月份的 Google I/O 2023 上,Google 为 Android Studio 推出了 Studio Bot 功能,使用了谷歌编码基础模型 Codey,Codey 是…

element-plus 日期选择添加确定按钮

需求&#xff1a;选择日期后&#xff0c;点击确定按钮关闭面板 思路&#xff1a; 使用shortcuts自定义确定和取消按钮选择日期后使用handleOpen()强制开启面板点击确定后使用handleClose()关闭面板 <template><el-date-pickerref"pickerRef"v-model"…

【Linux】对共享库加载问题的深入理解——基本原理概述

原理概述 【linux】详解——库-CSDN博客 共享库被加载后&#xff0c;系统会为该共享库创建一个结构&#xff0c;这个结构体中的字段描述了库的各种属性。在内存中可能会加载很多库&#xff0c;每一个库都用一个结构体描述。把这些结构体用一些数据结构管理起来&#xff0c;系…

盲盒小程序:线上盲盒发展机遇

盲盒已经成为了当下年轻人的潮玩首选方式。随着二次元、影视行业的快速发展&#xff0c;给盲盒提供了各种新的发展方向&#xff0c;盲盒商品也在不断创新&#xff0c;种类丰富多样。玩家在拆盲盒时随机获得某一商品&#xff0c;具有惊喜感和刺激性。 目前&#xff0c;随着小程…

深入剖析Tomcat(十、十一) 详解StandardWrapper

《深入剖析Tomcat》第十章介绍了Tomcat的安全机制&#xff0c;主要就是对servlet的访问做安全验证&#xff0c;如果Tomcat中设置了某些servlet需要指定角色的用户才能访问&#xff0c;则需要客户端进行登录验证&#xff0c;如果用户名密码正确并且该用户拥有该角色的话&#xf…

Vite 动态导入警告问题解决方案

如上图我要实现从后台获取权限菜单并动态导入进行渲染 但由于 vite 暂时不支持这种导入方式 图中也给出了提示 本人也是这么去做了 但并没什么卵用 后来参考了 vite 的 import.meta.glob 这种方式 我在处理菜单权限控制的菜单里进行了如下操作&#xff1a; …

数据转换 | Matlab基于R对称点模式(symmetric dot pattern, SDP)一维序列信号转二维时频图象

目录 效果分析基本介绍程序设计参考资料获取方式 效果分析 基本介绍 数据转换 | Matlab基于R对称点模式(symmetric dot pattern, SDP)一维序列信号转二维时频图象 SDP常被用于信号分析和深度学习模式识别。 SDP是一种基于极坐标系的图像表示方法&#xff0c;可以直接将原始信…

版本控制工具-git的基本使用

目录 前言一、git简介二、git工作流程三、安装git并配置git3.1 配置用户名和邮箱3.2 配置.gitignore文件&#xff08;可选&#xff09;3.3 配置ssh key&#xff08;可选&#xff09; 四、git基本命令4.1 创建本地仓库4.2 将工作区内容提交到本地仓库4.3 将本地仓库内容推送到远…

【例子】webpack 开发一个可以加载 markdown 文件的加载器 loader 案例

Loader 作为 Webpack 的核心机制&#xff0c;内部的工作原理却非常简单。接下来我们一起来开发一个自己的 Loader&#xff0c;通过这个开发过程再来深入了解 Loader 的工作原理。 这里我的需求是开发一个可以加载 markdown 文件的加载器&#xff0c;以便可以在代码中直接导入 m…

nacos漏洞汇总

1 nacos介绍 1.1 nacos是啥 Alibaba Nacos是阿里巴巴推出来的一个新开源项目&#xff0c;是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集&#xff0c;可以快速实现动态服务发现、服…

【数据结构】(C语言):动态数组

动态数组&#xff1a; 内存区域连续&#xff0c;即每个元素的内存地址连续。可用索引查看元素&#xff0c;数组[索引号]。指定位置删除元素&#xff0c;该位置之后的元素全部往前移动一位。指定位置添加元素&#xff0c;从最后到该位置的元素全部往后移动一位。物理大小&#…

量化交易 - 策略回测

策略回测 1、什么是策略回测&#xff1f;2、策略回测的作用3、策略回测系统概述3.1策略回测中相关的指标介绍3.2量化交易策略的资金容量3.3 完整的策略回测系统包含哪些内容 1、什么是策略回测&#xff1f; 策略回测&#xff0c;也称之为策略回溯测试&#xff0c;是指利用交易…

NLP经典论文研读--xlnet论文代码复现记录

xlnet源码解读(简易pytorch实现版本) xlnet这个模型还是相当复杂的&#xff0c;我看了很长一段时间也还是有很多地方没有搞明白&#xff0c;最后又在网上搜了很多大佬写的相关博客&#xff0c;才算是大致弄明白了&#xff0c;想了解xlnet的原理&#xff0c;请参考原论文&#…

微服务框架中的Eureka和Ribbon的个人理解

微服务框架需要学习的东西很多&#xff0c;基本上我把它分为了五个模块&#xff1a; 第一&#xff1a;微服务技术模块 分为三个常用小模块&#xff1a; 1.微服务治理&#xff1a; 注册发现 远程调用 配置管理 网关路由 2.微服务保护&#xff1a; 流量控制 系统保护 熔断降级 服…

【尚庭公寓SpringBoot + Vue 项目实战】移动端登录管理(二十)

【尚庭公寓SpringBoot Vue 项目实战】移动端登录管理&#xff08;二十&#xff09; 文章目录 【尚庭公寓SpringBoot Vue 项目实战】移动端登录管理&#xff08;二十&#xff09;1、登录业务2、接口开发2.1、获取短信验证码2.2、登录和注册接口2.3、查询登录用户的个人信息 1、…

gbase 8c分布式升级步骤

GBase 8c 多模多态企业级分布式数据库具备高性能、高可用、弹性伸缩、高安全性等特性&#xff0c;可以部署在物理机、虚拟机、容器、私有云和公有云&#xff0c;为关键行业核心系统、互联网业务系统和政企业务系统提供安全、稳定、可靠的数据存储和管理服务。GBase 8c支持行存、…

视频号的视频怎么提取文案?详细教程来啦!

很多人不知道视频号的视频怎么提取文案&#xff0c;今天就和大家详细说说视频号视频提取文案的方法&#xff01; 众所众知视频号的视频无法下载&#xff0c;我们该怎么提取视频号的视频呢&#xff1f; 关于下载视频号的视频&#xff0c;首先给大家两种方案&#xff0c;一种就是…

软考在事业单位可以评高级职称的吗?

导言&#xff1a; 我本人计算机专业&#xff0c;就业于一个事业单位&#xff0c;单位有一个副高级职称数&#xff0c;若干个中级职称数&#xff0c;我可不可以通过软考拿到的中级证书&#xff0c;去找领导申请单位聘我的中级职称&#xff0c;高级职称呢&#xff1f; 以下&…

C++之STL(九)

1、函数对象 什么适合推荐使用函数对象&#xff1f; 需要状态的函数调用: 需要状态的函数调用: 函数对象可以包含成员变量&#xff0c;可以在多次调用中保持状态。这在某些算法中非常有用。 提高性能: 编译器可以更好地优化函数对象&#xff0c;因为它们是具体的类型&#xf…

【路由交换技术】Cisco Packet Tracer基础入门教程(四)

Hello各位&#xff0c;好久不见&#xff0c;第四期我准备讲一下Packet Tracer中DHCP的配置&#xff0c;使用方法。 本章实验我们将拓扑中的某个路由器作为DHCP服务器&#xff08;它仍然可作为路由器使用&#xff09;&#xff0c;通过命令配置DHCP服务。独立的服务器可通过图形化…