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---

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RuleApp1.4.6文章社区客户端 广告联盟支持Docx导入

支持编译为安卓,苹果,小程序,H5网页的社区客户端代码,包括文章模块,用户模块,动态模块,支付模块,聊天模块,广告模块,商城模块等基础功能,包含VIP会…

10位时间戳、13位时间戳、17位时间戳,以及在JavaScript中的格式转换

一、介绍 1、10位时间戳 2、13位时间戳 3、17位时间戳 4、时间戳转换工具 二、13位时间戳的转换 1、转标准日期 2、转格式化日期 三、10位时间戳的转换 1、转标准日期 2、转格式化日期 四、17位时间戳的转换 1、解析思路 2、解析过程 (1)统…

C++系统编程篇——Linux第一个小程序--进度条

&#xff08;1&#xff09;先引入一个概念&#xff1a;行缓冲区 \r和\n \r表示回车 \n表示回车并换行 ①代码一 #include<stdio.h> #include<unistd.h> int main()…

django学习入门系列之第三点《伪类简单了解》

文章目录 hover&#xff08;伪类&#xff09;after&#xff08;伪类&#xff09;往期回顾 hover&#xff08;伪类&#xff09; 伪类指的是用冒号加的 hover样式指的是&#xff0c;当用户光标移动到设定区域后&#xff0c;所执行的用法 如&#xff1a; <!DOCTYPE html>…

通过代理从ARDUINO IDE直接下载开发板包

使用免费代理 实现ARDUINO IDE2.3.2 下载ESP8266/ESP32包 免费代理 列表 测试代理是否可用的 网站 有时&#xff0c;代理是可用的&#xff0c;但依然有可能找不到开发板管理器的资料包。 可以多换几个代理试试。 代理的配置 文件 -> 首选项 -> 网络 进入后做如下配置…

2024百度之星第二场-小度的01串

补题链接&#xff1a; 码蹄集 一道经典线段树板子题。 区间修改01置换&#xff0c;区间查询子串权值。 唯一区别&#xff0c;权值要求的是相邻字符都不同所需修改的最小字符个数。 我们在线段树节点上分别维护当前连续区间&#xff1a; 奇数位是0的个数&#xff08;j0&…

Python和tkinter实现的字母记忆配对游戏

Python和tkinter实现的字母记忆配对游戏 因为这个小游戏用到了tkinter&#xff0c;先简要介绍一下它。tkinter是Python的标准GUI(图形用户界面)库&#xff0c;它提供了一种简单而强大的方式来创建图形界面应用程序。它提供了创建基本图形界面所需的所有工具&#xff0c;同时保…

OSI七层模型TCP/IP四层面试高频考点

OSI七层模型&TCP/IP四层&面试高频考点 1 OSI七层模型 1. 物理层&#xff1a;透明地传输比特流 在物理媒介上传输原始比特流&#xff0c;定义了连接主机的硬件设备和传输媒介的规范。它确保比特流能够在网络中准确地传输&#xff0c;例如通过以太网、光纤和无线电波等媒…

什么是有效的电子签名?PDF电子签名怎样具备法律效力?

电子签名逐渐成为商务文书和法律文件中不可或缺的一部分。《电子签名法》自2005年4月1日起施行&#xff0c;这一立法是中国信息化法律的重要里程碑&#xff0c;为电子签名应用奠定了法律基础。电子签名不仅仅是一种技术手段&#xff0c;更是一种法律认可的签名形式。那么究竟什…

Python私教张大鹏 PyWebIO通过事件回调实现表格的编辑和删除功能

从上面可以看出&#xff0c;PyWebIO把交互分成了输入和输出两部分&#xff1a;输入函数为阻塞式调用&#xff0c;会在用户浏览器上显示一个表单&#xff0c;在用户提交表单之前输入函数将不会返回&#xff1b;输出函数将内容实时输出至浏览器。这种交互方式和控制台程序是一致的…

学习TTS遇到的问题2 什么是TCN模型

