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

news2024/9/24 15:24:58

文章目录

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

前言

 上一节MySQL系列之–详细安装教程和启动方法中介绍了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;   # 查询当前数据库所有表
DESE 表名;     # 查询表结构
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/1976163.html

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

相关文章

c++| c++11左右值引用,完美转发,可变参数模板,functional包装器,bind函数

c| c11的新特性 左,右值引用什么是左值,右值左值引用和右值引用右值引用解决什么问题呢?移动构造万能引用形式 完美转发格式 lambada表达式格式 可变参数模板可变参数模板实现打印不同类型emplace_push以list的emplace_back的实现举例包装器b…

新160个crackme - 020-cosh.3

运行分析 老规矩,需要破解Name和Serial PE分析 c程序,32位,无壳 静态分析&动态调试 ida查找关键字符串 分析关键函数,得出以下结论:Name、Serial每一位进行亦或计算,若计算结果相等则弹窗成功 算法分析…

吴恩达机器学习作业-ex7(主成分分析)

data1 导入库,读取数据,并进行可视化数据 import numpy as np import scipy.io as sio import matplotlib.pyplot as plt#读取数据 path "./ex7data1.mat" data sio.loadmat(path) # print(data.keys()) X data.get("X") # pri…

Python数据分析案例58——热门游戏数据分析及其可视化

案例背景 有哪个男生不喜欢玩游戏呢?就算上了班儿也要研究一下游戏以及热门的游戏。正好这里有个热门的游戏数据集,全球热门游戏数据集来做一下一些可视化的分析。 数据介绍 该文件包含一个数据集,详细说明了多个平台上的各种流行游戏。每个…

【Golang 面试 - 进阶题】每日 3 题(十五)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…

Cesium 高德地图暗黑化

Cesium 高德地图暗黑化 高德电子地图实现暗黑效果 // 设置图层滤镜new ImageryLayerFilter({viewer: viewer,imageryLayer: imageryLayer,});

YOLOv5轻量化改进 | backbone | 结合MobileNetV4(包含多个结构和使用方式)

YOLOv5轻量化改进 | backbone | 结合MobileNetV4(包含多个结构) 本文介绍论文原理介绍网络代码多种yaml设置网络测试及实验结果<!-- 这里放入论文图片 --> &emsp;;本文介绍 本文给大家带来的改进机制是结合MobileNetV4骨干网络,其中来自2024.5月发布的MobileNetV4…

Pageadmin 漏洞教程

上传文件解压拿webshell 用哥斯拉&#xff0c;生成一个asp木马 这个就是我们生成的asp木马 不能直接上传 压缩为zip文件 上传 上传以后我们点击解压 就成功了 然后我们去访问 然后用哥斯拉访问 然后再点击添加 这样就成功了 成功进入

VSCode在windows系统下的配置简单版

参考链接 从零开始的vscode安装及环境配置教程(C/C)(Windows系统)_vscode搭建编译器环境-CSDN博客 vscode生成tasks.json、launch.json、c_cpp_properties.json文件_vscode生成launch.json-CSDN博客 自动生成配置文件简单方便&#xff01;&#xff01;&#xff01; 运行c代…

点击clean失败的操作Error running ‘demo4 [clean]‘ No valid Maven installation found.

错误情况&#xff1a; 解决方法&#xff1a; 重新调整自己的maven&#xff1a; 点击settings&#xff0c;搜索maven&#xff0c;点击进入&#xff1a; 选择自己的真实路径&#xff1a; 效果: 可以发现&#xff0c;运行clean成功&#xff01;

Useless Fan

灵感来源于老外的一个作品&#xff0c;但是只有风扇功能&#xff0c;除了袖珍感觉没啥用。 在淘宝上十几块买了一堆原件&#xff0c;于是手痒&#xff0c;自己手搓了一个&#xff0c;设计了个简单的3D打印外壳。 包括3大功能&#xff1a;风扇&#xff0c;充电宝&#xff08;2…

Spring MVC 快速入门指南及实战演示

1、SpringMVC简介 1.1 背景 Servlet属于web层开发技术&#xff0c;技术特点&#xff1a; 1. 每个请求都需要创建一个Servlet进行处理 2. 创建Servlet存在重复操作 3. 代码灵活性低&#xff0c;开发效率低 是否有技术方案可以解决以上问题&#xff1f; 1.2 SpringMVC概述 Sp…

C#加班统计次数

C#加班统计次数 运行环境&#xff1a;vs2022 .net 8.0 社区版 1、用C#语言&#xff1b;2、有界面上传Excel文件; 3、对Excel列&#xff08;部门、人员姓名、人员编号、考勤时间 &#xff09;处理&#xff1a;&#xff08;1&#xff09;按人员编号、考勤日期分组且保留原来字段&…

矩阵快速幂优化dp

之前一直想找一个矩阵快速幂的专题&#xff0c;但是都没有题目来总结&#xff0c;今天就来水一下 这个题目的转移方程我们可以很快想出来&#xff0c;但是我们如何作为我们矩阵快速幂的敲门砖呢&#xff1f; 有一个问题要注意的是我们由于这题不是取模的&#xff0c;可能会溢出…

网络安全-渗透测试工具及插件介绍和使用方法

1、Burp Suite Burp Suite 是用于攻击web 应用程序的集成平台。 是一款广泛使用的网络安全工具套件&#xff0c;主要用于测试Web应用程序的安全性。它可以帮助安全研究人员、渗透测试人员和开发人员发现和利用Web应用程序中的安全漏洞。 &#xff08;1&#xff09;下载和安装&a…

QuanTide-weekly第1期

本周Po文 这周我们共发表5篇文章。《基于 XGBoost 的组合策略…》等两篇详细讲解了机器学习构建组合策略的框架和常见问题。 文章要点与结论&#xff1a; 通过两阶段式方案实现多因子、多资产的组合策略构建。第一阶段基于XGBoost构建多个多因子单标的模型&#xff0c;第二阶…

安卓基本布局(下)

TableLayout 常用属性描述collapseColumns设置需要被隐藏的列的列号。shrinkColumns设置允许被伸缩的列的列号。stretchColumns设置允许被拉伸的列的列号。 <TableLayout xmlns:android"http://schemas.android.com/apk/res/android"android:id"id/TableL…

yolov3 neck部分搭建,以及完整的网络搭建代码,可直接运行

目录 1. 用来实现共同的一些操作 common_module.py 2.1 使用到的通道配置 net_config.py 2.2 主干网络 darknet53.py 3. predict部分 neck.py 4. 拼凑成完整的yolov3网络 Yolov3.py 5. 网络结构如下 上次提到了搭建了主干网络&#xff0c;这个加上neck就可以构建…

内网穿透--meterpreter端口转发实验

实验背景 通过公司带有防火墙功能的路由器接入互联网&#xff0c;然后由于私网IP的缘故&#xff0c;公网无法直接访问内部主机&#xff0c;则需要通过已连接会话&#xff0c;代理穿透访问内网主机服务。 实验设备 1.路由器一台 2.内网 Win 7一台 3.公网 Kali 一台 4.网络 …

LeetCode面试150——238除自身以外数组的乘积

题目难度&#xff1a;中等 默认优化目标&#xff1a;最小化平均时间复杂度。 Python默认为Python3。 目录 1 题目描述 2 题目解析 3 算法原理及代码实现 3.1 左右乘积列表 参考文献 1 题目描述 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 an…