【MySQL】:掌握SQL中DDL的数据库定义与操作

news2024/9/28 13:23:20
个人头像
🎥 屿小夏 : 个人主页
🔥个人专栏 : MySQL从入门到进阶
🌄 莫道桑榆晚,为霞尚满天!

文章目录

  • 📑前言
  • 一. SQL的分类
  • 二. DDL数据库操作
    • 2.1 查询所有数据库
    • 2.2 查询当前数据库
    • 2.3 创建数据库
    • 2.4 删除数据库
    • 2.5 切换数据库
  • 3. DDL表操作
    • 3.1 查询创建
    • 3.2 数据类型
    • 3.3 修改
    • 3.4 删除
  • 🌤️. 全篇总结

在这里插入图片描述

📑前言

SQL是一种强大的语言,根据其功能可以分为DDL、DML、DQL和DCL四类。其中,DDL用于定义数据库对象,如数据库、表和字段。本文将深入探讨DDL的数据库操作,包括查询数据库、创建数据库、删除数据库、切换数据库以及表的查询、创建、修改和删除等操作。通过本文,读者将对SQL的DDL操作有更加全面的了解,为数据库管理和应用提供关键知识。

一. SQL的分类

SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。

分 类全称说明
DDLData Definition Language数据定义语言,用来定义数据库对象(数据库,表, 字段)
DMLData Manipulation Language数据操作语言,用来对数据库表中的数据进行增删改
DQLData Query Language数据查询语言,用来查询数据库中表的记录
DCLData Control Language数据控制语言,用来创建数据库用户、控制数据库的 访问权限

二. DDL数据库操作

Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段) 。

2.1 查询所有数据库

show databases ;

image-20231219085332659

2.2 查询当前数据库

select database() ;

2.3 创建数据库

create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序
规则 ] ;

在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。

可以通过if not exists 参数来解决这个问题,数据库不存在, 则创建该数据库,如果存在,则不创建。

创建一个test数据库,并且指定字符集:

create database if not exists test defalut charset utf8mb4;

2.4 删除数据库

drop database [ if exists ] 数据库名 ;

如果删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除。

image-20231219090034183

2.5 切换数据库

use 数据库名 ;

我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。
比如,切换到test数据库,执行如下SQL:

use test;  

3. DDL表操作

3.1 查询创建

查询当前数据库所有表

show tables;

比如,我们可以切换到sys这个系统数据库,并查看系统数据库中的所有表结构。

use sys;
show tables;

查看指定表结构

desc 表名

通过这条指令,我们可以查看到指定表的字段,字段的类型、是否可以为NULL,是否存在默认值等信
息。

查询指定表的建表语句

show create table;

通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询
到,因为这部分是数据库的默认值,如:存储引擎、字符集等。

创建表结构

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

注意: […] 内为可选参数,最后一个字段后面没有逗号 !!!

3.2 数据类型

数值类型

image-20231219092753332

字符串类型

image-20231219092838886

日期时间类型

image-20231219092909847

3.3 修改

添加字段

ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];

修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);

**修改字段名和字段类型 **

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];

删除字段

ALTER TABLE 表名 DROP 字段名;

修改表名

ALTER TABLE 表名 RENAME TO 新表名;

3.4 删除

删除表

DROP TABLE [ IF EXISTS ] 表名;

可选项 IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不加该参数项,删除一张不存在的表,执行将会报错)。

删除指定表, 并重新创建表

TRUNCATE TABLE 表名;

注意: 在删除表的时候,表中的全部数据也都会被删除。

🌤️. 全篇总结

本文详细介绍了SQL中DDL的数据库操作,包括查询数据库、创建数据库、删除数据库、切换数据库以及表的查询、创建、修改和删除等操作。读者通过本文可以了解到如何使用SQL语句来管理数据库对象,为数据库操作提供了基础知识和实际操作指导。

image-20231220160021552

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

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

相关文章

分类预测 | Matlab实现RP-LSTM-Attention递归图优化长短期记忆神经网络注意力机制的数据分类预测【24年新算法】

分类预测 | Matlab实现RP-LSTM-Attention递归图优化长短期记忆神经网络注意力机制的数据分类预测【24年新算法】 目录 分类预测 | Matlab实现RP-LSTM-Attention递归图优化长短期记忆神经网络注意力机制的数据分类预测【24年新算法】分类效果基本描述模型描述程序设计参考资料 分…

《设计模式的艺术》笔记 - 简单工厂模式

介绍 定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有相同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法,因此简单工厂模式又被称为静态工厂方法模式,属于类创建型模式 实现 class Pr…

实现JavaScript的函数链式执行