学习TTS遇到的问题2 什么是TCN模型 什么是TCN模型怎么理解 TCN中的 dilation&#xff1f;什么是 Dilation具体例子数学表达作用例子代码示例 什么是TCN模型 https://juejin.cn/post/7262269863343079479 https://blog.csdn.net/weixin_57726558/article/details/132163074 由下…

出手便是王炸,曙光存储将高端存储推向新高度

二十年磨一剑&#xff0c;今朝试锋芒。 近日&#xff0c;曙光存储重磅发布全球首个亿级IOPS集中式全闪存储FlashNexus&#xff0c;正式宣告进入高端存储市场。 作为存储产业皇冠上的明珠&#xff0c;高端存储一向以技术难度大、市场准入门槛高和竞争格局稳定著称&#xff0c;…

从0-1搭建一个web项目(package.json)详解

本章分析package.json文件详解 本文主要对packge.json配置子文件详解 ObJack-Admin一款基于 Vue3.3、TypeScript、Vite3、Pinia、Element-Plus 开源的后台管理框架。在一定程度上节省您的开发效率。另外本项目还封装了一些常用组件、hooks、指令、动态路由、按钮级别权限控制等…

Centos7源码方式安装sqle及开发相关

官方文档-源码安装 操作系统&#xff1a;centos:7.9,everything (DVD版应该也可以) (在ubuntu22.04装了两天之后乖乖开了一个新Centos7虚拟机) 镜像&#xff1a;清华大学开源软件镜像站 centos/7.9.2009 安装git sudo yum update -y sudo yum install -y git git --version安…

数据结构与算法笔记:高级篇 - B+树:MySql数据库索引是如何实现的?

概述 作为一名软件开发工程师&#xff0c;你对数据库肯定再熟悉不过了。MySQL 作为主流的数据库存储系统&#xff0c;它在我们的业务开发中&#xff0c;有着举足轻重的地位。在工作中&#xff0c;为了加速数据库中数据的查找速度&#xff0c;我们常用的处理思路是&#xff0c;…

01.Ambari自定义服务开发-项目初始化

文章目录 基础环境在PyCharm中初始化项目配置项目相关依赖在PyCharm中导入依赖 基础环境 PyCharmPython 2.7已经安装完成的Ambari服务端 在PyCharm中初始化项目 项目名称就是我们要安装服务的名称&#xff0c;要求名称为全大写&#xff0c;如&#xff1a;DORIS创建Python2.7…

龙迅LT8711V TYPE-CDP 1.2转VGA芯片,内置MCU,成熟批量产品

龙迅LT8711V描述&#xff1a; LT8711V是一种高性能的Type-C/DP1.2到VGA转换器&#xff0c;设计用于连接USB Type-C源或DP1.2源到VGA接收器。LT8711V集成了一个DP1.2兼容的接收器&#xff0c;和一个高速三通道视频DAC。此外&#xff0c;还包括两个CC控制器&#xff0c;用于CC通…

图像大小调整(缩放)

尺寸调整前尺寸调整前 1、背景介绍 在深度学习中&#xff0c;将图像调整到固定尺寸&#xff08;如28x28像素&#xff09;的操作是非常常见的&#xff0c;尤其是在处理诸如图像分类、物体检测和图像分割等任务时。这种操作有几个重要原因&#xff1a; 标准化输入&#xff1a;许…

【可控图像生成系列论文(五)】ControlNet 和 IP-Adapter 之间的区别有哪些?

系列文章目录 【可控图像生成系列论文&#xff08;一&#xff09;】 简要介绍了 MimicBrush 的整体流程和方法&#xff1b;【可控图像生成系列论文&#xff08;二&#xff09;】 就MimicBrush 的具体模型结构、训练数据和纹理迁移进行了更详细的介绍。【可控图像生成系列论文&…

【漏洞复现】锐捷统一上网行为管理与审计系统——远程命令执行漏洞

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 锐捷统一上网行为管理与审计系统naborTable/static_convert.php…