数据库之 基础概念、安装mysql、sql语句基础

数据库之 基础概念、安装mysql、sql语句基础

【一】存储数据的演变过程:

  1. 文件存储: 初始阶段随意存放数据到文件,格式任意。
  2. 目录规范引入: 软件开发使用目录规范,限制数据位置,建立专门文件夹。
  3. 本地数据存储: 游戏数据本地保存,账号在本地有效。
  4. 单机转联网: 互联网时代,数据库服务端建立,数据统一存储,实现共享和稳定性。

【二】数据库的本质

  • 网络通信应用程序
  • 每人可开发数据库

【三】数据库的分类:

【1】关系型数据库

  • 包含:

    • MySQL, Oracle, db2, access, SQL Server
    • 采用关系模型,支持SQL查询语言。
  • 特点

    • 彼此关联表格存储,字段限制数据格式,支持各种操作

【2】非关系型数据库

  • 包含:

    • Redis, MongoDB, Memcached
    • 采用不同模型,如键值对、文档、图形。
  • 特点:

    • K:V形式存储,适用于临时高速访问不提供复杂查询和事务支持

【四】SQL语句由来

【1】Socket通信

  • 底层网络通信使用Socket
  • 服务端和客户端通过Socket进行消息传递。
    • mysqld.exemysql.exe 是 MySQL 数据库的客户端和服d务端程序,分别负责数据库的服务和客户端连接。

【2】SQL语句的产生

  • 为了使 MySQL 不仅能支持 MySQL 自己的客户端应用程序,还能支持其他编程语言
  • MySQL 采用了 SQL 作为统一的语言来进行数据操作。

【五】数据库的基本单位

【1】库(Database)

  • 存储和组织数据的容器
  • 类似文件夹,可以包含多个表。

【2】表(Table)

  • 用于存储和展示数据
  • 由行(记录)和列(字段)组成,类似电子表格。

【3】记录(Record)

  • 记录也称作行,是表中的一个数据项或实体。

  • 每行代表一个完整数据记录,包含各字段的具体数值或信息。

  • 类似于电子表格的一行数据

【4】表头(Header)

  • 表中的第一行,描述每列字段的含义,方便数据理解和查询

  • 通过表头可以了解每个列字段所代表的意义

  • 类似于电子表格的第一行

【5】表单(Form)

  • 用于收集和展示数据的界面
  • 包含输入字段和操作按钮,用户可进行数据录入、编辑和提交。

【六】数据库安装

【0】各个服务器的端口

  • MySQL :3306
  • Redis : 6379
  • MongoDB : 27017
  • Django : 8000
  • flask : 5000

【1】官网下载Mysql

  • MySQL :: Download MySQL Community Server

  • 选择5.7.44版本

  • 下载Windows (x86, 64-bit), ZIP Archive

【2】解压文件

  • 解压得到的文件夹就是安装目录,放置自己指定位置
  • 不要含有中文

【3】添加环境变量

  • 将文件夹的bin目录添加到系统环境变量Path中
D:\mysql\mysql-5.7.44-winx64\bin
【4】创建指定文件
  1. 在解压文件下创建my.ini配置文件

    • 文件内容
    [mysqld]
    # 设置3306端口
    port=3306
    # 设置mysql的安装目录
    basedir="D:\mysql\mysql-5.7.44-winx64"
    # 设置mysql数据库的数据的存放目录,就是前面手动创建的data目录
    datadir="D:\mysql\mysql-5.7.44-winx64\data"
    # 允许最大连接数
    max_connections=200
    # 允许连接失败的次数。
    max_connect_errors=10
    # 服务端使用的字符集默认为utf8mb4
    character-set-server=utf8mb4
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    # 默认使用“mysql_native_password”插件认证, mysql_native_password
    default_authentication_plugin=mysql_native_password
    [mysql]
    # 设置mysql网络通信的默认字符集
    default-character-set=utf8mb4
    [client]
    # 设置mysql客户端连接服务端时默认使用的端口
    port=3306
    # 设置mysql客户端的默认字符集
    default-character-set=utf8mb4
    
  2. 创建文件夹data

  3. 最终的目录结构

请添加图片描述

【5】初始化数据库

  • 打开cmd窗口(管理员),输入
mysqld --initialize --console
  • data文件夹下将得到初始化的数据
  • 最后会得到初始化密码,这个要赋值下来

请添加图片描述

【6】注册系统服务

  • 把mysql注册到操作系统作为系统服务,保证将来电脑重启了就可以开机自启了
mysqld --install
  • 注销方法
mysqld --remove

【7】启动和关闭服务

  • 启动服务
net start MySQL
  • 关闭服务
net stop MySQL
  • 重启服务
net stop MySQL && net start MySQL

【8】修改密码

  • 先登录
# 登录方式一
mysql -uroot -p
# 登录方式二
mysql -uroot -p密码
  • 修改密码
