MySQL第2讲--关系型数据库以及SQL语句分类之DDL数据库和表的操作

news2025/7/17 6:36:07

文章目录

      • 前言
      • 关系型数据库(RDBMS)
        • 关系型数据库的特点
      • MySQL数据模型
      • SQL介绍
        • 基本语法规则
        • SQL语句的分类
        • DDL的介绍
          • DDL的数据库操作
          • DDL的表操作

前言

 上一节MySQL第1讲–详细安装教程和启动方法中介绍了MySQL如何安装,以及如何启动和客户端连接,这一节我们介绍一下MySQL的数据模型,以及基础的语法;

关系型数据库(RDBMS)

  概念:建立在关系模型基础上,有多张相互联系的二维表组成的数据库;
  下面通过一张表来举例说明什么是关系型数据库;
在这里插入图片描述
从左边那张表中第三列中的dept_id,来对应第二个表中的id,就可以知道每个员工所在的部门了;两张表是存在一定的关系的,像这种的存储关系,就叫关系型数据库;

关系型数据库的特点
  • 使用表存储数据,格式统一,便于维护
  • 使用SQL语言,标准统一,使用方便

MySQL数据模型

  了解了关系型数据特点后,我们来看一下关系型数据库;
  特点:一个数据库操作系统中可以有多个数据库;一个数据库中可以有多个二维表;在二维表中又可以存储一条条的数据;

在这里插入图片描述

SQL介绍

  介绍完MySQL,接下来我们介绍一下SQL语言;

基本语法规则
  • 语句书写:SQL语句可以执行单行或多行书写,以分号(;)结尾。
  • 可读性:SQL语句可以使用空格和缩进来增加语句的可读性。
  • 大小写:MySQL数据库的SQL语句不区分大小写,但关键字通常建议使用大写以提高可读性。
  • 注释:
    单行注释:-- 注释内容 或 # 注释内容(MySQL特有)。
    多行注释:/* 注释内容 */。
SQL语句的分类
  • DDL(Data Definition Language,数据定义语言):用于定义数据库对象(如数据库、表、字段等)。
  • DML(Data Manipulation Language,数据操作语言):用于对数据库表中的数据进行增删改。
  • DQL(Data Query Language,数据查询语言):用于查询数据库中表的记录。
  • DCL(Data Control Language,数据控制语言):用于创建数据库用户、控制数据库的访问权限等。
DDL的介绍

  这一章节主要介绍DDL(数据定义语言)的一些基本用法;

DDL的数据库操作
  • 查询
SHOW DATABASES      #查询所有数据库
SELECT DATABASE()      #查询当前数据库

举例1:
在这里插入图片描述
从上图可以看到一共有五个数据库,前四个数据库是安装后自带的,第五个数据库是我测试创建的;

  • 创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
#解释
# [IF NOT EXISTS] 数据库名:如果“数据库名”不存在创建,如果存在不创建;
# [DEFAULT CHARSET 字符集]:指定数据库使用的字符集,该选项可以省略,则使用数据库中默认的字符集;
# [COLLATE 排序规则]:指定排列规则,该选项也是可以省略的,使用数据库中默认的排列规则;

举例1:
在这里插入图片描述
从上图可以看到一个名为test_new的数据库,被创建成功;
  大家可以猜测一下如果再次创建一个该名称的数据库会发生什么情况呢?

在这里插入图片描述
没错,会发生报错,上面报错信息是,该数据库已经存在;那如果不想让它报错,数据库存在就不创建,不存在就创建,该怎么办呢?
  我们只需要在数据库名称前面加上一个判断条件即可;
在这里插入图片描述
如上图所示,没有发生报错;

  • 删除数据库
DROP DATABASE [IF EXISTS] 数据库名;

举例1:如果我删除test_new数据库
在这里插入图片描述
在这里插入图片描述
从上图可以看到在所有的数据库中没有test_new数据库,说明数据库删除成功;

  大家猜一下,如果重复删除一个数据库会会出现什么情况呢?
