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.rhkb.cn/news/339582.html

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

相关文章

STM32-14-FSMC_LCD

STM32-01-认识单片机 STM32-02-基础知识 STM32-03-HAL库 STM32-04-时钟树 STM32-05-SYSTEM文件夹 STM32-06-GPIO STM32-07-外部中断 STM32-08-串口 STM32-09-IWDG和WWDG STM32-10-定时器 STM32-11-电容触摸按键 STM32-12-OLED模块 STM32-13-MPU 文章目录 1. 显示器分类2. LCD简…

[Windows] 植物大战僵尸杂交版

游戏包含冒险模式、挑战模式、生存模式三种不同玩法。冒险模式主打关卡闯关&#xff0c;挑战模式则挑战特殊设计的关卡&#xff0c;生存模式结合无尽模式和特殊地图&#xff0c;各具特色。玩家可根据喜好自由选择模式&#xff0c;体验不同的游戏乐趣。快来尝试这款独特的pvz游戏…

6月2(信息差)

&#x1f30d;特斯拉&#xff1a;Model3高性能版预计6月中旬开启首批交付 &#x1f384;微软对开源字体 Cascadia Code 进行重大更新 ✨天猫618加码引爆消费热潮 截至晚9点185个品牌成交破亿 1.瑞士清洁科技公司Librec开发废旧锂离子电池回收技术&#xff0c;可回收电池90%的…

【设计模式】JAVA Design Patterns——Factory Method(虚拟构造器模式)

&#x1f50d;目的 为创建一个对象定义一个接口&#xff0c;但是让子类决定实例化哪个类。工厂方法允许类将实例化延迟到子类 &#x1f50d;解释 真实世界例子 铁匠生产武器。精灵需要精灵武器&#xff0c;而兽人需要兽人武器。根据客户来召唤正确类型的铁匠。 通俗描述 它为类…

IDEA2020.3部署旧的的web工程,报错,参考下面的配置

以下内容&#xff0c;需要仔细核对&#xff0c;有些配置只是针对本项目进行的配置&#xff0c;仅供参考&#xff0c;可以解决一些问题。 File->Project Structure&#xff1a; Tomcat配置&#xff1a; 完成。 详细内容&#xff0c;参考&#xff1a;IDEA2020.3部署旧的的web工…

备战十一届大唐杯国赛预选赛

这次省赛带了太多个省一了&#xff0c;具体可看下面的图片&#xff0c;只放了一部分。目前根据可靠消息&#xff0c;应该还有个预选赛和去年一样&#xff0c;就是还会考一次仿真。如果说通过了就是国二起步然后去北方工业争夺国一国二&#xff0c;没过的话就是国三。 每…

Python实用代码片段分享(三)

在今天的博文中&#xff0c;我们将继续分享一些Python编程中非常实用的代码片段。这些代码片段将帮助你更高效地处理常见任务&#xff0c;从字符转换到数据类型检查&#xff0c;应有尽有。 1. ord函数和chr函数 Python的ord()函数可以返回Unicode字符对应的ASCII码值&#xf…

精准检测,可燃气体报警系统的技术原理与特点

在现代化的工业生产与日常生活中&#xff0c;可燃气体泄露事故频发&#xff0c;给人们的生命和财产安全带来了严重威胁。 因此&#xff0c;可燃气体报警检测系统的应用变得尤为重要。它不仅能够实时监测环境中的可燃气体浓度&#xff0c;还能在发现异常情况时及时报警&#xf…

[leetcode hot150]第五十七题,插入区间

题目&#xff1a; 给你一个 无重叠的 &#xff0c;按照区间起始端点排序的区间列表 intervals&#xff0c;其中 intervals[i] [starti, endi] 表示第 i 个区间的开始和结束&#xff0c;并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval [start, end] 表示…

【机器学习】——驱动智能制造的青春力量,优化生产、预见故障、提升质量

目录 一.优化生产流程 1.1 数据收集 1.2 数据预处理 1.3 模型训练 1.4 优化建议 1.5 示例代码 二.预测设备故障 2.1 数据收集 2.2 数据预处理 2.3 模型训练 2.4 故障预测 2.5 示例代码 三.提升产品质量 3.1 数据收集 3.2 数据预处理 3.3 模型训练 3.4 质量提升…

