百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

值得一看!数据库及Mysql入门,附详细安装教程

ccwgpt 2025-03-02 16:24 38 浏览 0 评论

#什么是数据

用来描述事物的符号记录。可以是数字、文字、图形等,有多种形式,经过数字化之后存入计算机

#什么是数据库

数据库(Database)就是一个用来存放数据库的仓库,是按照一定的数据结构来组织、存储的

#什么是数据库管理系统

是用于管理数据库的软件


#数据库服务器、数据库管理系统、数据库、表、记录之间的关系

#数据库服务器相当于一台计算机,数据库管理系统相当于计算机里的一个软件,数据库相当于一个文件夹,表相当于文件夹中的文件,记录相当于文件中的内容


#数据库的种类

  早期:分为层次式数据库、网络式数据库、关系型数据库

  现今:分为关系型数据库和非关系型数据库


#关系型数据库介绍

  1.类似于excel表格

  2.关系型数据库使用结构化语言查询,sql语句来对数据进行存储

  3.代表作:mysql和Oracle

#关系型数据库产品

  1.Oracle

  2.MySQL

  3.mariaDB
    是MySQL的一个分支,名称来自MySQL创始人Michael Widenius的女儿Maria的名字

  4.SQL server
    微软公司开发的大型关系型数据库系统, 只能在window系统下运行

  5.Access数据库

    入门级小型桌面数据库
  6.其他:DB2等


#非关系型数据库介绍

  非关系型数据库也称为NoSQL数据库(Not Only SQL)

  产生的背景:为了解决web2.0,web3.0时代高并发,高吞吐量的需求,产生了非关系型数据库

  扩展:web2.0:指的是以用户为主体,上传文件发布博文等


#种类

  1.键值(key-value)存储数据库
    典型产品:memcached、redis

  2.列存储(column-oriented)数据库
    典型产品:Cassandra,HBase

  3.面向文档(Document-oriented)数据库
    典型产品:MongoDB、CouchDB

  4.图形(graph)数据库


#常用非关系型数据库产品

  1.Memcached
    是一个开源的、支持高性能的分布式内存缓存系统

  2.redis
    基于key-value(键值)型的存储

  3.MongoDB 
    是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统


#MySQL概述

 MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司


#MySQL特点

  1.安装简单

  2.历史悠久,社区及用户活跃

  3.支持多种操作系统

  4.性能卓越,服务稳定

  5.支持多种存储引擎


#MySQL分类

  MySQL采用双授权政策,分为社区版和商业版,然后又分为四个小版本:Alpha版、Beta版、RC版和GA版本

#MySQL商业版和社区版区别

  1.商业版比社区版稳定

  2.商业版有技术支持等服务,社区版只能靠社区提供


#MySQL版本

#如:mysql-5.7.29.tar.gz

#第一个数字5:主版本号

#第二数字7:发行级别,与主版本组合构成发行序列号

#第三个数字29:发行系列的版本号


#查看版本

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.29    |
+-----------+
1 row in set (0.00 sec)


#SQL语言介绍

SQL,英文全称structured query language,中文意思为结构化语言查询,是一种对关系型数据库中的数据进行定义和操作的语言方法


#SQL的分类

一:数据查询语言(DQL)

 DQL全称data query language,称为数据检索语句,作用是从表中获得数据

#例子:查看用户

mysql> select user,host from mysql.user;
+---------------+-----------------------+
| user          | host                  |
+---------------+-----------------------+
| root          | localhost                     |
| test2         | 1.1.1.%               |
| test          | localhost             |
+---------------+-----------------------+
4 rows in set (0.00 sec)

二:数据操纵语言(DML)

  DML全称data Manipulation language,其语句包括insert,update,delete,分别用于添加、修改和删除表中数据

#例子:删除用户

mysql> delete from mysql.user where user='test';
Query OK, 1 row affected (0.02 sec)

三:事务处理语言(TPL)

  语句能够确保被DML语句影响的表的所有行及时得以更新

四:数据控制语言(DCL)

  DCL全称data control language,其语句通过grant或revoke获得许可

五:数据定义语言(DDL)

  DDL全称data definition language,其语句包括create和drop,在数据库中创建和删除库表

六:指针控制语言(CCL)

  CCL全称cursor control language,语句像declare cursor,fetch into和update where current用于对一个或多个表单独行的操作


#安装MySQL

#一.Linux安装

#1.yum/rpm方式安装
#2.常规方式编译安装
#3.采用cmake方式编译安装
#4.采用二进制方式免编译安装

