MySQL数据库的基本概念(day23)

2024-09-04 08:52

本文主要是介绍MySQL数据库的基本概念(day23),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 学习目标

  1. 了解数据库相关的概念
  2. 了解并掌握MySQL产品的安装
  3. 了解并掌握MySQL服务的使用
  4. 重点掌握MySQL语法规范
  5. 重点掌握数据库的管理语法
  6. 重点掌握数据表的管理语法

2 数据库概述

2.1 数据库相关概念

2.1.1 什么是数据库

数据库的英文为DataBase,简称DB,是按照数据结构来组织、存储和管理数据的仓库。简而言之,数据库就是存储数据的仓库。

2.2.2 什么是数据库管理系统

用于管理DB中数据的系统,我们称为数据库管理系统,又称为数据库软件(产品),简称DBMS(Database Management System)。

2.2.3 什么是结构化查询语言

用于和DBMS通信的语言,叫做结构化查询语言,简称SQL

2.2 什么是关系型数据库

  • 数据库产品非常多,而目前最流行的数据库是MySQL。
  • 查看数据库最新排名:https://db-engines.com/en/ranking

image-20230408101859269

  • 而MySQL是关系型数据库,关系型数据库的特点是具有特定的组织方式,其以行和列的形式存储数据,以便于用户理解。关系型数据库这一系列的行和列被称为表,一组表组成了数据库。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据集合。

2.3 常见的关系型数据库

  • MySQL:是一款免费开源、小型、性能优秀、适用于中小型项目、可集群,在WEB应用方面是最好的数据库产品,而其SQL语言是最标准的。
  • SQL Server:微软提供的收费数据库产品,Java中使用不多,但是胜在可以兼容微软的所有的平台和系统。
  • Oracle:1983年由甲骨文公司开发一款商品化的关系型数据库,是一款收费产品,但是功能强大、性能优异,所以Java中使用者很多,主要是应用于银行、金融、保险等开发大型数据库项目。
  • DB2:是一款收费产品,适用于中型/大型、银行/电信等企业、应用于大型应用系统等。
  • SQLite:轻量级数据库 , 安装包只有几十K , 只有最基础的增删改查功能。

3 MySQL的安装

  • MySQL安装视频可参考:MySQL的安装—>Mariadb的安装(day21)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Z0412_J0103/article/details/141678370

4 访问数据库

4.1 名称解释

4.1.1 数据库(database)

  • 在一个MySQL服务器中,可以创建很多的数据库(database)。

  • 通常情况下,一个WEB站点对应一个数据库。

image-20221108141030550

4.1.2 数据表(table)

  • 在数据库(database)中,可以创建很多张表(table),每个表都有一个表名,用来标识自己,表名具有唯一性。

  • 通常情况下,一张表用于保存一类数据,例如网站中的所有用户信息会保存在一张表中,所有商品信息会保存在另一张表中。

image-20221108141010777

4.1.3 表记录(record)

  • 在数据表(table)中,可以插入很多条表记录。

  • 数据表往往保存一类数据,类似于java中的一个“类”的设计。

  • 而一条表记录往往对应java中的一个具体的实例。

image-20221108140840600

4.2 访问MySQL服务器

4.2.1 打开服务器

  • 选中我的电脑,右键→管理

image-20221108141654484

  • 服务与应用程序→服务→MySQL→启动

image-20221108142433150

4.2.2 连接客户端

  • 从开始菜单中找到MySQL/MariaDB

image-20221031145349639

  • MySQL Client 打开客户端 , 输入自己的密码显示Welcome ..... 说明建立好了连接

image-20221031145900037

4.2.3 退出客户端

  • 输入“exit”,即可退出客户端

image-20221031150038145

5 idea连接数据库

5.1 创建java项目

  • Project name : JSDSecondStage

5.2 准备数据

①下载文件hr_mysql.sql,将该文件存储到一个位置(建议:将该文件存储到项目下)

②打开MySQL Client,登录用户后,敲入以下命令,会自动执行该sql文件内容

source sql文件的磁盘路径

image-20230403154546436

③输入以下指令,查看数据库

SHOW DATABASES;

5.3 idea连接数据库

①打开idea工具,在右边找到“database”选项,点击进入。

image-20221108145601794

②点击“+”→Data Source→MySQL

image-20221108150152835

③进入到连接数据库面板,填写对应信息,点击"OK",设置完成。其中该面板设计的填写内容如下,可参考进行设置。

  • Name:设置当前连接的名字,可以自定义名字。
  • Comment:设置本次连接的备注,一般根据自身情况填写即可,也可以不填写。
  • Host:是填写要连接的数据库服务器主机的ip,而我们学习阶段连接的都是自己的电脑,所以使用本机ip即可连接数据库,但是本机ip书写不便,所以可以使用localhost域名来表示本机ip。
  • Port:是填写要连接的数据库服务器主机的端口号,该值一般不需要修改。默认为3306。
  • User:是填写登录数据库服务器的用户名,此处我们使用默认root即可,因为root用户是服务器中的超级管理员,具有超级权限,可以控制整个MySQL服务器。
  • Password:是填写登录密码,根据实际情况填写,不过一般都是root。