最新一站式AI创作中文系统网站源码+系统部署+支持GPT对话、Midjourney绘画、Suno音乐、GPT-4o文档分析等大模型

一、系统简介 本文将介绍最新的一站式AI创作中文系统&#xff08;集成ChatGPTMidjourneySunoStable Diffusion&#xff09;——星河易创AI系统&#xff0c;该系统基于ChatGPT的核心技术&#xff0c;融合了自然语言问答、绘画、音乐、文档分享、图片识别等创作功能&#xff0c;…

VTK9.3.0刻度标签重叠的问题

本文采用VTK9.3.0版本&#xff0c;其他版本如VKT8.0亦有同样的问题 VTK显示文本时&#xff0c;Z轴刻度标签出现了重叠&#xff0c;如下图&#xff1a; 寻找好久&#xff0c;没有找到设置标签间距、个数等相关的公有成员函数&#xff0c;此问题一直没有解决。 于是想到改VKT9.…

重生之 SpringBoot3 入门保姆级学习(10、日志基础与使用)

重生之 SpringBoot3 入门保姆级学习&#xff08;10、日志基础使用&#xff09; 3.1 日志基础3.2 使用日志3.2.1 基础使用3.2.2 调整日志级别3.2.3 带参数的日志 3.1 日志基础 SpringBoot 默认使用 SLF4j&#xff08;Simple Logging Facade for Java&#xff09;和 Logback 实现…

2024089期传足14场胜负前瞻

2024089期售止时间为6月3日&#xff08;周一&#xff09;22点00分&#xff0c;敬请留意&#xff1a; 本期1.5以下赔率5场&#xff0c;1.5-2.0赔率5场&#xff0c;其他场次是平半盘、平盘。本期14场难度偏低。以下为基础盘前瞻&#xff0c;大家可根据自身判断&#xff0c;复选增…

pycharm简易使用码云gitee

文章目录 参考文献官网地址安装插件第一个选项报错了不可&#xff0c;第二个选项&#xff0c;可以了新库上传到主分支&#xff0c;push改进实验新建分支&#xff0c;上传为新分支&#xff1a;做另一种改进&#xff0c;选择回退主分支&#xff0c;另建一个分支 使用对于一个新项…

【stm32/CubeMX、HAL库】swjtu嵌入式实验七 ADC 实验

相关电路与IO引脚 注意&#xff1a;串口打印重定向后使用printf打印需要在keil里勾选 Use MicroLIB &#xff0c;否则会卡住。 参看&#xff1a;https://zhuanlan.zhihu.com/p/565613666 串口重定向&#xff1a; /* USER CODE BEGIN Includes */#include <stdio.h>//…

(函数)颠倒字符串顺序(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <string.h>//声明颠倒函数; void reverse(char a[]) {//初始化变量值&#xff1b;int i, j;char t;//循环颠倒&#xff1b;for (i 0, j strl…

寄存器、缓存、内存(虚拟、物理地址)、DDR、RAM的关系

寄存器、缓存、内存、DDR、RAM的关系 1. 主要概念内部存储器&#xff1a;2.1 寄存器&#xff0c;register2.2 主存储器&#xff0c;内存&#xff0c;memory2.3 缓存&#xff0c;高速缓冲存储器&#xff0c;cache 外部存储器2.4 快闪存储器&#xff0c;闪存&#xff0c;flash Me…

Android 使用kotlin Retrofit2 + Dagger2完成网络请求跟依赖注入组合使用

文章目录 &#xff08;一&#xff09;引入依赖&#xff08;二&#xff09;基本概念Dagger中的基本概念&#xff1a;Retrofit介绍 &#xff08;三&#xff09;Dagger2 Module 和 Provides 和 Component Inject&#xff08;四&#xff09;Retrofit2 创建数据类Bean跟Service服务&…

wpf listbox实现选中动画

效果如下&#xff1a; 参考&#xff1a;https://github.com/WPFDevelopersOrg/WPFDevelopers/blob/master/src/WPFDevelopers.Samples.Shared/Controls/NavigateMenu/NavigateMenu.xaml 实现上述效果的前台代码&#xff1a; <Windowx:Class"ListBox.MainWindow"…