#下面使用rpm方式安装mysql.5.7

wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
rpm -qpl mysql57-community-release-el7-7.noarch.rpm  #查看下载的rpm包
rpm -ivh mysql57-community-release-el7-7.noarch.rpm  #安装rpm包
yum install mysql-community-server -y  #安装mysql

#提示:mysql5.7之后安装完会为root用户随机生成一个密码,如果使用rpm包,则使用grep "password" /var/log/myqld.log获取

#1.安装完服务是没有启动,所以先要启动服务
[root@db01 ~]#systemctl start mysqld 

#2.获取随机密码
[root@db01 ~]# grep  "password" /var/log/mysqld.log
2019-05-31T02:35:57.106896Z 1 [Note] A temporary password is generated for root@localhost: 0Hl;Ir.keo!;
mysql> select @@log_error;
+---------------------+
| @@log_error         |
+---------------------+
| /var/log/mysqld.log |
+---------------------+
1 row in set (0.00 sec)

#3.设置密码复杂度,也可以在/etc/my.cnf里面设置validate_password_policy=LOW       
mysql> set global  validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)

#4.修改密码,或者使用update修改,用户管理篇会详解
mysql> set password for root@localhost = password("guoke123");
Query OK, 0 rows affected, 1 warning (0.00 sec)
        
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

#登录方法

1.mysql #直接输入mysql不用密码登录
2.mysql -uroot -p #标准的登录密码
3.mysql -uroot -p"guoke123" #如果不在脚本中建议不要使用,明文易暴露


#登录后提示符

#默认为:mysql>,为了让更好的区分是哪个用户或主机登录,可以使用如下方法

#1.临时更改

mysql> prompt \u@mysql \r:\n:\s->
PROMPT set to '\u@mysql \r:\n:\s->'
root@mysql 09:56->

#2.永久生效

#进入/etc/my.cnf配置添加mysql模块,注意不是在[mysqld]里,如果在my.cnf配置文件中添加,可以使用\\避免转义带来的问题

#1.配置mysql模块
[root@cots3 ~]# vim /etc/my.cnf
[mysql]
prompt=\\u@mysql :\\d\\r:\\m:\\s->

#2.重启服务
[root@cots3 ~]# systemctl restart mysqld

#3.登录查看
[root@cots3 ~]# mysql -uroot -p
Enter password: 
root@mysql :(none)09:13:44->use db; #进入库
Database changed

root@mysql :db09:13:49-> #就会更改为db库

#常用参数介绍

# -u:用户名,-d:数据库名,\r:\m:\s 设置时间

#prompt参数详解

Option Description

\c A counter that increments for each statement you issue

每个语句递增的计数器

\D The full current date

当前的完整日期

\d The default database

默认数据库

\h The server host

服务器主机

\l The current delimiter (new in 5.1.12)

当前分隔符

\m Minutes of the current time

当前时间的分钟数

\n A newline character

换行符

\O The current month in three-letter format (Jan, Feb, …)

当前月份采用三字母格式

\o The current month in numeric format

数字格式的当前月份

\P am/pm

\p The current TCP/IP port or socket file

当前的tcp/ip端口或套接字文件

\R The current time, in 24-hour military time (0–23)

当前时间,24小时军事时间(0-24)

\r The current time, standard 12-hour time (1–12)

当前时间,标准12小时制

\S Semicolon

分号

\s Seconds of the current time

当前时间的秒数

\t A tab character

标签字符

\U www.jb51.net

Your full user_name@host_name account name

完整user_name@host_name 账户名称

\u Your user name

你的用户名

\v The server version

服务器版本

\w The current day of the week in three-letter format (Mon, Tue, …)

三个字母格式的星期几

\Y The current year, four digits

当年,四位数

\y The current year, two digits

当前年份,二位数

\_ A space

空间

\ A space (a space follows the backslash)

一个空格

\' Single quote

单引号


\" Double quote

双重报价

\\ A literal “\” backslash character \\文字“\”反斜杠字符

\x

x, for any “x” not listed above

x,对于上面未列出的任何“x”

相关推荐

详解DNFSB2毒王的各种改动以及大概的加点框架

首先附上改动部分,然后逐项分析第一个,毒攻掌握技能意思是力量智力差距超过15%的话差距会被强行缩小到15%,差距不到15%则无效。举例:2000力量,1650智力,2000*0.85=1700,则智力...

通篇干货!纵观 PolarDB-X 并行计算框架

