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

news2024/11/13 14:44:46

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体系架构!!!(day22)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Z0412_J0103/article/details/141679419下篇文章: SQL的高级查询练习知识点(day24)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Z0412_J0103/article/details/141713435

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

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

相关文章

linux基础IO——动静态库——实现与应用学习、原理深入详解

前言:本节内容是基础IO部分的动静态库。 本节内容, 我们将站在实现者的角度上自己实现一下动静态库, 并且会站在使用者的角度上使用我们自己实现的库。过程中牵扯到许多新的知识, 最后我们会重谈一下我们的进程。 理解一下有了动静…

如何开发潜在客户

本文将介绍发掘潜在客户的关键步骤,其中利用企搜客大数据拓客,是相对高效的工具模式,快速开发潜在客户拓展业务。 一、潜在客户开发的重要性 潜在客户开发是企业营销中至关重要的一环。通过精准的目标客户定位和有效的开发策略,企…

J.U.C Review - CopyOnWrite容器

文章目录 什么是CopyOnWrite容器CopyOnWriteArrayList优点缺点源码示例 仿写:CopyOnWriteMap的实现注意事项 什么是CopyOnWrite容器 CopyOnWrite容器是一种实现了写时复制(Copy-On-Write,COW)机制的并发容器。在并发场景中&#…

2024年高教社杯数学建模国赛E题解题思路

E 题 交通流量管控 问题背景 随着城市化进程的加快、机动车的快速普及,以及人们活动范围的不断扩大,城市道路交通拥堵问题日渐严重,即使在一些非中心城市,道路交通拥堵问题也成为影响地方经济发展和百姓幸福感的一个“痛点”&a…

SpringDataJPA系列(6)Entiry注解使用

SpringDataJPA系列(6)Entiry注解使用 JPA协议规定 实体是直接进行数据库持久化操作的领域对象,必须通过 Entity 注解进行标示实体必须有一个 public 或者 protected 的无参数构造方法实体里面必须要有一个主键,主键标示的字段可以是单个字段&#xff0…

《机器学习》—— PCA降维

文章目录 一、PCA降维简单介绍二、python中实现PCA降维函数的介绍三、代码实现四、PCA降维的优缺点 一、PCA降维简单介绍 PCA(主成分分析,Principal Component Analysis)是一种常用的数据降维技术。它通过线性变换将原始数据转换到新的坐标系…

持久化分析

目录 介绍步骤WMI持久化分析注册表映像劫持IFEO持久化 介绍 1、WMI 的全称是 Windows Management Instrumentation,即 Windows 管理规范,在 Windows 操作系统中,随着 WMI 技术的引入并在之后随着时间的推移而过时,它作为一项功能…

Linux【6】系统

时间日期 date日期 cal——当月日历 cal -y 今年的日历 磁盘占用df du df 剩余空间 du 目录下的文件大小 进程ps ps aux a——其他用户 u——详细状态 x——没有控制终端 只看CPU占用高的进程top kill pid代号 ——杀死程序 通配符(简略版) …

每日OJ_牛客_解读密码(简单模拟)

目录 牛客_解读密码(简单模拟) 解析代码 牛客_解读密码(简单模拟) 解读密码__牛客网 解析代码 题目意思:给定字符串中包含其他符合一级数字,将字符串中数字解析出来。 解析步骤: 题目明确…

LabVIEW声发射数据采集系统开发

声发射(Acoustic Emission, AE)技术是材料检测中的一种无损检测方法,广泛用于结构健康监测。本文将介绍一个基于LabVIEW的声发射数据采集系统的真实案例,涵盖工作原理、开发流程、硬件选型、注意事项及难点。该系统通过LabVIEW平台…

LlamaIndex 使用 RouterOutputAgentWorkflow

LlamaIndex 中提供了一个 RouterOutputAgentWorkflow 功能,可以集成多个 QueryTool,根据用户的输入判断使用那个 QueryEngine,在做查询的时候,可以从不同的数据源进行查询,例如确定的数据从数据库查询,如果…

2024年装电脑,就认准这几个型号,能避坑!

前言 小伙伴是否都会觉得,自己又不懂电脑,跑电脑城去装机又怕被坑。这时候只能找熟人给装机,至少……熟人应该不会坑自己吧?! 这不,小白电脑技术的抖音评论区上就有这么一条评论: 这哥们找一熟…

最新HTML5中的视频和音频讲解

第6章 HTML5中的视频和音频 H5新增video,audio,播放视频和音频,统称为多媒体元素。 6.1 多媒体元素基本属性 video用于电影文件和其他视频流的播放。 audio用于音乐文件和其他音频流的播放。 video的属性 src:文件路径,本地或者网络上。…

Android经典实战之SurfaceView原理和实践

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 SurfaceView 是一个非常强大但也相对复杂的 UI 组件,特别适用于对性能要求较高的绘制任务,如视频播放、游戏等。 1. Su…

Java 方法的定义

目录 1.Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段。 2.方法包含一个方法头和方法体,下面是一个方法的所有部分: (1)修饰符:可选。告诉编译器如何调用该方法,定义了该…

Java笔试面试题AI答之JDBC(2)

文章目录 7. 列出Java应该遵循的JDBC最佳实践?8. Statement与PreparedStatement的区别,什么是SQL注入,如何防止SQL注入Statement与PreparedStatement的区别什么是SQL注入如何防止SQL注入 9. JDBC如何连接数据库?1. 加载JDBC驱动程序2. 建立数…

Python复杂网络社区检测:并行谱聚类算法设计与多种算法应用实战研究

原文链接:https://tecdat.cn/?p37574 分析师:Leiyun Liao 在当今的网络科学领域,复杂网络中的社区检测成为了一个至关重要的研究课题。随着信息技术的飞速发展,各种大规模网络不断涌现,如社交网络、生物网络等。准确地…

chapter12-异常(Exception)——(作业)——day15

目录 457-异常课后作业 458-异常课后作业2 457-异常课后作业 package chapter12.exception.homework;/*** author LuHan* version 1.0*/ public class Homework01 {public static void main(String[] args) {try {if(args.length!2){throw new ArrayIndexOutOfBoundsException…

立创商城9.9免邮活动开始啦!

从9月2日起,立创商城推出免邮活动,每月在领券中心>精选专区领取免邮券,即可享受满9.9元使用免邮券服务。 未注册的用户,可扫描下方二维码注册哦~

2024高教社杯数学建模国赛ABCDE题选题建议+初步分析

提示&#xff1a;DS C君认为的难度&#xff1a;C<B<A&#xff0c;开放度&#xff1a;A<C<B 。 D、E题推荐选E题&#xff0c;后续会直接更新E论文和思路&#xff0c;不在这里进行选题分析&#xff0c;以下为A、B、C题选题建议及初步分析 A题&#xff1a;“板凳龙”…