数据库(MySQL库表操作)

news2025/1/16 1:55:44

目录

1.1 SQL语句基础(SQL命令)

1.1.1 SQL的简介

1.1.2 SQL语句的分类

1.1.3 SQL语句的书写规范

1.2 数据库操作

1.2.1 查看

1.2.2 自建库

1.2.3 切换数据库

1.2.4 删库

1.3 MySQL字符集

1.3.1 MySQL字符集包括:

1.3.2 utf8 和 utf8mb4 的区别

1.4 数据库设计与数据库对象

1.4.1 数据库设计的步骤

1.4.2 如何绘制 E-R图

1.4.3 使用三大范式实现数据库设计规范化


1.1 SQL语句基础(SQL命令)

1.1.1 SQL的简介

SQL:

        结构化查询语言,在关系型数据库上执行数据操作,数据检索以及数据维护的标准化语言

程序员和数据库管理员可以完成以下任务:

        1、改变数据库的结构

        2、更改系统的安全设置

        3、增加用户对数据库或表的许可权限

        4、在数据库中检索需要的信息

        5、对数据库的信息进行更新、备份、还原

1.1.2 SQL语句的分类

在MySQL数据库中,SQL语句主要分为以下几类:

        1、DDL(Data Definition Language):

                数据库定义语言。定义对数据库对象(库、表、列、索引)的操作

                关键字CREATE、DROP、ALTER、RENAME等

        2、DML(Data Manipulation Language):

                数据操作语言。定义对数据库记录的操作

                关键字:INSERT、DELETE、UPDATE等

        3、DCL(Data Control Language):

                数据控制语言。定义对数据库、表、字段、用户的访问权限和安全级别

                关键字:GRANT、REVOKE等

        4、DQL(Data Query Language):

                数据查询语言。检索并获取数据

                关键字:SELECT

1.1.3 SQL语句的书写规范

在数据库系统中,SQL语句是不区分大小写的

字符串常量区则分大小写

SQL语句支持单行 | | 多行 书写,但是 必须以 ; 结尾

关键字 | | 词汇不能跨行书写

支持空格或缩进 以便提升语句的可读性

子语句通常位于独立行,便于编辑,提高可读性

1.2 数据库操作

1.2.1 查看

SHOW DATABASES [LIKE wild] ;

 功能:

        列出MySQL主机上的数据库

MySQL自带数据库(系统库):

        information_schema:

                主要存储了系统中的一些数据库对象信息,如用户信息、列消息、权限信息、字符集信息、分区信息等(数据字典)

        performance_schema:

                主要存储了数据库服务器的性能参数

        mysql:

                主要存储了系统的用户权限信息和帮助文档

        sys:

                5.7后新增加的产物,是 information_schema 和  performance_schema 的结合体,而且是以视图的形式显示出来的,查询出更加令人容易理解的数据

注意:

        原则:不轻易访问!不轻易修改!不轻易删除!

1.2.2 自建库

创建个人数据库

语法如下:
    CREATE DATABASE IF NOT EXISTS 数据库名;
    CREATE DATABASE IF NOE EXISTS MySchool_db;

一个数据库的构成由:

        表、视图、函数、查询、备份   所构成

        其中,表  则是重中之重

1.2.3 切换数据库

使用 USE  关键字进行切换

语法如下:
    USE 数据库名;

作用:

        指定数据库作为我们的默认数据库,用于后期建表或者其他的使用

其他:

        1、查看当前访问的数据库

SELECT DATABASE();

        2、查看当前数据库服务器的版本

SELECT VERSION();

        3、查看当前登录的用户

SELECT USER();

        4、查看用户详细信息

SELECT User,Host [,PassWord] FROM mysql.user;

1.2.4 删库

功能:

        删除当前数据库>>>里面的结构  数据  全部都会消失

语法如下;
    DROP DATABASE [IF EXISTS] 数据库名;

1.3 MySQL字符集

1.3.1 MySQL字符集包括:

        基字符集(CHARACTER)、校对规则(COLLATION)

latin1 支持西欧字符、希腊字符等
gbk 支持中文简体字符
big5 支持中文繁体字符
utf8 几乎支持全世界所有国家的字符
utf8mb4 是真正意义上的 uft-8

可以使用命令查看当前数据库默认的字符集

SHOW VARIABLES like 'character%';

 character_set_client MySQL :

        客户机字符集

character_set_connection:

        数据通信链路字符集,当MySQL客户机向服务器发送请求时,请求数据以该字符集进行编码

character_set_database:

        数据库字符集

1.3.2 utf8 和 utf8mb4 的区别

utf8mb4是MySQL 5.5.3后才增加的,其中 mb4 的意思是 most bytes 4 的意思,专门用来兼容四字节的 unicode

utf8mb4 是 utf8 的超集,除了将编码改为 utf8mb4 以外,不需要做任何其他的转换,但是为了节省空间一般使用 utf8 就行了

为什么 utf8 能够存储下大部分的中文汉字,为什么还要推出 utf8mb4 并且使用呢?

        因为MySQL支持的 utf8 编码最大字符长度为 3字节 ,如果遇到 4字节的宽字符就会插入异常。3字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中基本多文种平面(BMP)

        也就是说,任何不在基本多文本平面的 Unicode 字符,都无法使用 MySQL 的 utf8 字符集存储,包括Enoji表情,和很多不常用的汉字,以及任何新增的 Unicode 字符

        所以在8.0之后,都建议使用 utf8mb4 编码

1.4 数据库设计与数据库对象

1.4.1 数据库设计的步骤

为什么要进行数据的设计:

糟糕的数据库设计 VS 成熟的数据库设计

数据冗余,存储空间造成浪费 VS 节省数据的存储空间

内存、日志、空间浪费 VS 完整性高,数据原子性强

数据的更新和插入时时刻刻伴随着风险和异常 VS 方便进行数据库应用和系统开发

数据库设计的步骤如下:

        1、需求分析阶段:旨在分析客户的业务和数据处理的需求

        2、概要设计阶段:设计出数据库的E-R图,确认需求信息的 正确性 和 完整性

        3、详细设计阶段:运用数据库三大范式越泽,规范审核数据库结构,形成数据库模型图

        4、代码编写阶段:物理实现数据库,代码实现应用

        5、测试阶段:实践 || 实验

        6、备份还原阶段

1.4.2 如何绘制 E-R图

绘制 E-R实体关系图的三要素:

矩形   含义:实体,一般是名词
椭圆图    含义:实体,一般是名词
菱形    含义:关系,一般是动词

例题:酒店管理系统的基本功能

第一步:收集信息

        客人办理入住手续:后台数据库需要存放入住客人的信息以及客房信息

        客房信息:后台数据库需要存放客房的相关信息,如:客房号、床位数量、房间价格等

        客房管理信息:后台数据需要保存 客房类型信息 和 客房当前的状态信息

第二步:标识出实体

        客人:入住的旅客,办理入职手续时所填写的客户信息

        客房:酒店为客人提供休息的住所

第三步:标识出每个实体的属性

        客人属性:姓名,身份证号等

        客房属性:编号,名称,床位等

第四步:标识出实体和实体之间的关系

        实体和实体之间的关系,通常使用动词去描述

        入住关系

        客人和客房之间存在主从关系        客房为主  是 1   客人为从  是N

        1对N关系        被引用  引用关系

关系型数据库常见的映射基数

转化成 E-R图形成数据库模型图

        1、将各实体转化为对应的各表,将各属性对应成为各表的列

        2、标识出每个表的主键列(非空 + 唯一),一张表有且只有一个主键列

        3、在表之间建立主外键,形成引用被引用关系

1.4.3 使用三大范式实现数据库设计规范化

三大范式原则:

第一范式:

目标:

        确保每列的原子性

        如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式

第二范式:

        第二范式要求每个表只描述一件事情

第三范式:

        如果一个关系满足2 NF,并且除了主键意外的其他列都不传递依赖于主键列,则满足第三范式

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

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

相关文章

审稿周期短,且出版效率高的10本医学类中文核心期刊推荐!

常笑医学整理了适合医务工作者进行论文投稿的10本医学类中文核心期刊, 以及期刊详细参数,供大家参考。 1.《保健医学研究与实践》 (详细投稿信息请点击刊物名称查看) 简介:《保健医学研究与实践》是中国高校保健医学研…

SpringMVC环境搭配

概述 Spring MVC是Spring Framework提供的Web组件,全称是Spring Web MVC,是目前主流的实现MVC设计模式的框架,提供前端路由映射、视图解析等功能 mvc是什么 MVC是一种软件架构思想,把软件按照模型,视图,控制器来划分…

架构篇05-复杂度来源:高可用

文章目录 计算高可用存储高可用高可用状态决策小结 今天,我们聊聊复杂度的第二个来源高可用。 参考维基百科,先来看看高可用的定义。 系统无中断地执行其功能的能力,代表系统的可用性程度,是进行系统设计时的准则之一。 这个定义…

R2DBC-响应式数据库

简单查询 基于全异步,响应式,消息驱动 用法: 1.导入驱动:导入连接池(r2dbc-pool),导入驱动(r2dbc-mysql) 2. 使用驱动提供的api操作 pom.xml <properties><r2dbc-mysql.version>1.0.5</r2dbc-mysql.version> </properties><dependencies><d…

浙江建筑模板批发 — 广西源头厂家供应

在建筑行业中&#xff0c;高质量的模板材料对于确保工程的顺利进行和质量至关重要。我们的浙江强度高耐水建筑模板&#xff0c;直接来自广西的源头厂家&#xff0c;以其出色的性能和质量&#xff0c;成为建筑项目的理想选择。 产品特性 高强度稳定性&#xff1a;精选优质材料制…

Java--类继承

文章目录 主要内容一.学生类1.源代码代码如下&#xff08;示例&#xff09;: 2.结果 二.交通工具类1.源代码代码如下&#xff08;示例&#xff09;: 2.结果 三.圆类1.源代码代码如下&#xff08;示例&#xff09;: 2.结果 总结 主要内容 学生类交通工具类圆类 一.学生类 具有…

2.RHCSA启动配置

rht-clearcourse 0 #重置练习环境 rht-setcourse rh134 #切换CSA练习环境 cat /etc/rht #查看当前环境 virt-manager #打开KVM控制台 rht-vmctl start classroom #必做&#xff0c;start all不会包含classroom&#xff0c;需…

Appium 环境配置

Appium 是一个开源的、跨平台的测试框架&#xff0c;可以用来测试 Native App、混合应用、移动 Web 应用&#xff08;H5 应用&#xff09;等&#xff0c;也是当下互联网企业实现移动自动化测试的重要工具。Appium 坚持的测试理念&#xff1a; •无需用户对 App 进行任何修改或…

神策 CDP 获评中国软件评测中心「优秀大数据产品」

近日&#xff0c;中国软件评测中心在第十三届软件大会上揭晓了「第十五期优秀大数据产品、解决方案和案例测评结果」。神策数据基于客户旅程编排的客户数据平台&#xff08;CDP&#xff09;1.3.0 凭借出色的产品能力获评「优秀大数据产品」&#xff0c;并获得大数据基础设施类产…

[网络编程]UDP协议,基于UDP协议的回显服务器

目录 1.UDP协议介绍 2.UDP协议在Java中的类 2.1DatagramSocket类 2.2DatagramPacket 3.回显服务器 3.1Sever端 3.2Client端 1.UDP协议介绍 UDP协议是一种网络协议&#xff0c;它是无连接的&#xff0c;全双工&#xff0c;并且是面向数据报&#xff0c;不可靠的一种协议…