image-20230403155046938

④此时连接成功。

解决方案

  • 手动导入数据库驱动jar包

①将提供的jar包下载下来

该网盘链接有效期为7天,如有需要评论区扣我就行
通过网盘分享的文件:mysql-connector-java-8.0.20.jar
链接: https://pan.baidu.com/s/1fllNM4Mdcccmuy-lTExRoA?pwd=icku 提取码: icku

②将压缩解压缩后,记住jar包的磁盘位置

③打开idea,在连接mysql的面板处,点击如下位置

image-20230513121927665

④点击Go to Driver

image-20230513122000237

⑤点击"+"号

image-20230513122041662

⑥点击Custom JARs...

image-20230513122108358

⑦定位到指定jar包位置,点击OK即可

image-20230513122240149

⑧点击"OK",结束配置

image-20230513122349728

6 SQL语言分类

SQL : 结构化查询语言,(Structure Query Language),专门用来操作/访问数据库的通用语言。

  • DDL(Data Define Languge):数据对象定义语言

    ​ CREATE、DROP、ALTER

  • DML(Data Manipulate Language):数据操作语言

    ​ INSERT、UPDATE、DELETE、SELECT

    • DQL(Data Query Language):数据查询语言

      ​ SELECT

  • TCL(Transaction Control Language):事务控制语言

    ​ COMMIT、ROLLBACK

7 MySQL语法规范

  • 不区分大小写,但建议关键字大写,表名、列名小写。
  • 多个关键字用空格分隔。
  • 使用的符号一定是英文符号。
  • 每条命令最好用(;)分号结尾。
  • 每条命令根据需要,可以进行缩进或换行。
  • 不要使用MySQL关键字作为列名或表名。
  • 注释
    • 单行注释:#注释文字 CTRL+/
    • 单行注释:-- 注释文字
    • 多行注释:/* 注释文字 */ CTRL+SHIFT+/

8 数据库DDL语言

8.1 数据库的管理

8.1.1 查看所有数据库

#查看所有数据库
SHOW DATABASES;

8.1.2 建库

8.1.2.1 格式
  • 默认字符集格式 。
CREATE DATABASE [IF NOT EXISTS] 数据库名;
  • 指定字符集格式 。
CREATE DATABASE [IF NOT EXISTS] 数据库名 CHARSET=utf8;
8.1.2.2 例子

①创建默认字符的数据库db1。

#创建数据库db1
CREATE DATABASE db1;

②创建字符集为GBK的数据库db2。

#创建数据库db2,并指定编码为GBK
CREATE DATABASE db2 CHARSET GBK;

③查看所有数据库。

#查看所有数据库
SHOW DATABASES;

④再次创建db2库,但是如果库存在,则不报错

#创建数据库db2,并指定编码为utf8
CREATE DATABASE IF NOT EXISTS db2 CHARSET GBK;

8.1.3 查询数据库信息

8.1.3.1 格式
SHOW CREATE DATABASE 数据库名;
8.1.3.2 例子
  • 查询db1数据库信息。
#查询db1的数据库信息
SHOW CREATE DATABASE db1;
  • 查询db2数据库信息。
#查询db2的数据库信息
SHOW CREATE DATABASE db2;

8.1.4 删库

8.1.4.1 格式
DROP DATABASE 数据库名;
8.1.4.2 例子
  • 删除名称是db1的数据库。
#删除数据库db1
DROP DATABASE db1;

8.2 数据表的管理

8.2.1 使用数据库

  • 执行表相关的SQL之前必须使用了某个数据库.
#进入db2数据库
USE db2;

8.2.2 查看所有表

#查看所有表
SHOW TABLES;

8.2.3 创建表

8.2.3.1 格式
  • 如果建库时制定了编码,那么建表时,不指定编码就会使用数据库指定的编码
CREATE TABLE 表名(字段1名 类型,字段2名 类型,.....
)[CHARSET=utf8/gbk];
8.2.3.2 例子

①创建person表,有name和age字段,编码为utf8

CREATE TABLE person(name VARCHAR(32),age INT
) CHARSET = utf8;

②创建student表,有name,chinese,math,english字段,编码为默认编码

CREATE TABLE student(name VARCHAR(32),chinese INT,math INT,english INT
);

③查询所有表

#查看所有表
SHOW TABLES;

8.2.4 查看表结构