本篇文章将会实现函数链式执行,链式步骤延时等操作。 1.工具类 const executor (name) > {/*** 执行器名称*/const executorName name;/*** 方法数组*/const methodArray [];/*** 同步执行某个方法*/function run(func){methodArray.push(func);return this…

谷歌aab包在Android 14闪退而apk没问题(targetsdk 34)

问题原因 Unity应用(target SDK 34)上线到GooglePlay,有用户反馈fold5设备上(Android14系统)疯狂闪退,经测试,在小米手机Android14系统的版本复现成功了,奇怪的是apk直接安装没问题,而打包成aa…

Android开发基础(二)

Android开发基础(二) 上篇主要描述了Android系统架构,代码是通过Java表示的; 本篇将从介绍Android组件去理解Android开发,代码将对Java和Kotlin进行对比。 Android组件 Android应用程序由一些零散的有联系的组件组成…

伴鱼离线数仓建设案例

伴鱼数仓建设案例 伴鱼离线数仓建立,与伴鱼的业务一起快速发展,从一条业务线,到多条业务线。在演进的过程中,有很多总结和沉淀的内容。本篇文章主要介绍伴鱼离线数据仓库的发展历史,在发展过程中遇到的各种问题&#…

人工智能ai写作软件哪个好,看看这6款

现如今人工智能AI写作软件逐渐成为写作者们的得力助手。这些软件利用先进的自然语言处理技术,能够帮助用户快速生成高质量的中文文章。在众多中文人工智能AI写作软件中,以下6款软件凭借其独特的优势脱颖而出,为用户提供了高效的写作体验。 软…

NetApp E系列(E-Series)OEM产品介绍以及如何收集日志和保存配置信息

NetApp E系列是NetApp收购LSI存储后建立的一条新的产品线,由于LSI存储的历史悠久,所以这条产品线给NetApp带来了很多的OEM产品,可以说E系列是世界上OEM给最多公司的存储产品线也不为过,因为最早LSI的产品销售测率就是OEM&#xff…

Java 面试题 - 多线程并发篇

线程基础 创建线程有几种方式 继承Thread类 可以创建一个继承自Thread类的子类,并重写其run()方法来定义线程的行为。然后可以通过创建该子类的实例来启动线程。 示例代码: class MyThread extends Thread {public void run() {// 定义线程的行为} …

【C语言】指针知识点笔记(1)

以下的思维导图是胖达学习指针时记得笔记,是根据自己的习惯所记录的,希望能对大家的学习有所帮助,如果大家喜欢的话我后面会陆续更新其他章节的笔记,喜欢的话就评论一下吧! 目录 一、内存和地址 二、指针和变量地址…

P122 神经网络压缩Network compression-purning

在 边缘设备上跑时,模型太大,跑不动 、purn: 删减 删减以后,正确率有影响会下降 为解决这个问题,进行微调,每次只减一点参数,重复多次。 使得最后修剪后的模型跟原来的模型差别不大。 判断某一个参数是否重要,是否要去掉 问题:进行过修剪后不规则的网络,pytorch难以…

【惠友骨科小课堂】拇外翻常见的几个误区,来看看你中了几个?

拇外翻作为常见的足部畸形,在日常生活中困扰着许多人。歪脚趾不仅外观不好看,还会出现疼痛、影响行走运动。但大多数人对于拇外翻的认识都不足常常落入认知误区,快来看看你中了几个? 误区一Q 我都没穿过高跟鞋,怎么也…

【工业物联网】现代企业环境中的DCS(分布式控制系统)和SCADA(站点控制和数据采集)...

快答案: SCADA和DCS作为单独的系统开始,但一起成长。今天的带宽如此广泛,不需要在每个节点进行本地化。 SCADA和DCS:如果您参与管理企业级网络,您可能已经听说过这些术语。本文将阐明两种技术之间的区别。请注意&#…

【ACL 2023】 The Art of Prompting Event Detection based on Type Specific Prompts

【ACL 2023】 The Art of Prompting: Event Detection based on Type Specific Prompts 论文:https://aclanthology.org/2023.acl-short.111/ 代码:https://github.com/VT-NLP/Event_APEX Abstract 我们比较了各种形式的提示来表示事件类型&#xff0…

python 语法

闭包 在函数嵌套的前提下&#xff0c;内部函数使用了外部函数的变量&#xff0c;并且外部函数返回了内部函数&#xff0c;我们把这个使用外部函数变量的内部函数称为闭包。 def outfunc(arg):def innerFunc(msg):print(f"<{msg}> {arg} <{msg}>")retu…

C1-3.2 关于‘神经网络’

C1-3.2 关于‘神经网络’ 【注释】 彩色图像&#xff08;RGB&#xff09;由三原色构成&#xff0c;二维图像在任意一个点像素为立体三层结构&#xff0c;分别是红色、绿色、蓝色值&#xff0c;该值的范围在0∽255之间 1、全连接神经网络——整体架构 【注释】&#xff1a; …

【目标检测】评价指标:混淆矩阵概念及其计算方法(yolo源码)

本篇文章首先介绍目标检测任务中的评价指标混淆矩阵的概念&#xff0c;然后介绍其在yolo源码中的实现方法。 目标检测中的评价指标&#xff1a; mAP概念及其计算方法(yolo源码/pycocotools) 混淆矩阵概念及其计算方法(yolo源码) 本文目录 1 概念2 计算方法 1 概念 在分类任务中…

《安富莱嵌入式周报》第330期:开源ECU模组,开源USB PD供电SMD回流焊,嵌入式系统开发C代码参考指南,旨在提升C语言编写的源码质量

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 更新一期视频教程 BSP视频教程第29期&#xff1a;J1939协议栈CAN总线专题&#xff0c;源码框架&#xff0c;执行流程和…

从零学Java Map集合

Java Map集合 文章目录 Java Map集合1 Map 结构2 Map 父接口2.1 Map接口的特点2.2 常用方法 3 Map集合的实现类3.1 HashMap【重点】3.2 LinkedHashMap3.3 TreeMap3.4 Hashtable&#xff08;了解&#xff09;3.5 Properties 属性集合 4 HashMap 源码分析 1 Map 结构 概念: 将键…

react输入框检索树形(tree)结构

input搜索框搜索树形子级内容1. input框输入搜索内容2. 获取tree结构数据3. 与tree匹配输入的内容&#xff0c;tree是多维数组&#xff0c;一级一级的对比输入的内容是否匹配&#xff0c;用forEach循环遍历数据&#xff0c;匹配不到在往下找&#xff0c;直到找到为null &#x…