在这里插入图片描述
  正如大家所料会报错,报错信息就是我们所要删除的数据库不存在;那如何避免报错呢?
在这里插入图片描述
  如上图所示添加一个判断条件,就可以,如果数据库存在则执行删除的指令,如果不存在则不执行删除的指令;

  • 使用数据库
USE 数据库名;

  在数据库操作系统中有很多数据库,如果我们想使用其中一个数据库要如何操作呢?
在这里插入图片描述
如上图所示就切换到了test 数据库中;
在这里插入图片描述
如上图可以看到,当前所处的数据库就是test数据库,就说明我们已经切换成功了;

DDL的表操作
  • 表的查询
SHOW TABLES;   # 查询当前数据库所有表
DESC 表名;     # 查询表结构
SHOW CREATE TABLE 表名;    # 查询指定表的建表语句

例子1:
在这里插入图片描述
从上图可以看到,在系统数据库中有很多表罗列出来;

  • 表的创建
CREATE TABLE 表名 (  
    字段1 字段1类型[COMMENT 字段1注释],  
    字段2 字段2类型[COMMENT 字段2注释], 
    字段3 字段3类型[COMMENT 字段3注释], 
    ......
    字段n 字段1类型[COMMENT 字段n注释]
)[COMMENT 表注释];

注意事项:最后一个字段后面没有逗号;

  那如何创建一个下面的表呢?接下来将演示如何创建一个具体的表;
在这里插入图片描述
在这里插入图片描述
由上图可见,test_user这个表创建成功了,那如何去验证这个表是否真的创建成功了呢?
在这里插入图片描述
由上图可以看到,test_user这个表已经存在了,说明真的创建成功了。

如果我想看这个表有哪些字段,就用到了表查询里面的语句,如下图所示:
在这里插入图片描述
接下来将介绍,数据类型,表的修改和删除等操作。

如有错误欢迎指正,如果帮到您请点赞加收藏哦!
在这里插入图片描述

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

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

相关文章

使用 Elastic 和 Mistral 构建多语言 RAG

作者:来自 Elastic Gustavo Llermaly 使用 Elastic 和 Mixtral 8x22B 模型构建多语言 RAG 应用程序。 Mixtral 8x22B 是性能最高的开放式模型,其最强大的功能之一是能够流利使用多种语言;包括英语、西班牙语、法语、意大利语和德语。 想象一…

质量属性-系统架构师(四十)

质量属性 1性能: 指系统响应能力。如响应时间、吞吐量。 设计策略:优先级队列,增加计算机资源,减少计算机开销,引入并发机制,采用资源调度。 2可靠性: 在一定时间内正常运行的情况下&#x…

PTA—基础编程题目集(7-21)

7-21 求特殊方程的正整数解 目录 题目描述 输入格式: 输出格式: 输入样例1: 输出样例1: 输入样例2: 输出样例2: 参考代码 总结 题目描述 本题要求对任意给定的正整数N,求方程X2Y2N的…

《Milvus Cloud向量数据库指南》——关于Ivy.ai:重塑沟通效率与数据安全的创新先锋

关于Ivy.ai:重塑沟通效率与数据安全的创新先锋 在数字化转型的浪潮中,Ivy.ai以其前瞻性的视野和专业团队的匠心独运,正逐步成为高等教育、医疗保健及公共部门沟通效率提升的引领者。这家企业不仅代表了人工智能技术在服务领域的最新进展,更以其旗舰产品IvyQuantum™的横空…

搬瓦工香港CMI VPS测评

搬瓦工香港cmi怎么样?搬瓦工香港VPS分CN2 GIA和CMI两种不同接入的网络,其中CMI网络的回程是强制三网全部都走移动CMI线路,相对CN2 GIA来说有一定的差距。实际的情况测评数据送上,可供参考。 CPU型号未知,主频2.7GHz&a…

【C++】一堆数组 冒泡排序

冒泡排序,一种很常见的排序法师 这章要划重点,很重要!! 排序思路为前一个元素与后一个元素比大小,一直循环一轮,找出最大/最小的那个元素后,进行下一轮,找到第二大/小的元素......…

