【MySQL基础|第一篇】——谈谈SQL中的DDL语句

news2024/11/27 12:50:24

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【MySQL学习专栏】🎈
本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌
在这里插入图片描述

前言:SQL语句的分类

SQL语句主要分为以下4类,请看:

分类说明
DDL(Data Definition Language)数据定义语言,用于定义数据库、表、视图等对象的结构
DML(Data Manipulation Language)数据操作语言,用于对数据库中的数据进行增添、修改和删除操作
DQL(Data Query Language)数据查询语句,用于从数据库中检索数据,最常见的是SELECT语句。
DCLData Control Language用来创建数据库用户,控制数据库的访问权限。

本文对DDL语句的语法进行讲解。

目录

  • 前言:SQL语句的分类
  • 一、数据库操作
    • 1.1查询
    • 1.2创建数据库
      • 可选项:if not exists
    • 1.3删除数据库
    • 1.4使用数据库
  • 二、表操作(创建与查询)
    • 2.1创建
    • 2.2查询
    • 2.3修改
      • 添加字段
      • 修改数据类型
      • 修改字段名和字段类型
      • 删除字段
      • 修改表名
    • 2.4删除
  • 三、DDL语句总结

一、数据库操作

1.1查询

查询所有数据库:SHOW DATABASES;
查询当前数据库:SHOW DATABASE();

SHOW DATABASE();举例:

在这里插入图片描述

查询当前数据库(用于查询当前处于哪个数据库下):SHOW DATABASE();
在这里插入图片描述

1.2创建数据库

创建数据库:CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

例如:创建数据库tmp_database
输入命令:create database 数据库名称;create database tmp_database;
注意:最后的分号;是英文版的分号;

请看:
在这里插入图片描述

出现Query OK, 1 row affected (0.05 sec)说明数据库创建成功了。

我们不妨来看以下刚刚创建的数据库,输入命令:show databases;,请看:
在这里插入图片描述

如果我们此时再次创建相同的数据库tmp_database,就会报错,请看:
在这里插入图片描述
报错原因当然就是数据库已经存在。

可选项:if not exists

如果不想出现报错的话(即如果数据库已经存在的话,我们就不要进行该数据库的创建了),此时我们就可以添加可选项:if not exists输入命令create database if not exists tmp_database;
请看演示:
在这里插入图片描述

当然,如果我们要创建的数据库不存在的话,当然会创建成功了。

1.3删除数据库

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

这里如果数据库存在,那么我们可以删除想要删除的数据库,此时我们可以添加可选项:if exists

命令:drop database if exists 想要删除的数据库

比如我们要删除之前创建的数据库tmp_database,可以输入命令:drop database if exists tmp_database;
请看演示:
在这里插入图片描述

1.4使用数据库

使用数据库命令:USE 数据库名;

请看演示:

在这里插入图片描述
出现Database changed说明我们已经切换到了test数据库

二、表操作(创建与查询)

2.1创建

命令:

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

这里需要我们注意的是:[...]是可选的一个参数,还有就是最后一个字段后面是没有逗号,的。

下面进入演示环节,我们试着通过CREATE TABLE这个SQL语句来完成下图的表结构的创建:
在这里插入图片描述
这里我们首先要进入的是我们自己创建的数据库,而不是再系统中的数据库进行操作。
输入命令:

mysql> create table tb_person(
    -> id int comment '编号',
    -> name varchar(10) comment '姓名',
    -> age int comment '年龄',
    -> gender varchar(1) comment '性别'
    -> ) comment '用户表';

在这里插入图片描述

那如何验证这个数据库表创建成功呢,输入命令:show tables;,请看:
在这里插入图片描述
如上图所示,tb_person就是我们刚刚创建的数据库表。

下面如果想要知道这个数据库表的字段和类型,输入命令:DESC 表名;,请看:
在这里插入图片描述

2.2查询

下面是表结构如何查询的三种语法:

第一种:查询当前数据库所有表。

命令:SHOW TABLES;

SHOW TABLES;可以查询当前数据库的所有表结构,前提是,我们需要先使用USE 数据库名;进入或者使用某个数据库,然后再根据SHOW TABLES;来查询当前数据库的所有表结构。
请看演示:
在这里插入图片描述
我们切换到系统库sys中看一下:
在这里插入图片描述
在这里插入图片描述
可以看到当前数据库sys中有很多表结构,因为sys是一个系统库。

第二种:查询表结构。

命令:DESC 表名;

举例:输入命令:DESC tb_person;
在这里插入图片描述

第三种:查询指定表的建表语句。

命令:SHOW CREATE TABLE 表名;

举例:输入命令:show create table tb_person;

在这里插入图片描述

2.3修改

对表的修改操作以下面数据库test中的表tmp进行演示:

在这里插入图片描述

修改表的操作主要分为这几种:往表中添加字段、修改表中的字段、删除表中的字段、修改表中。

添加字段

第一种:往表中添加字段。

命令:ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] 约束;
这里方括号[]中的内容是依旧是可选的。

现在为emp表添加一个新的字段名称为nickname,类型为varchar(20)
输入命令: alter table emp add nickname varchar(10) comment '名称';
演示如下:
在这里插入图片描述
查看以下表emp中的内容:
在这里插入图片描述

修改数据类型

修改数据类型命令:ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

修改字段名和字段类型

修改字段名和字段类型命令:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

下面进行案例的演示:将emp表中的nickname字段修改为username,类型为varchar(30);
输入命令alter table emp change nickname username varchar(10);
在这里插入图片描述

删除字段

删除字段命令:ALTER TABLE 表名 DROP 字段名;

直接进入案例演示环节:将emp表中的username字段删除:
演示结果如下:
在这里插入图片描述

修改表名

修改表名命令:ALTER TABLE 表名 RENAME TO 新表名;

案例演示:将emp表的表名修改为employee;
输入命令:alter table emp rename to employee;
在这里插入图片描述
验证一下:show tables;,请看:
在这里插入图片描述

2.4删除

删除表有两种:第一种是单纯的把表进行删除了,第二种是删除指定表并且重新创建该表。

第一种仅仅删除表

命令:DROP TABLE[IF EXIST] 表名;

在这里插入图片描述
下面进入案例演示,删除tb_person表。输入命令:drop table if exists tb_person;
结果如下(成功删除了表tb_person):
在这里插入图片描述

第二种:删除指定表并且重新创建该表。

命令:TRUNCATE TABLE 表名;

在这里插入图片描述

下面进入演示阶段:
输入命令:truncate table employee;
在这里插入图片描述

三、DDL语句总结

本文我们主要介绍了DDL语句中的数据库操作和表操作。

数据库操作主要介绍了以下的语句:

SHOW DATABASES;
CREATE DATABASE 数据库名;
USE 数据库名;
SELETE DATABASE();
DROP DATABASE 数据库名;

表操作主要介绍了以下的语句:

SHOW TABLES;
CREATE TABLE 表名(字段 字段类型,字段 字段类型);
DESC 表名;
SHOW CREATE TABLE 表名;   显示该表的建表语句
ALTER TABLE 表名 ADD/MODIFY/CHANGE/DROP/RENAME TO...;
DROP TABLE 表名;

好了,友友们,以上就是DDL语句中的基本语法。

就到这里啦,再见!!!

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

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

相关文章

vue优化首屏加载时间优化-cdn引入第三方包

前言 为什么要进行首屏加载优化,因为随着我们静态资源和第三方包和代码增加,压缩之后包会越来越大 随着网络的影响,在我们第一输入url请求资源时候,网络阻塞,加载时间长,用户体验不好 仔细观察后就会发现…

linux和macOS平台中python语言文件上传的一处不同实现

背景 linux系统, python语言,tornado框架 现象 x文件在macOS平台可正常上传, linux平台上传失败。 x文件说明 文件名:xxxx秘密 .mp3 文件格式:mp3 原因 文件名包含\x20\x7f导致, \x20是设备控制, \…

Android逆向工程【黑客帝国】

Android逆向是一门艺术,涵盖的范畴非常广,要学习的东西也很多,如果是为了就业目的,学习的偏向性一定要掌握好。而Android逆向必须掌握的技能有以下: 负责安卓程序的加解密和数据传输分析、拆解、逆向等工作;逆向APK,了…

Agisoft/PhotoScan手动对齐照片

所以我到网上查了一下资料,了解了如何通过添加标记的方式,手动对齐照片。参考文档是PhotoScan的用户手册(http://www.agisoft.com/pdf/photoscan-pro_1_4_en.pdf)。 手动对齐照片,需要在未对齐照片上添加四个及以上标记,并在已对…

Android——数据存储(一)(二十一)

1. 数据存储 1.1 知识点 (1)掌握Android数据存储的分类; (2)可以使用SharedPreferences存储数据。 1.2 具体内容 对于我们数据的存储而言,Android一共提供了5个数据存储的方式:SharedPrefe…

Swift 另辟蹊径极速生成图片的缩略图

功能需求 在 App 开发中,创建图片缩略图是一种很常见的操作。但是超大图片如何快速且便捷的生成指定尺寸的缩略图呢? 如上图所示:我们极速生成缩略图比常规方式快了将近 27 倍之多!且生成代码没有用任何第三方库,完全是  原生实现。 在上面演示中包含几张数码相机原始…

huggingface 使用入门笔记

概念 Hugging Face Hub​​和 Github 类似,都是Hub(社区)。Hugging Face可以说的上是机器学习界的Github。Hugging Face为用户提供了以下主要功能: ​模型仓库(Model Repository)​​:Git仓库可以让你管理代码版本、…

动态规划区间dp之647回文子串

题目: 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 示例: 题目链接:647.…

Android 线程池源码详解(一)

线程池的创建是通过Executors 构造出来的,这是个典型的工厂类,使用了工厂模式。常用的有四种线程池: 分别是newFixedThreadPool,newSingleThreadExecutor, newCachedThreadPool,newScheduledThreadPool&am…

小白备战大厂算法笔试(二)——数组、链表、列表

常见数据结构 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构”两个维度进行分类。 逻辑结构可被分为“线性”和“非线性”两大类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线…

制药行业常见生产设备有哪些?

制药行业是一个关系到人民健康和生命安全的特殊领域,因此,生产质量和合规性是至关重要的。为了满足严格的生产质量管理规范(GMP)要求(>>制药行业GMP是什么?),制药企业需要使用…

公司办公文件加密防泄密软件哪个好?

天锐绿盾是一款专业的数据安全解决方案,旨在保护企业的核心数据。它采用基于Windows、Mac、Linux内核的文档透明加解密技术,对指定类型的文件进行实时、强制、透明加密,使得文件在操作时自动解密,关闭时自动加密,能够有…

基于物理层网络编码的相位同步算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..........................................................................%数据长度 Len…

前端(十七)——gitee上开源一个移动端礼盒商城项目(前端+后台)

🤗博主:小猫娃来啦 🤗文章核心:gitee上开源一个移动端礼盒商城项目 文章目录 前言开源地址项目运行命令项目基本展示前端效果细节展示视频前端代码细节展示视频后台效果展示后台代码展示经典优势思维导图实现思路 前言 项目样式老…

Redux中间件源码解析与实现

基本介绍 本文中涉及到的关键npm包的版本信息如下: react 的版本为18.2.0 redux的版本为4.1.2 redux-thunk版本为2.4.2 redux-promise版本为0.6.0 redux-logger版本为3.0.6 在Redux源码解析与实现(一)Redux源码解析与实现(二&…

Python爬虫:下载小红书无水印图片、视频

该代码只提供学习使用&#xff0c;该项目是基于https://github.com/JoeanAmier/XHS_Downloader的小改动 1.下载项目 git clone https://github.com/zhouayi/XHS_Downloader.git2.找到需要下载的文章的ID 写入main.py中 3.下载 python main.py最近很火的莲花楼为例<嘿嘿…

【Java】传输层UDP

传输层UDP UDP基本特点无连接不可靠面向数据报缓冲区大小受限 UDP协议端格式16位UDP长度16位UDP检验和 UDP基本特点 UDP传输的过程类似于寄信 无连接,不可靠传输,面向数据报,全双工 无连接 知道对端的IP和端口号就直接进行传输&#xff0c;不需要建立连接&#xff1b; 不可…

Linux进程间通信(IPC)的几种方式

概述: “ 进程间通信&#xff08;IPC&#xff0c;Inter-Process Communication&#xff09;&#xff0c;指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位(进程是分配资源最小的单位&#xff0c;而线程是调度的最小单位&#xff0c;…

java八股文面试[数据库]——行溢出

行记录格式 1) 行格式分类 表的行格式决定了它的行是如何物理存储的&#xff0c;这反过来又会影响查询和DML操作的性能。如果在单个page页中容纳更多行&#xff0c;查询和索引查找可以更快地工作&#xff0c;缓冲池中所需的内存更少&#xff0c;写入更新时所需的I/O更少。 I…

如何利用TikTok营销策略,来帮你赢得用户的心?

TikTok作为一款全球热门的短视频社交应用&#xff0c;已经成为许多品牌和营销人员的首选平台之一。作为一个出海公众号博主&#xff0c;我将在下面的文章中探讨TikTok营销的重要性、策略和成功案例。 首先&#xff0c;我们来谈一谈TikTok营销的重要性。随着移动互联网的迅速发…