作者:玄弟七锋PolarDB-X面向HTAP的混合执行器一文详细说明了PolarDB-X执行器设计的初衷,其初衷一直是致力于为PolarDB-X注入并行计算的能力,兼顾TP和AP场景,逐渐...

字节新推理模型逆袭DeepSeek,200B参数战胜671B,豆包史诗级加强

梦晨发自凹非寺量子位|公众号QbitAI字节最新深度思考模型,在数学、代码等多项推理任务中超过DeepSeek-R1了?而且参数规模更小。同样是MoE架构,字节新模型Seed-Thinkin...

阿里智能化研发起飞!RTP-LLM 实现 Cursor AI 1000 token/s 推理技术揭秘

作者|赵骁勇阿里巴巴智能引擎事业部审校|刘侃,KittyRTP-LLM是阿里巴巴大模型预测团队开发的高性能LLM推理加速引擎。它在阿里巴巴集团内广泛应用,支撑着淘宝、天猫、高德、饿...

多功能高校校园小程序/校园生活娱乐社交管理小程序/校园系统源码

校园系统通常是为学校、学生和教职工提供便捷的数字化管理工具。综合性社交大学校园小程序源码:同城校园小程序-大学校园圈子创业分享,校园趣事,同校跑腿交友综合性论坛。小程序系统基于TP6+Uni-app...

婚恋交友系统nuiAPP前端解决上传视频模糊的问题

婚恋交友系统-打造您的专属婚恋交友平台系统基于TP6+Uni-app框架开发;客户移动端采用uni-app开发,管理后台TH6开发支持微信公众号端、微信小程序端、H5端、PC端多端账号同步,可快速打包...

已节省数百万GPU小时!字节再砍MoE训练成本,核心代码全开源

COMET团队投稿量子位|公众号QbitAI字节对MoE模型训练成本再砍一刀,成本可节省40%!刚刚,豆包大模型团队在GitHub上开源了叫做COMET的MoE优化技术。COMET已应用于字节...

通用电气完成XA102发动机详细设计审查 将为第六代战斗机提供动力

2025年2月19日,美国通用电气航空航天公司(隶属于通用电气公司)宣布,已经完成了“下一代自适应推进系统”(NGAP)计划下提供的XA102自适应变循环发动机的详细设计审查阶段。XA102是通用电气...

tpxm-19双相钢材质(双相钢f60材质)

TPXM-19双相钢是一种特殊的钢材,其独特的化学成分、机械性能以及广泛的应用场景使其在各行业中占有独特的地位。以下是对TPXM-19双相钢的详细介绍。**化学成分**TPXM-19双相钢的主要化学成...

thinkphp6里怎么给layui数据表格输送数据接口

layui官网已经下架了,但是产品还是可以使用。今天一个朋友问我怎么给layui数据表格发送数据接口,当然他是学前端的,后端不怎么懂,自学了tp框架问我怎么调用。其实官方文档上就有相应的数据格式,js...

完美可用的全媒体广告精准营销服务平台PHP源码

今天测试了一套php开发的企业网站展示平台,还是非常不错的,下面来给大家说一下这套系统。1、系统架构这是一套基于ThinkPHP框架开发的HTML5响应式全媒体广告精准营销服务平台PHP源码。现在基于...

一对一源码开发,九大方面完善基础架构

以往的直播大多数都是一对多进行直播社交,弊端在于不能满足到每个用户的需求,会降低软件的体验感。伴随着用户需求量的增加,一对一直播源码开始出现。一个完整的一对一直播流程即主播发起直播→观看进入房间观看→...

Int J Biol Macromol .|交联酶聚集体在分级共价有机骨架上的固定化:用于卤代醇不对称合成的高稳定酶纳米反应器

大家好,今天推送的文章发表在InternationalJournalofBiologicalMacromolecules上的“Immobilizationofcross-linkeden...

【推荐】一款开源免费的 ChatGPT 聊天管理系统,支持PC、H5等多端

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍GPTCMS是一款开源且免费(基于GPL-3.0协议开源)的ChatGPT聊天管理系统,它基于先进的GPT...

高性能计算(HPC)分布式训练:训练框架、混合精度、计算图优化

在深度学习模型愈发庞大的今天,分布式训练、高效计算和资源优化已成为AI开发者的必修课。本文将从数据并行vs模型并行、主流训练框架(如PyTorchDDP、DeepSpeed)、混合精度训练(...

取消回复欢迎 发表评论: