当前位置: 首页 > news >正文

数据库(MySQL库表操作)

目录

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,并且除了主键意外的其他列都不传递依赖于主键列,则满足第三范式

相关文章:

数据库(MySQL库表操作)

目录 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 和 u…...

内网穿透的应用-如何使用Docker部署Redis数据库并结合内网穿透工具实现公网远程访问

文章目录 前言1. 安装Docker步骤2. 使用docker拉取redis镜像3. 启动redis容器4. 本地连接测试4.1 安装redis图形化界面工具4.2 使用RDM连接测试 5. 公网远程访问本地redis5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 前言 本文主要介绍如何在Ub…...

计算机网络复试

第1章 概述 时延:发送(传输)时延传播时延 链路中每多一个路由器,就增加一个分组的发送时延 第2章 物理层 2.4 编码与调制->编码(基带调制)->曼彻斯特编码 ->带通调制->混合调制->正交振幅调制QAM 信道极限容量 奈氏准则 无噪声最大速…...

Android学习之路(23)组件化框架ARouter的使用

一、功能介绍 支持直接解析标准URL进行跳转,并自动注入参数到目标页面中支持多模块工程使用支持添加多个拦截器,自定义拦截顺序支持依赖注入,可单独作为依赖注入框架使用支持InstantRun支持MultiDex(Google方案)映射关系按组分类、多级管理&…...

HCIA vlan练习

目录 实验拓扑 实验要求 实验步骤 1、交换机创建vlan 2、交换机上的各个接口划分到对应vlan中 3、trunk干道 4、路由器单臂路由 5、路由器DHCP设置 实验测试 华为交换机更换端口连接模式报错处理 实验拓扑 实验要求 根据图划分vlan,并通过DHCP给主机下发…...

Ubuntu下安装Gazebo仿真器

Ubuntu下安装Gazebo仿真器 Gazebo仿真平台通常需要配合ROS使用,因此需要先安装ROS。可以参考ROS安装教程 首先安装一些必要的工具 sudo apt-get update sudo apt-get install lsb-release wget gnupg修改源 sudo wget https://packages.osrfoundation.org/gazebo…...

Chatgpt+Comfyui绘图源码说明及本地部署文档

其他文档地址: ChatgptComfyui绘图源码运营文档 ChatgptComfyui绘图源码线上部署文档 一、源码说明 1、源码目录说明 app_home:app官网源码chatgpt-java:管理后台服务端源码、用户端的服务端源码chatgpt-pc:电脑网页前端源码cha…...

ts中 any 和 unknown 有什么区别,分别什么时候使用

any 和 unknown 都是顶级类型 top type,也就是所有类型的父类型 (1)any代表任意类型, 是不做任何检查,相当于不使用 ts,不建议使用,使用 a as any as string 之类的,可以让类型检查…...

C++中命名空间、缺省参数、函数重载

目录 1.命名空间 2.缺省参数 3.函数重载 1.命名空间 在C中定义命名空间我们需要用到namespace关键字,后面跟上命名空间的名字,结构框架有点类似结构体(如图所示) 上面的代码我一一进行讲解: 1.我们先来说第三行和main函…...

【笔记】Helm-3 主题-12 Helm插件指南

Helm插件指南 Helm插件是一个可以通过helm CLI访问的工具,但不是Helm的内置代码。 已有插件可以搜索GitHub。 https://github.com/search?qtopic%3Ahelm-plugin&typeRepositories 该指南描述如何使用和创建插件。 概述 Helm插件是与Helm无缝集成的附加工具…...

2023.1.17 关于 Redis 持久化 AOF 策略详解

目录 引言 AOF 策略 实例演示一 缓冲区 重写机制 手动触发 自动触发 AOF 重写流程 实例演示二 引言 Redis 实现持久化的两大策略 RDB ——> Redis DataBase(定期备份)AOF ——> Append Only File(实时备份) 注意&…...

P2PNet推理和训练

0、环境信息 Package Version ------------------------ ------------ certifi 2023.11.17 charset-normalizer 3.3.2 contourpy 1.2.0 cycler 0.12.1 easydict 1.11 filelock …...

pyexecjs原生js加密算法逆向

查看必要参数,得知sign签名 从堆栈自上到下依次查找源代码 如下图,找到后打上断点,得知e是输入的参数,说明b()是一个加密函数,点击进入查看底层函数 把1117这个函数内的三个方法CV到python中的一个js文件中&#xff0c…...

数据结构Java版(4)——链表

一、概述 链表是一种常见的数据结构,用于存储一系列具有相同类型的数据元素。它由多个节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。 链表与数组不同,它的节点在内存中不是连续存储的,而是通过每个节点中的指针…...

cfssl简单使用

1、安装 方式1:直接下载 详见:手动生成证书 | Kubernetes # 1、下载cfssl、cfssljson、cfssl-certinfo # cfssl:用于签发证书 # cfssljson:将cfssl签发生成的证书(json格式)变成文件承载式文件 # cfssl-certinfo:验…...

基于Word2vec词聚类的关键词实现

一.基于Word2vec词聚类的关键词步骤 基于Word2Vec的词聚类关键词提取包括以下步骤: 1.准备文本数据:收集或准备文本数据,可以是单一文档或文档集合,涵盖关键词提取的领域。2.文本预处理:清洗文本数据,去除…...