alter user 'root'@'localhost' identified by '新密码';
  • 刷新权限
FLUSH PRIVILEGES;
  • 退出MySQL客户端
exit;
  • 登录,输入新密码
mysql -u root -p

【9】跳过登录密码

  • 在my.ini文件中添加指定信息
[mysql]
# 不需要每次输入验证码即可登陆
user="root"
password=新密码
  • 重启服务
net stop MySQL && net start MySQL
  • 登录
mysql -uroot

【七】SQL语句基础

  • MySQL是关系型数据库,操作它需要使用SQL(结构化查询语言)。

【1】SQL规范

  • SQL语句关键字不区分大小写,但建议用大写。
  • 命令大写,数据库名、数据表名、字段名统一小写,避免冲突。
  • 使用反引号圈起同名的数据库名、数据表名、字段名与关键字。
  • SQL语句可单行或多行书写,以英文分号(;)结尾,关键词不能跨多行或简写。
  • 字符串和日期类型的值要用单引号括起来。
  • 单词之间使用半角空格隔开。
  • 使用空格和缩进提高SQL语句可读性。

【2】注释语法

(1)单行注释
# 注释内容

sql语句 --注释内容
(2)多行注释
/*
注释内容
*/

【3】SQL类型

  • 根据用途不同,SQL语句分为三大类型:
(1)数据定义语言(DDl)
  • 用于创建或删除数据库数据表
  • 包括CREATE(创建)、DROP(删除)、ALTER(修改)
(2)数据操纵语言(DML)
  • 用于对数据表中的数据进行增删改查
  • 包括SELECT(查找)、INSERT(插入)、UPDATE(更新)、DELETE(删除)
(3)数据控制语言(DCL)
  • 用于控制数据的操作权限,包括用户权限数据操作权限
  • 包括COMMIT(确认对数据库的数据变更)、ROLLBACK(取消对数据库的数据变更)、GRANT(赋予用于操作权限)、REMOVE(取消用户的操作权限)
(4)补充
  • SHOW 属于 SQL 的一种语句,它通常用于检索关于数据库、数据表、用户权限等信息

  • SHOW 不属于 DDL、DML 或 DCL 中的一种,而是用于元数据查询和展示

    • SHOW DATABASES;:显示所有数据库的列表。
    • SHOW TABLES;:显示当前数据库中所有数据表的列表。
    • SHOW COLUMNS FROM 表名;:显示指定表的列信息。
    • SHOW GRANTS FOR 用户名;:显示给定用户的权限。

【4】SQL常用命令

  • help: 查看系统帮助信息。
  • status: 查看数据库管理系统的状态信息。
  • exit 或 quit: 退出数据库终端连接。
  • \c: 在打错命令后,想重新换行时使用,输入\c回车。

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

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

相关文章

Linux报 “no route to host” 异常 ping: sendmsg: No route to host

公司有台服务器迁移机房后跟另一台服务器相互ping不通,但是两台服务器都能上网能ping其他机器,其他机器都能ping通这两台服务器。检查两台服务器没有防火墙规则拦截,交换机上也没检查到acl过滤。 下图是迁移机房的服务器ping截图 下图是nfs服…

分布式空间索引了解与扩展

目录 一、空间索引快速理解 (一)区域编码 (二)区域编码检索 (三)Geohash 编码 (四)RTree及其变体 二、业内方案选取 三、分布式空间索引架构 (一)PG数…

腾讯云幻兽帕鲁4核16G14M服务器性能测评和价格

腾讯云幻兽帕鲁服务器4核16G14M配置,14M公网带宽,限制2500GB月流量,系统盘为220GB SSD盘,优惠价格66元1个月,277元3个月,支持4到8个玩家畅玩,地域可选择上海/北京/成都/南京/广州,腾…

通讯录项目(终)

Start And Stick 上一期我们将通讯录的项目的基本功能已经实现,这一篇文章我们将对通讯录进行完善。 目录 Start And Stick 上期回顾: 上期必要代码: 数据打印: 代码讲解: 头部插入数据: 代码讲解&…

27.1K Star,优雅的JSON 数据可视化工具

Hi,骚年,我是大 G,公众号「GitHub指北」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注。 想自己之前做 APP 开发会访问后端数据,这个数据就是 JSON …

【网络基础】网络协议传输层UDP和TCP

UDP 解包和分用 解包(解析数据包) 捕获数据包:首先,接收端的网络栈捕获UDP数据包。检查目的端口:接收端检查数据包头部的目的端口,以确定哪个应用程序应该接收该数据包。验证校验和:接收端可能…

【排序5】基数排序:数字的组织与整理艺术

🎡基数排序 🎊1、基本思想🎊2、基本步骤🎊3、代码示例🎊4、特性总结 🎊1、基本思想 基数排序(Radix Sort)是一种非比较排序算法,它根据数字的每一位来对元素进行排序。它…