ZLM推流

ZLM推流 ffmpeg -re -i D:\work\gb28181-client\target\classes\device\videofile.h264 -vcodec h264 -acodec aac -f rtp_mpegts rtp://127.0.0.1:10000把这个复制出来然后将defaultVhost_改成127.0.0.1

题海战术,面试必胜秘诀

目录 1.Java 的优势是什么?2.什么是 Java 的多态特性?3.Java 中的参数传递是按值还是按引用?4.为什么 Java 不支持多重继承?5.什么是 Java 中的不可变类?总结 题目 来自面试鸭刷题神器 1.Java 的优势是什么? Java 的跨平台性、垃圾回收机制以及其强…

【EtherCAT】Windows+Visual Studio配置SOEM主站——源码配置

目录 一、准备工作 1. Visual Studio 2022 2. Npcap 1.79 3. SOEM源码 二、源码部署 1. 新建Visual Studio工程 2. 创建文件夹 3. 创建主函数 4. 复制源代码 5. 删除无关项 6. 将soem源码添加进工程 7. 添加soem头文件 8. 配置头文件路径 9. 配置静态库和静态库路…

xdma的linux驱动编译给arm使用(中断检测-测试程序)

1、驱动链接 XDMA驱动源码官网下载地址为:https://github.com/Xilinx/dma_ip_drivers 下载最新版本的XDMA驱动源码,即master版本,否则其驱动用不了(xdma ip核版本为4.1)。 2、驱动 此部分来源于博客:xd…

多模态MLLM都是怎么实现的(12)-Florence-2

最近一直在打艾尔登法环DLC,疏于更新了,罪过罪过,今天把拉塔恩给过了,也该更新了,停更期间,催更的信息主要是啥时候更新GPU系列的第五篇,不是不更,是刚打完,正好有客户要…

C# Unity 面向对象补全计划 七大原则 之 里氏替换

本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正 本系列作为七大原则和设计模式的进阶知识,看不懂没关系 请看专栏:http://t.csdnimg.cn/mIitr,尤其是关于继承的两篇文章&#xff…

算法022:寻找峰值

寻找峰值. - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/find-peak-element/ 这个题跟上一个题很像,也是寻找一个峰值。此题还特意强调了如果有多个峰…

【数学思维培养】罗博深小学数学青少年数学思维分级课程(3-4年级)

【数学思维培养】罗博深小学数学青少年数学思维分级课程(3-4年级) 背景前摇: 虽然我是学理工科计算机的,但我感觉我在数学方面一直都存在劣势,无论是写程序到了涉及数学计算的地方(比如向量、余弦等&#…

【数据分析--带你认识数据分析,了解数据分析的】

前言: 💞💞大家好,我是书生♡,本阶段和大家一起分享和探索数据分析—基础介绍,本篇文章主要讲述了:数据分析的介绍,Python开源库,配置Jupyter等等。欢迎大家一起探索讨论…

C++程序的编译链接过程

一、预处理 (1) 将所有的#define删除,并且展开所有的宏定义 (2) 处理所有的条件预编译指令,如#if、#ifdef (3) 处理#include预编译指令,将被包含的文件插入到该预编译…

html+css 实现hover边框彩色流动

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 文…

人工智能深度学习系列—深入探索IoU Loss及其变种:目标检测与分割的精度优化利器

文章目录 1. 背景介绍2. Loss计算公式3. 使用场景4. 代码样例5. 总结 1. 背景介绍 在深度学习的目标检测和分割领域,评估预测结果与真实标注之间的一致性是提升模型性能的关键。IoU Loss(Intersection over Union Loss)及其变种损失函数&…

【人工智能五】人工智能基础习题

文章目录 壹. 内容补充一. VR/AR/MR的区别1. 三者概念2. 区别 二. 深度学习重要算法及人物介绍1. 反向传播算法2. 卷积神经网络 贰. 习题精选1一. 选择二. 判断题三. 填空题四. 简单题1. 综合2. 深度学习与神经网络 壹. 内容补充 一. VR/AR&…