1. MySQL 数据库的基本操作

文章目录

  • 【 1. SQL 的书写规则 】
    • 大小写规则
    • 常量的表示
    • 注释
  • 【 2. RDBMS 术语 】
    • Table 表
    • Filed 域/字段
    • Column 列
    • Record 记录
    • NULL 空值
    • Constraint 约束
    • 数据的完整性
    • 范式
  • 【 3. 数据库基本操作函数 】
    • 3.1 SHOW DATABASES 显示数据库
    • 3.2 CREATE DATABASE 创建数据库
    • 3.3 ALTER DATABASE 修改数据库
    • 3.4 DROP DATABASE 删除数据库
    • 3.5 USE 选择数据库
    • 3.6 HELP 系统帮助

【 1. SQL 的书写规则 】

  • SQL 语句以 分号;结尾

大小写规则

在这里插入图片描述

  • SQL 的 关键字、函数名、列名、索引名、存储函数、存储过程和事件的名字不区分大小写
  • 插入到表中的数据、触发器的名字区分大小写。

常量的表示

  • 字符串的书写需要 用英文单引号 ’ 将字符串括起来表示 ,像 ‘abc’ 这样。
  • 在MySQL 中 用倒引号 ` 把表名和列名括起来
  • 单词用半角空格(即英文空格)或者换行来分隔
  • 每一个数据库都有唯一的名称,即 数据库名称不重复

注释

  • 单行注释可以使用 #注释符,#注释符后直接加注释内容。
  • 单行注释可以使用 -- 注释符,注意–后有一个空格。
  • 多行注释使用/* */注释符。/*用于注释内容的开头,*/用于注释内容的结尾,注释内容写在两者之间,可以跨多行。

【 2. RDBMS 术语 】

  • RDBMS(Relational Database Management System)关系数据库管理系统

Table 表

  • 在 RDBMS 中,数据被存储在一种称为 表(Table) 的数据库对象中,它和 Excel 表格类似,都由许多行(Row)和列(Column)构成。每一行都是一条数据,每一列都是数据的一个属性 ,整个表就是若干条相关数据的集合。
  • 实例:一个名为“website”的网站信息表
    在这里插入图片描述

Filed 域/字段

  • 每个表都由若干列构成,每一列都称为一个 字段(Field),上表 website 所包含的字段有 id、name、url、age、alexa、uv 和 country。
  • 字段用来维护数据表中每一条数据(记录)的特定信息。

Column 列

  • 列(Column)是从垂直方向观察表中的数据,它包含了与某个字段相关联的所有信息。
  • 实例
    website 表中有一列为 url,它表示网站的地址,如下
    在这里插入图片描述

Record 记录

  • 数据表中的每一行数据都称为一条 记录(Record),有多少行数据就有多少条记录。
  • 字段是从垂直方向看表中的数据,记录是从水平方向看表中的数据。
  • 实例
    上表website 共有 8 条记录,以下是第 3 条记录:
    在这里插入图片描述

NULL 空值

  • 字段的取值可以为 NULL,此时意味着该字段是空的,没有任何值,所以被称为 NULL 空值
  • NULL 和零值不一样,和包含空白符(空格、缩进、换行等)的字段也不一样,NULL 字段是指在添加记录的时候 留空的字段,也即 不为该字段指定任何值

Constraint 约束

  • 约束(Constraint) 是指表的数据 列必须 强行遵守的规则,这些规则用于限制插入表中的数据的值,这样能够确保每份数据的准确定和可靠性。
  • 约束可以是列级别,也可以是表级别;列级约束仅作用于某一列,而表级约束则作用于整张表。

数据的完整性

  • 每个 RDBMS 都存在以下几种类别的数据完整性:
    • 实体完整性:表中的一行(一条记录)代表一个实体,表中不能有重复的行
    • 域完整性:域也即字段,域完整性用来保证字段的取值是合理的
    • 引用完整性:一个表中的字段可以引用另外一个表中的记录。如果某条记录被另外一个表中的字段引用,那么该记录不能被删除
    • 自定义完整性:除了以上三种基本的完整性约束,不同版本的 RDBMS 在实现时,还可以根据其具体的应用环境,自己制定一些其它的完整性约束。

范式

  • 设计关系型数据库时,需要遵守一些特定的规范才能设计出合理的数据库,这些规范就称为 范式 ,满足不同程度的规范就是不同的范式。范式的目的在于:
    ① 消除冗余数据,比如,不应该将两份相同的数据存储到不同的表中;
    ② 确保数据之间的关联性是有意义的。
    以上两点不但能减少数据库占用的存储空间,还能确保数据之间有清晰的逻辑关系。
  • 关系型数据库之父 Edgar Frank “Ted” Codd 提出了六种范式,但是从长期实践看,三种范式更具有实际的意义。满足最低要求的叫 第一范式,简称 1NF ;在第一范式的基础上满足进一步要求的称为 第二范式,简称 2NF ;以此类推,在第二范式的基础上满足更加进一步要求的称为 第三范式,简称 3NF遵守的范式级别越高,数据的冗余越少下一级别的范式包含上一级别的所有范式;也就是说,范式级别越高越严格

【 3. 数据库基本操作函数 】

3.1 SHOW DATABASES 显示数据库

  • 基本语法
    • LIKE 从句是可选项,用于匹配指定的数据库名称。LIKE 从句可以部分匹配,也可以完全匹配。
    • 数据库名由单引号’ '包围。
SHOW DATABASES [LIKE '数据库名'];
  • 实例1:查看所有数据库
    SHOW DATABASES;
    在这里插入图片描述

在 MySQL 数据库中存在系统数据库和自定义数据库,系统数据库是在安装 MySQL 后系统自带的数据库,自定义数据库是由用户定义创建的数据库。系统数据库如下:

  • information_schema:主要存储了系统中的一些数据库对象信息,比如用户表信息、列信息、权限信息、字符集信息和分区信息等。
  • mysql:MySQL 的核心数据库,类似于 SQL Server 中的 master 表,主要负责存储数据库用户、用户访问权限等 MySQL 自己需要使用的控制和管理信息。常用的比如在 mysql 数据库的 user 表中修改 root 用户密码。
  • performance_schema:主要用于收集数据库服务器性能参数。
  • sakila:MySQL 提供的样例数据库,该数据库共有 16 张表,这些数据表都是比较常见的,在设计数据库时,可以参照这些样例数据表来快速完成所需的数据表。
  • sys:MySQL 5.7 安装完成后会多一个 sys 数据库。sys 数据库主要提供了一些视图,数据都来自于 performation_schema,主要是让开发者和使用者更方便地查看性能问题。
  • world:world 数据库是 MySQL 自动创建的数据库,该数据库中只包括 3 张数据表,分别保存城市,国家和国家使用的语言等内容。
  • 实例2:使用 LIKE 从句 匹配查找数据库。
    先通过 CREATE DATABASE 数据库名; 创建三个数据库,名字分别为 test_db、db_test、db_test_db。
    • 完全匹配
      SHOW DATABASES LIKE 'test_db';
      在这里插入图片描述
    • 包含匹配
      SHOW DATABASES LIKE '%test%';
      在这里插入图片描述
    • 开头匹配
      SHOW DATABASES LIKE 'db%';
      在这里插入图片描述
    • 结尾匹配
      SHOW DATABASES LIKE '%db';
      在这里插入图片描述

3.2 CREATE DATABASE 创建数据库

  • 基本语法
    • [ ]中的内容是可选的。
    • <数据库名>:创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量要有实际意义。注意在 MySQL 中不区分大小写。
    • IF NOT EXISTS:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。
    • [DEFAULT] CHARACTER SET:指定数据库的字符集,字符集是用来定义 MySQL 存储字符串的方式。指定字符集的目的是为了避免在数据库中存储的数据出现乱码的情况。如果在创建数据库时不指定字符集,那么就使用系统的默认字符集。
    • [DEFAULT] COLLATE:指定字符集的默认校对规则,定义了比较字符串的方式
CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>] 
[[DEFAULT] COLLATE <校对规则名>];
  • 实例1:最简单的创建 MySQL 数据库的语句。
    CREATE DATABASE mytest;
    “Query OK, 1 row affected (0.14 sec);”提示中,“Query OK”表示上面的命令执行成功,“1 row affected”表示操作只影响了数据库中一行的记录,“0.14 sec”则记录了操作执行的时间。
    在这里插入图片描述
    若再次输入CREATE DATABASE test_db;语句,则系统会给出错误提示信息,提示不能创建“test_db”数据库,数据库已存在。这是因为 MySQL 不允许在同一系统下创建两个相同名称的数据库。故可以加上 IF NOT EXISTS 语句 CREATE DATABASE IF NOT EXISTS test_db; 避免此类错误
    在这里插入图片描述

3.3 ALTER DATABASE 修改数据库

  • 在 MySQL 数据库中 只能对数据库使用的 字符集和校对规则 进行修改
  • 基本语法
    • ALTER DATABASE 用于更改数据库的全局特性。
    • 使用 ALTER DATABASE 需要获得数据库 ALTER 权限。
    • 数据库名称可以忽略,此时语句对应于默认数据库。
    • CHARACTER SET 子句用于更改默认的数据库字符集。
ALTER DATABASE [数据库名] { 
[ DEFAULT ] CHARACTER SET <字符集名> |
[ DEFAULT ] COLLATE <校对规则名>}
  • 实例1:
    • 查看 test_db 数据库的定义声明的执行结果如下所示:
      SHOW CREATE DATABASE test_db;
      在这里插入图片描述
    • 使用命令行工具将数据库 test_db 的指定字符集修改为 gb2312,默认校对规则修改为 gb2312_unicode_ci,输入 SQL 语句与执行结果如下所示:
      ALTER DATABASE test_db
      DEFAULT CHARACTER SET gb2312
      DEFAULT COLLATE gb2312_chinese_ci;
      在这里插入图片描述

3.4 DROP DATABASE 删除数据库

  • 执行命令 DROP DATABASE 删除数据库后,会将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复;另外,在执行 DROP DATABASE 命令后,MySQL 不会给出任何提示确认信息。因此最好在删除数据库之前先将数据库进行备份。
  • 基本语法
    • <数据库名>:指定要删除的数据库名。
    • IF EXISTS:用于防止当数据库不存在时发生错误。
    • DROP DATABASE:删除数据库中的所有表格并同时删除数据库。使用此语句时要非常小心,以免错误删除。如果要使用 DROP DATABASE,需要获得数据库 DROP 权限。
DROP DATABASE [ IF EXISTS ] <数据库名>
  • MySQL 安装后,系统会自动创建名为 information_schema 和 mysql 的两个系统数据库,系统数据库存放一些和数据库相关的信息,如果 删除了这两个数据库,MySQL 将不能正常工作
  • 实例1
    创建1个数据库test_db_del,查看所有数据库,再把test_db_del删了,再查看所有数据库。
    在这里插入图片描述
    此时数据库 test_db_del 不存在。再次执行相同的命令,直接使用 DROP DATABASE test_db_del,系统会报错,如果使用IF EXISTS从句,可以防止系统报此类错误,如下所示:
    在这里插入图片描述

3.5 USE 选择数据库

  • 在 MySQL 中就有很多系统自带的数据库,那么在操作数据库之前就必须要确定是哪一个数据库。在 MySQL 中,USE 语句用来完成一个数据库到另一个数据库的跳转。
  • 当用 CREATE DATABASE 语句创建数据库之后,该数据库不会自动成为当前数据库,需要用 USE 来指定当前数据库。
  • 基本语法
    • 通知 MySQL 把<数据库名>所指示的数据库作为当前数据库。该数据库保持为默认数据库,直到语段的结尾,或者直到遇见一个不同的 USE 语句。 只有使用 USE 语句来指定某个数据库作为当前数据库之后,才能对该数据库及其存储的数据对象执行操作。
USE <数据库名>
  • 实例1
    使用命令行工具将数据库 test_db 设置为默认数据库。
    USE test_db;
    在执行选择数据库语句时,如果出现 “Database changed”提示,则表示选择数据库成功。
    在这里插入图片描述

3.6 HELP 系统帮助

  • MySQL 提供了 4 张数据表来保存服务端的帮助信息,即使用 HELP 语法查看的帮助信息。执行语句就是从这些表中获取数据并返回给客户端的,MySQL 提供的 4 张数据表如下:
    help_category:关于帮助主题类别的信息
    help_keyword:与帮助主题相关的关键字信息
    help_relation:帮助关键字信息和主题信息之间的映射
    help_topic:帮助主题的详细内容
  • 基本语法:
    • 查询内容为要查询的关键字,查询内容中不区分大小写。
    • 查询内容中可以包含通配符“%”和“_”,效果与 LIKE 运算符执行的模式匹配操作含义相同。例如,HELP ‘rep%’ 用来返回以 rep 开头的主题列表。
    • 查询内容可以使单引号引起来,也可以不使用单引号,为避免歧义,最好使用单引号引起来。
HELP 查询内容
  • 实例1:HELP contents 命令查看帮助文档的目录列表。
    在这里插入图片描述
  • 实例2:HELP Data Types;查看所支持的数据类型。
    根据上面运行结果列出的帮助文档目录列表,可以选择某一项进行查询。
    在这里插入图片描述
  • 实例3:HELP INT; 查看数INT据类型。
    运行结果中可以看到 INT 类型的帮助信息,包含Description类型描述、取值范围(有符号范围是-2147483648~2147483647,无符号范围是0~4294967295)和官方手册中 INT 类型说明的 URL。
    在这里插入图片描述
  • 实例4:查询某命令:使用 HELP CREATE TABLE; 命令查询创建数据表的语法。
    在这里插入图片描述

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

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

相关文章

回炉重造java----JUC(第一天)

目录 JUC前置知识①进程和线程的区别&#xff1f;②并行和并发的区别&#xff1f;③异步调用和同步调用的区别&#xff1f;④创建线程的方法⑤线程的上下文切换⑥TimeUtil⑦Interrupt⑧如何在一个线程中终止另外一个线程&#xff1f;⑨线程的状态共享模型之管程 阻塞式&#x…

LLVM后端__llc中值定义信息的查询方法示例

关于LiveIntervals pass中相关数据结构的含义&#xff0c;在寄存器分配前置分析(5.1) - LiveInterval这篇博客中已经做了清晰的讲解&#xff0c;此处不再赘述&#xff0c;本文主要讲解值定义信息VNInfo的使用方法和注意事项。 1. VNInfo含义 在LLVM的源码中&#xff0c;VNInf…

视频汇聚EasyCVR综合安防平台对接GA/T1400公安视图库及应用方案

随着科技的不断进步&#xff0c;视频监控系统在公共安全领域发挥着越来越重要的作用。GA/T1400公安视图库作为公安视频图像信息应用系统的标准&#xff0c;为视频监控系统的对接提供了统一的规范和技术要求。 GA/T1400标准的应用范围广泛&#xff0c;涵盖了公安系统的视频图像信…

图解大模型分布式并行各种通信原语

背景 在分布式集群上执行大模型任务时候&#xff0c;往往使用到数据并行&#xff0c;流水线并行&#xff0c;张量并行等技术&#xff0c;这些技术本质上也就是对数据进行各种方案的切分&#xff0c;然后放到不同的节点上运算。不同节点在计算的过程中需要对数据分发或者同步等…

【精读文献】J. Environ. Manage.|青藏高原生态恢复项目下植被覆盖动态及其对生态系统服务的约束效应

目录 文章简介 01 文章摘要 02 研究背景、目标及创新点 2.1 研究背景 2.2 研究现状 03 研究区域与数据集 3.1 研究区域 3.2 研究数据 04 研究方法 4.1 趋势分析 4.2 残差趋势分析 4.3 偏相关 4.4 生态系统服务评价 4.5 约束线的定义和提取 05 研究结果 5.1 植被…

秒杀基本功能开发(不考虑高并发情况)

文章目录 1.显示秒杀状态1.controller修改GoodsController.java的toDetail方法&#xff0c;响应秒杀状态和秒杀剩余时间 2.前端1.goodsDetail.html 图片下面添加一行秒杀开始时间2.goodsDetail.html 添加计时器js代码 3.测试1.秒杀进行中2.修改db的秒杀开始时间为明天3.出现秒杀…

<Rust><iced>基于rust使用iced库构建GUI实例:动态改变主题色

前言 本专栏是Rust实例应用。 环境配置 平台&#xff1a;windows 软件&#xff1a;vscode 语言&#xff1a;rust 库&#xff1a;iced、iced_aw 概述 本篇构建了这样的一个实例&#xff0c;可以动态修改UI的主题&#xff0c;通过菜单栏来选择预设的自定义主题和官方主题&#…

python列表的扩展操作

列表的扩展操作 zip() 函数 我们先学习 zip() 函数&#xff0c;将排名与分数挂钩。 还记得期中考试的顺序排名和分数吗&#xff1f;我们把排名放在了列表 midterm_rank 中&#xff0c;把分数放在了 scores 中。不过当时 scores 并没有排序&#xff0c;我们要对数据进行预处理…

深入理解文件系统和日志分析

文件是存储在硬盘上的&#xff0c;硬盘上的最小存储单位是扇区&#xff0c;每个扇区的大小是512字节。 inode&#xff1a;存储元信息&#xff08;包括文件的属性&#xff0c;权限&#xff0c;创建者&#xff0c;创建日期等等&#xff09; block&#xff1a;块&#xff0c;连续…

小白跟做江科大32单片机之LED闪烁

原理介绍 原理介绍详见&#xff1a; 【STM32】江科大STM32学习笔记汇总(已完结)_stm32江科大笔记-CSDN博客https://blog.csdn.net/u010249597/article/details/134762513 项目准备 1.在项目文件夹中新建3-1 LED文件夹 2.keil新建项目&#xff0c;打开新建的3-1 LED&#xf…

【CC2530-操作外部flash】

zigbee cc2530操作flash&#xff0c;以cc2530读flash_id为例子&#xff1b; void InitIO() {CLKCONCMD & ~0x40; //设置系统时钟源为32MHZ晶振 while(CLKCONSTA & 0x40); //等待晶振稳定为32M CLKCONCMD & ~0x47; //设置系统主时钟频率为32MHZ…

面试(五)

目录 1. 知道大顶堆小顶端吗&#xff0c;代码怎么区分大顶端小顶端 2. 计算机中栈地址与内存地址增长方向相反吗&#xff1f; 3. %p和%d输出指针地址 4. 为什么定义第二个变量时候&#xff0c;地址反而减了 5. 12&#xff0c;32&#xff0c;64位中数据的占字节&#xff1f;…

物质的量质量,它们可不是一个概念

物质的量&质量&#xff0c;它们可不是一个概念。 物质的量&质量 乍一听物质的量&#xff0c;还以为是和质量有什么关系&#xff0c;是不是&#xff1f;其实物质的量和质量没什么直接的联系。 物质的量是国际单位制中7个基本物理量之一&#xff0c;其符号为n&#xf…

Aras Innovator-Team(群组)的使用方法

当Aras Innovator在处理权限时&#xff0c;在不使用Team的情况下&#xff0c;系统的权限配置可以满足大部分业务场景&#xff0c;如&#xff1a;常见的按照组织架构&#xff0c;成员和角色分配权限&#xff0c;按照生命周期分配权限等。 如果遇到比较复杂的权限需求&#xff0c…

AltiumDesigner/AD添加数据库连接

1.首先确保本机电脑有无对应的数据库驱动&#xff0c;例如我这边要添加MySQL的数据&#xff0c;则需要首先下载MySQL数据驱动&#xff1a;MySQL :: Download MySQL Connector/ODBC (Archived Versions) 2.运行“odbcad32.exe”&#xff0c;如下图添加对应的数据库配置&#xf…

【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

面试题:useEffect的Clean Up 什么时候触发?

​ useEffect作为做常用的Hook&#xff0c;以下三个知识点你有必要了解下~ 防止写出奇怪的代码祸害队友&#xff0c;而我不幸就是这个受害者&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; useEffect的依赖项为空 useEffect的dependencyList作为一个可选参数…

Pytest框架中用例用例执行常用参数介绍

pytest 支持通过命令行参数来定制测试运行的方式。以下是一些常用的 pytest 执行参数介绍。 学习目录 -q 或 --quiet: 安静模式&#xff0c;只显示进度和摘要 -s : 选项允许在测试的输出中捕获 stdout 和 stderr。 -v : 选项会使 pytest 的输出更加详细。 -k &#xff1a;…

Git 恢复已删除的branch

六一节晚上改了点code, 做完之后commit, 然后误删了这个branch, 并且新建了branch. 那么怎样恢复已删除的branch呢&#xff1f; 网上查询一番&#xff0c;找到了答案&#xff1a; 1. git reflog 找到被删的branch中最后一笔commit, 记录它的SHA1。 怎么看SHA1是被删除的bra…

鸿蒙应用Stage模型【应用/组件级配置】

应用/组件级配置 在开发应用时&#xff0c;需要配置应用的一些标签&#xff0c;例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。 应用包名配置 应用需要在工程的AppScope目录下的[app.json5配置文件]中配置bundleName标签&#xff0c;…