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

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【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.rhkb.cn/news/123019.html

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

相关文章

【群答疑】jmeter关联获取上一个请求返回的字符串,分割后保存到数组,把数组元素依次作为下一个请求的入参...

一个非常不错的问题,来检验下自己jmeter基本功 可能有同学没看懂题,这里再解释一下,上面问题需求是:jmeter关联获取上一个请求返回的字符串,分割后保存到数组,把数组元素依次作为下一个请求的入参 建议先自…

Spring-mvc的参数传递与常用注解的解答及页面的跳转方式---综合案例

目录 一.slf4j--日志 二.常用注解 2.1.RequestMapping 2.2.RequestParam 2.3.RequestBody 2.4.PathVariable 三.参数的传递 3.1 基础类型 3.2 复杂类型 3.3 RequestParam 3.4 PathVariable 3.5 RequestBody 3.6 增删改查 四.返回值 4.1 void 返回值 4.2 String 返…

在Linux系统启动java程序(jar包)

文章目录 1. mvn install生成jar包2. 利用ftp工具将jar包上传到linux服务器3. 在linux服务器上启动jar包3.1 直接启动jar包3.2 后台启动jar包3.3 后台不挂断启动jar包3.4 后台不挂断启动jar包并输出日志到指定文件3.5 其他 1. mvn install生成jar包 2. 利用ftp工具将jar包上传到…

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

1. SQLite数据库存储 1.1 知识点 (1)了解SQLite数据库的基本作用; (2)掌握数据库操作辅助类:SQLiteDatabase的使用; (3)可以使用命令操作SQLite数据库; …

Unity 编辑器资源导入处理函数 OnPostprocessTexture :深入解析与实用案例

Unity 编辑器资源导入处理函数 OnPostprocessTexture 用法 点击封面跳转下载页面 简介 在Unity中,我们可以使用编辑器资源导入处理函数(OnPostprocessTexture)来自定义处理纹理资源的导入过程。这个函数是继承自AssetPostprocessor类的&…

Liquid Studio 2023.2 Crack

Liquid Studio 提供了用于XML和JSON开发 的高级工具包以及Web 服务测试、数据映射和数据转换工具。 开发环境包含一整套用于设计 XML 和 JSON 数据结构和模式的工具。这些工具提供编辑、验证和高级转换功能。对于新手或专家来说,直观的界面和全面的功能将帮助您节省…

linux 进程管理命令

进程管理命令 查看进程命令 ps命令 显示系统上运行的进程列表 # 查看系统中所有正在运行的系统ps aux# 获取占用内存资源最多的10个进程,可以使用如下命令组合:ps aux|head -1;ps aux|grep -v PID|sort -rn -k 4|head# 获取占用CPU资源最多的10个进程&am…

C语言sizeof()计算空间大小为8的问题

在练习数据结构过程中&#xff0c;定义指针p&#xff0c;并且申请了10个char类型空间&#xff0c;但在计算p所指空间大小时候&#xff0c;发现了一些奇怪的现象。 #include <stdio.h> #include <stdlib.h>int main(){char s[12];printf("the size of memory …

FPN模型

【简介】 2017年&#xff0c;T.-Y.Lin等人在Faster RCNN的基础上进一步提出了特征金字塔网络FPN(Feature Pyramid Networks)技术。在FPN技术出现之前&#xff0c;大多数检测算法的检测头都位于网络的最顶层(最深层)&#xff0c;虽说最深层的特征具备更丰富的语义信息&#xff0…

一种改进多旋翼无人机动态仿真的模块化仿真环境研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

论文解读 | KPConv——点云上的可形变卷积网络

原创 | 文 BFT机器人 《KPConv: Flexible and Deformable Convolution for Point Clouds》是一篇发表于2019年的研究论文&#xff0c;作者为Hugues Thomas、Charles R. Qi、Jean-Emmanuel Deschaud、Beatriz Marcotegui和Franois Goulette。这篇论文关注于点云数据上的卷积操作…

小白学go基础04-命名惯例对标识符进行命名

计算机科学中只有两件难事&#xff1a;缓存失效和命名。 命名是编程语言的要求&#xff0c;但是好的命名却是为了提高程序的可读性和可维护性。好的命名是什么样子的呢&#xff1f;Go语言的贡献者和布道师Dave Cheney给出了一个说法&#xff1a;“一个好笑话&#xff0c;如果你…

Java学习笔记——34多线程01

多线程 实现多线程进程和线程的区别多线程的实现方式方式一&#xff1a;继承Thread类设置线程名称线程调度线程控制线程生命周期 方式二&#xff1a;实现Runnable接口 实现多线程 进程和线程的区别 进程&#xff1a;是正在运行的程序 是系统进行资源分配和调用的独立单位每一…

SpringMvc进阶

SpringMvc进阶 SpringMVC引言一、常用注解二、参数传递三、返回值 SpringMVC引言 在Web应用程序开发中&#xff0c;Spring MVC是一种常用的框架&#xff0c;它基于MVC&#xff08;Model-View-Controller&#xff09;模式&#xff0c;提供了一种结构化的方式来构建可维护和可扩…

Json字符串内容比较-超实用版

背景 之前有类似接口diff对比&#xff0c;数据对比的测试需求&#xff0c;涉及到json格式的数据对比&#xff0c;调研了几个大神们分享的代码&#xff0c;选了一个最符合自己需求的研究了下。 说明 这个对比方法&#xff0c;支持JsonObject和JsonArray类型的数据对比&#x…

Matlab图像处理- 高斯低通滤波器

高斯低通滤波器 高斯低通滤波器是一种更平滑的一种滤波器&#xff0c;高斯低通滤波器完全没有振铃现象&#xff0c;且边缘平滑。 示例代码 利用输入图像&#xff0c;构建一个截止频率为30的高斯低通滤波器的透视图如下图所示。 M 2*size(I,1); %滤波器…

Elasticsearch脑裂

文章目录 Elasticsearch脑裂 Elasticsearch脑裂 Elasticsearch脑裂是指由于网络分区或节点间通信故障导致集群中的节点无法互相正常通信&#xff0c;从而导致数据不一致的情况。这可能会导致集群中的多个节点同时自认为是主节点&#xff08;master&#xff09;&#xff0c;并开…

javaScript:DOM中的CSS操作

目录 1.style 属性获取元素写在行间的样式 2.getComputedStyle(元素对象&#xff0c;null)可以获取元素的非行间样式 3.案例&#xff08;定义一个div和按钮&#xff0c;每点击一次按钮div宽度增加&#xff09; 效果预览图 代码实现 在 JavaScript 中&#xff0c;可以通过…

vmware设置桥接模式后ip设置

网络连接方式设置 找到虚拟机里机器的网络设置 左边是宿主机&#xff0c;右边是虚拟机&#xff0c;按照这个设置就可以上网了(IP指定一个没有占用的值&#xff0c;子网掩码和网关设置成一样的)就可以联网了。 over~~

【Linux详解】——共享内存

&#x1f4d6; 前言&#xff1a;本期介绍共享内存。 目录 &#x1f552; 1. 共享内存的原理&#x1f552; 2. 共享内存的概念&#x1f558; 2.1 接口认识&#x1f558; 2.2 演示生成key的唯一性&#x1f558; 2.3 再谈key &#x1f552; 3. 共享内存相关命令&#x1f552; 4. 利…