2024年数学建模美赛C题(预测 Wordle)——思路、程序总结分享

1: 问题描述与要求 《纽约时报》要求您对本文件中的结果进行分析,以回答几个问题。 问题1:报告结果的数量每天都在变化。开发一个模型来解释这种变化,并使用您的模型为2023年3月1日报告的结果数量创建一个预测区间。这个词的任何属性是否会…

Java TemporalAdjusters 时间调节器

提供了非常多处理日期相关的函数: 使用示例: /*** JCccc* param args*/public static void main(String[] args) {DateTimeFormatter pattern DateTimeFormatter.ofPattern("yyyy-MM-dd");LocalDateTime now LocalDateTime.now();//获取当月…

web前端项目-实现录音功能【附源码】

录音功能 运行效果&#xff1a;本项目可实现录音软件的录音、存储、播放等功能 HTML源码&#xff1a; &#xff08;1&#xff09;index.html&#xff1a; <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/h…

java日志框架总结(三 、Log4j日志框架)

一、简介 Log4j ( Logger For Java ) , Java 日志的记录包。 官方网站 。Log4j 是 Apache 的一个开源项目&#xff0c; 为Java提供了日志记录功能。能够让程序员非常方便的记录日志&#xff0c; 并且提供了多种适配方式&#xff0c;能满足各种需求。 使用Log4j 只需要导入一个…

【时序预测】2、prophet:Forecasting at Scale | Python 文档教程

文章目录 一、Quick Start二、饱和预测2.1 Forecasting Growth 预测增长2.2 Saturating Minimum 饱和最小值 三、Trend Changepoints 趋势变化点3.1 Automatic changepoint detection in Prophet 自动检测变化点3.2 Adjusting trend flexibility 调整趋势灵活性3.3 Specifying …

从零开始做题:逆向 ret2shellcode orw

1.题目信息 BUUCTF在线评测 下载orw时防病毒要关闭 2.题目分析 orw是open、read、write的简写。有时候binary会通过prctl、seccomp进行沙箱保护&#xff0c;并不能getshell。只能通过orw的方式拿到flag。 fdopen&#xff08;‘./flag’); # 打开flag文件&#xff0c;得到fd…

线程调度(Java Android)

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 未经允许不得转载 目录 一、导读二、概览2.1、线程的属性 三、…

HTTP服务器基础认识(复习)

鉴于曾经写过相关文章&#xff0c;这里就不再详细介绍了&#xff0c;关于详细的介绍可以参考我之前的文章 HTTP协议初识中篇-CSDN博客 一个简单的设置套接字的过程&#xff0c;也当成是复习一下下了 代码 #include <iostream> #include <cstdio> #include <…

Redis的数据类型

目录 string 1.编码方式 2.应用场景 3.常用命令 hash 1.编码方式 2.应用场景 3.常用命令 list 1.编码方式 2.应用场景 3.常用命令 set 1.编码方式 2.应用场景 3.常用命令 zset 1.编码方式 2.应用场景 3.常用命令 如何理解Redis的编码方式 embs…

2024三掌柜赠书活动第七期:一本书读懂AIGC:探索AI商业化新时代

目录 前言AI商业化的背景和挑战关于《一本书读懂AIGC&#xff1a;探索AI商业化新时代》编辑推荐内容简介作者简介图书目录书中前言/序言《一本书读懂AIGC&#xff1a;探索AI商业化新时代》全书速览结束语 前言 不用多讲&#xff0c;想必大家也都知道&#xff0c;人工智能在过…

k8s-基础知识(Service,NodePort,CusterIP,无头服务,NameSpace,资源限制)

Node Node 是 Pod 真正运行的主机&#xff0c;可以是物理机&#xff0c;也可以是虚拟机。 Annotations 原文链接 Annotations 是 key/value 形式附加于对象的注解。不同于 Labels 用于标志和选择对象&#xff0c;Annotations 则是用来记录一些附加信息&#xff0c;用来辅助应…

【标定】多源LiDAR传感器标定方法(含C++代码)

提供的代码是一种使用平面提取和匹配以及随后的Ceres Solver库优化转换的LiDAR标定方法的全面实现。这种方法用于对齐多个LiDAR传感器的数据,比如那些安装在车辆或机器人不同位置的传感器,以确保它们生成的点云在同一坐标系统中。 以下是对代码及其实现的标定方法的介绍: 利…

linux虚拟化之kvm(一个200行的arm64虚拟机代码)

一、背景 之前介绍了X86上的一个简易虚拟机&#xff1a; linux虚拟化之kvm&#xff08;一个150行的x86虚拟机代码&#xff09;-CSDN博客 &#xff0c;但作为一名嵌入式开发者&#xff0c;还是需要在ARM64上尝试一番&#xff0c;ARM64上的虚拟化和X86还是有很多差异点&#x…