数据库之 基础概念、安装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

【2】解压文件

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

【3】添加环境变量

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

    • 文件内容
    python 复制代码
    [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窗口(管理员),输入
python 复制代码
mysqld --initialize --console
  • data文件夹下将得到初始化的数据
  • 最后会得到初始化密码,这个要赋值下来

【6】注册系统服务

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

【7】启动和关闭服务

  • 启动服务
python 复制代码
net start MySQL
  • 关闭服务
python 复制代码
net stop MySQL
  • 重启服务
python 复制代码
net stop MySQL && net start MySQL

【8】修改密码

  • 先登录
sql 复制代码
# 登录方式一
mysql -uroot -p
# 登录方式二
mysql -uroot -p密码
  • 修改密码
python 复制代码
alter user 'root'@'localhost' identified by '新密码';
  • 刷新权限
python 复制代码
FLUSH PRIVILEGES;
  • 退出MySQL客户端
python 复制代码
exit;
  • 登录,输入新密码
python 复制代码
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 复制代码
# 注释内容

sql语句 --注释内容
(2)多行注释
sql 复制代码
/*
注释内容
*/

【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回车。
相关推荐
Suckerbin19 分钟前
DVWA靶场通关——SQL Injection篇
sql·网络安全
.生产的驴29 分钟前
Docker 部署Nacos 单机部署 MYSQL数据持久化
android·运维·spring boot·sql·mysql·docker·容器
Elastic 中国社区官方博客36 分钟前
Elasticsearch retrievers 通常与 Elasticsearch 8.16.0 一起正式发布!
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
redemption_242 分钟前
Mybatis快速入门 ResultMap 分页的实现
数据库·oracle·mybatis
MXsoft6181 小时前
一体化运维监控管理平台:产品架构与功能解析
大数据·运维·数据库
猫爪笔记1 小时前
MySQL数据库:SQL语言入门 【2】(学习笔记)
数据库·笔记·sql·学习·mysql
江苏思维驱动智能研究院有限公司1 小时前
特权帐户安全 CyberArk
网络·数据库·安全·web安全
布兰妮甜1 小时前
HTTP 安全头配置:如何配置 HTTP 安全头来保护应用
数据库·安全·http
hefaxiang2 小时前
[Mysql] Mysql的多表查询----多表关系(下)
数据库·mysql
花花花12 小时前
RadSystems 自定义页面全攻略:个性化任务管理系统的实战设计
mysql·低代码·typescript·vue·开发工具·radsystems