C语言实现简单的扫雷游戏

目录 1 -> test.c 2 -> game.c 3 -> game.h 1 -> test.c #define _CRT_SECURE_NO_WARNINGS 1#include "game.h"void menu() {printf("************************************\n");printf("********* 1.play ********\n&quo…

【51单片机】动态数码管

0、前言 参考&#xff1a; 普中51单片机开发攻略–A2.pdf 1、数码管介绍 上一章我们主要是介绍一位数码管的内部结构及控制原理。下面我们再来介 绍下多位数码管及动态显示原理的相关知识。 1.1 多位数码管简介 2、74HC245 和 74HC138 芯片介绍 2.1 74HC245 芯片简介 2.2 7…

JVM(上)

目录 一、JVM概述 一、JVM作用 二、JVM整体组成部分 二、JVM结构-类加载 一、类加载子系统概述 二、类加载过程 1.加载 2.链接 3.初始化&#xff08;类加载过程中的初始化&#xff09; 三、类加载器分类 大致分两类&#xff1a; 细致分类&#xff1a; 四、双亲委派机制 五、打…

线程和进程的区别(从JVM角度出发)

进程与线程的区别 线程具有许多传统进程所具有的特征&#xff0c;故又称为轻型进程(Light—Weight Process)或进程元&#xff1b;而把传统的进程称为重型进程(Heavy—Weight Process)&#xff0c;它相当于只有一个线程的任务。在引入了线程的操作系统中&#xff0c;通常一个进…

【Godot4自学手册】第二节主人公设置

继续学习Godot&#xff0c;今天是第二节的内容&#xff0c;本节主要完成游戏玩家的设置&#xff0c;将玩家展现在场景中。 一、新建一个主场景 首先在场景面板中单击2D场景&#xff0c;如图。 这样我们就有了一个2D场景&#xff0c;我们将Node2D重新命名为“Main”&#xff…

使用Nginx和Fancyindex组合搭建文件下载站点详细教程

目录 简介 TIPS 1.下载Nginx 2. 安装Fancyindex和Nginx-Fancyindex-Theme模块 2.1 安装编译工具和依赖 2.2 下载Fancyindex和Nginx-Fancyindex-Theme 2.3 编译Nginx并包括Fancyindex 3. 配置Nginx 4.体验 4.1light主题 4.2dark主题 后记 简介 当使用Nginx和Fancyinde…

【轮式平衡机器人】——角度/速度/方向控制分析软件控制框架

轮式平衡机器人具有自不稳定性&#xff0c;可类比一级倒立摆系统的控制方法&#xff0c;常见有反馈线性化方法、非线性PID控制、自适应控制、自抗扰控制&#xff0c;还有改进的传统缺乏对外界干扰和参数改变鲁棒性的滑模变结构控制。我们采用较为简单的双闭环PID控制实现平衡模…

C++入门学习(九)浮点数

浮点型主要有两种&#xff1a; floatdouble 占用空间有效数字范围float4字节7位有有效数字double8字节15~16位有效数字 为什么float 有效数位 7 or 8 位&#xff0c;double 15 or 16 位&#xff1f; https://zhidao.baidu.com/question/1182732476020869219.htmlhttps://zhid…

Arduino开发实例-SDS011粉尘检测传感器驱动

SDS011粉尘检测传感器驱动 文章目录 SDS011粉尘检测传感器驱动1、SDS011介绍2、硬件准备及接线3、代码实现在本文中,将介绍如何使用 Arduino 动粉尘传感器 SDS011 制作空气质量监测系统。 1、SDS011介绍 粉尘本身根据它们的大小分为两类。 直径在2.5至10微米之间的称为粗颗粒…

【算法详解】力扣162.寻找峰值

​ 目录 一、题目描述二、思路分析 一、题目描述 力扣链接&#xff1a;力扣162.寻找峰值 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums&#xff0c;找到峰值元素并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回 任何一个…