8.2.4.1 格式
SHOW CREATE TABLE 表名;
8.2.4.2 例子
  • 查看person表结构
#查看person表结构
SHOW CREATE TABLE person;

8.2.5 查询表字段

8.2.5.1 格式
DESC 表名;
8.2.5.2 例子
  • 查询student表的字段
#查询student表的字段
DESC student;

8.2.6 删除表

8.2.6.1 格式
DROP TABLE 表名;
8.2.6.2 例子
  • 删除名称是student的表
#删除student表
DROP TABLE student;

9 常见问题

9.1 安装数据库常见问题

①没有足够的权限

如果您没有足够的权限来安装MySQL,则可能会遇到此错误。请确保您具有管理员权限或root权限来安装MySQL。

解决方案:使用管理员或root权限启动安装程序,或者将您的帐户添加到具有适当权限的组中。

②端口已被占用

在安装MySQL时,您需要指定一个端口。如果此端口已经被另一个应用程序占用,则安装过程将失败。

解决方案:选择一个未被其他应用程序占用的端口,并在安装过程中进行设置。

③数据目录不可写

当您设置MySQL数据目录时,如果没有正确配置文件夹权限,则可能会出现此错误。

解决方案:确保您正在以管理员身份运行安装程序,并为数据目录设置了正确的文件夹权限。

④忘记设置root密码

在安装MySQL时,必须设置root密码。如果您忘记了密码,则无法访问MySQL服务。

解决方案:在安装期间,请确保您记住了root密码或保存它在安全的地方。

⑤防火墙阻止连接

如果您的防火墙阻止MySQL连接,则可能无法与MySQL服务器通信。

解决方案:请确保防火墙已配置以允许MySQL连接。

9.2 DDL操作常见问题

①语法错误

当您尝试创建表或执行其他DDL操作时,如果出现语法错误,则会收到此错误消息。

解决方案:仔细检查您的SQL语句,并确保它们符合MySQL语法。

②表已存在

当您尝试创建一个已经存在的表时,将出现此错误消息。

解决方案:请检查您的SQL语句,并确保您正在使用唯一的表名。

③主键约束冲突

如果您尝试将重复值插入主键列中,或者尝试更新一个具有重复主键值的行,则会发生主键约束冲突。

解决方案:删除重复的行或更改主键值以解决冲突问题。

④外键约束冲突

如果您尝试插入一个不匹配的外键值,或者尝试删除一个具有相关记录的行,则会发生外键约束冲突。

解决方案:确保您的外键值与主要表中的值匹配,并在删除行之前先删除相关记录。

⑤空间不足

如果您正在向表中添加大量数据,但磁盘空间不足,则可能会出现此错误。

解决方案:释放磁盘空间或增加可用空间。

10 总结

①数据库相关概念

数据库是一个组织数据的集合。它可以存储和管理大量数据,并提供数据检索、排序、更新等操作。常见的关系型数据库管理系统(RDBMS)包括MySQL、Oracle、SQL Server等。

②MySQL的安装

  • MySQL是一种流行的开源关系型数据库管理系统。要安装MySQL,请按照以下步骤进行:
    • 下载MySQL并安装;
    • 启动MySQL服务;
    • 在命令行或图形用户界面中连接到MySQL服务器;
    • 创建数据库和表格;
    • 开始使用MySQL。

③访问数据库服务器

​ 要在MySQL中访问数据库服务器,您需要使用MySQL客户端工具(如MySQL Workbench、phpMyAdmin等)或命令行接口(如MySQL Shell)。在连接到数据库服务器之前,请确保您已经安装了MySQL,并知道MySQL服务器地址、用户名和密码。

④MySQL的语法规范

  • MySQL语法规范是一组定义了如何编写有效SQL查询的规则。以下是一些MySQL语法规范的基本要点:

    • SQL语句应以分号(;)结束;

    • 所有关键字应该大写;

    • 多个关键字之间应该用空格隔开;

    • 为了增加可读性,请使用缩进和换行符;

    • 不要使用MySQL保留字作为列名或表名;

    • 在编写复杂查询时,请使用括号明确操作次序。

⑤DDL语言

  • DDL(Data Definition Language)是一种用于定义数据库结构的语言。DDL包括以下关键字:

    • CREATE:创建新表格、视图或其他数据库对象;

    • ALTER:修改已有的表格、视图或其他数据库对象;

    • DROP:删除表格、视图或其他数据库对象;

这篇关于MySQL数据库的基本概念(day23)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1135559

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

[MySQL表的增删改查-进阶]

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 💻💻💻数据库约束 🔭🔭🔭约束类型 not null: 指示某列不能存储 NULL 值unique: 保证某列的每行必须有唯一的值default: 规定没有给列赋值时的默认值.primary key:

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就