开源项目_大模型应用_Chat2DB

1 基本信息 项目地址:https://github.com/chat2db/Chat2DBStar:10.7K 2 功能 Chat2DB 是一个智能且多功能的 SQL 客户端和报表工具,适用于各种数据库。 对于那些平时会用到数据库,但又不是数据库专家的程序员来说,…...

【线性代数与矩阵论】范数理论

范数理论 2023年11月16日 文章目录 范数理论1. 向量的范数2. 常用向量范数3. 向量范数的等价性4. 矩阵的范数5. 常用的矩阵范数6. 矩阵范数与向量范数的相容性7. 矩阵范数诱导的向量范数8. 由向量范数诱导的矩阵范数9. 矩阵范数的酉不变性10. 矩阵范数的等价性11. 长方阵的范数…...

【C++】priority_queue模拟实现过程中值得注意的点

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 前言 本篇文章旨在记录博主在模…...

Git提交 ssh: connect to host github.com port 22: Connection timed out解决方案

你们好,我是金金金。 场景 之前都是好好的,不知道今天为什么提交代码就这样了 排查 根据英文可以看出,ssh端口号被拒绝了,22号端口不行,那就换一个端口 造成error的原因 ssh端口被拒绝 解决 找到.ssh文件&#xff…...

Java调用WebService接口,SOAP协议HTTP请求返回XML对象

Java调用Web service接口SOAP协议HTTP请求,解析返回的XML字符串: 1. 使用Java的HTTP库发送SOAP请求,并接收返回的响应。 可以使用Java的HttpURLConnection、Apache HttpClient等库。 2. 将返回的响应转换为字符串。 3. 解析XML字符串&…...

Django框架二

一、模型层及ORM 1.模型层定义 负责跟数据库之间进行通信 2.Django配置mysql 安装mysqlclient,mysqlclient版本最好在13.13以上 pip3 install mysqlclient DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: "mysite1",USER:root,PASSWO…...

工业相机与镜头参数及选型

文章目录 1、相机成像系统模型1.1 视场1.2 成像简化模型 2、工业相机参数2.1 分辨率2.2 靶面尺寸2.3 像元尺寸2.4 帧率/行频2.5 像素深度2.6 动态范围2.7 信噪比2.8 曝光时间2.9 相机接口 3、工业镜头参数3.1 焦距3.2 光圈3.3 景深3.4 镜头分辨率3.5 工作距离(Worki…...

VSCode使用Makefile Tools插件开发C/C++程序

提起Makefile,可能有人会觉得它已经过时了,毕竟现在有比它更好的工具,比如CMake,XMake,Meson等等,但是在Linux下很多C/C源码都是直接或者间接使用Makefile文件来编译项目的,可以说Makefile是基石…...

用C语言验证“三门定理”

#include <stdio.h> #include <stdbool.h> #include <stdlib.h> #include <time.h>// 一个源自博弈论的数学游戏问题&#xff1a; // 参赛者会看见三扇门&#xff0c; // 其中一扇门的里面有一辆汽车&#xff0c; // 选中里面是汽车的那扇门&#xff0…...

计算机网络-分层结构,协议,接口,服务

文章目录 总览为什么要分层怎样分层正式认识分层概念小结 总览 为什么要分层 发送文件前要做的准备工作很多 把这个准备工作分层小问题解决&#xff0c;也就分层解决 怎样分层 每层相互独立&#xff0c;每层做的工作不同 界面自然清晰&#xff0c;层与层之间的接口能够体现…...

前端开发 2: CSS

在前端开发中&#xff0c;CSS&#xff08;层叠样式表&#xff09;是一种用于描述网页样式的语言。它控制着网页的布局、颜色、字体等外观效果。在本篇博客中&#xff0c;我将为你介绍 CSS 的基础知识和常用技巧&#xff0c;帮助你更好地掌握前端开发中的样式设计。 CSS 基础知…...

嵌入式-Stm32-江科大基于标准库的GPIO4个小实验

文章目录 一 、硬件介绍二 、实验&#xff1a;LED闪烁、LED流水灯、蜂鸣器提示2.1 需求1&#xff1a;面包板上的LED以1s为周期进行闪烁。亮0.5s,灭0.5s.....2.2 需求2: 8个LED实现流水灯2.3 需求3&#xff1a;蜂鸣器不断地发出滴滴、滴滴.....的提示音。蜂鸣器低电平触发。 三、…...

HackTheBox - Medium - Linux - Noter

Noter Noter 是一种中型 Linux 机器&#xff0c;其特点是利用了 Python Flask 应用程序&#xff0c;该应用程序使用易受远程代码执行影响的“节点”模块。由于“MySQL”守护进程以用户“root”身份运行&#xff0c;因此可以通过利用“MySQL”的用户定义函数来利用它来获得RCE并…...

Uniapp多选Popup(弹出层)

uniapp中多选组件很少&#xff0c;故个人简单开发了一个&#xff0c;可简单使用&#xff0c;也可根据个人需求稍微改进 支持的功能 单选多选&#xff08;默认&#xff09;限制选择数量默认选中禁用选项 属性说明 属性默认值说明singlefalsetrue为开启单选&#xff0c;否则为…...