SQL语法与DDL语句的使用

文章目录

  • 前言
  • 一、SQL通用语法
  • 二、DDL语句
    • 1、DDL功能介绍
    • 2、DDL语句对数据库操作
      • (1)查询所有数据库
      • (2)查询当前数据库
      • (3)创建数据库
      • (4)删除数据库
      • (5)切换数据库
      • (6)查询当前数据库中的所有表
      • (7)创建表结构
      • (8)查看指定表结构
      • (9)查询指定表的建表语句
      • (10)表中添加字段
      • (11)在表中修改指定数据类型
      • (12)表中修改字段名和字段类型
      • (13)表中删除字段
      • (14)修改表名
      • (15)删除表
      • (16)删除指定表,并重新创建表
  • 总结


前言

本文主要介绍SQL的通用语法和DDL语句的使用,阅读本文前读者应了解数据库的存储结构。
实验环境:Windows11操作系统,Mysql数据库


一、SQL通用语法

关于sql语句的语法主要有以下几个方面:
(1) SQL语句可以单行或多行书写,以分号结尾
(2) SQL语句可以使用空格/缩进来增强语句的可读性
(3) MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
(4) 注释单行注释:-- 注释内容 或 # 注释内容多行注释:/*  注释内容 */

二、DDL语句

1、DDL功能介绍

SQL语句根据其功能主要可以分为以下四类:DDL、DML、DQL、DCL
本文介绍的DDL语句的功能为:数据定义语言,用来定义数据库对象(数据库,表,字段

2、DDL语句对数据库操作

(1)查询所有数据库

show databases;

当我们输入这个语句后就会显示当前我们所拥有的数据库:mysql,information_schema等
在这里插入图片描述

(2)查询当前数据库

select database();

因为当前没有使用任何数据库,所以是空:
在这里插入图片描述

(3)创建数据库

create database [if not exists ] 数据库名 
[default charset 字符集] [collate 排序规则];
# 方括号中的都是可选内容,即使不书写也会采用默认方案

比如我们创建一个名为test的数据库,采用数据库默认的字符集和排序规则
在这里插入图片描述
可以看到当前数据库服务器中test数据库就被成功创建了。

又由于在同一数据库服务器中,不能同时创建两个名称相同的数据库,否则会报错(如果我们再次创建一个名为test的数据库就会报错
在这里插入图片描述
为了避免这样的错误,我们可以采用if not exists参数来解决这个问题,如果数据库存在则不创建,如果不存在就创建。
如下图所示我们再次创建test数据库时,就不会报错:
在这里插入图片描述

当我们创建一个名为test1,字符集指定为utf8mb4时的数据库使用的语句:
在这里插入图片描述

(4)删除数据库

drop database [if exists] 数据库名;

如下图我们删除创建的test1数据库

(5)切换数据库

use 数据库名;

当我们要操作一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。
如下图所示,我们切换到test数据库中:
在这里插入图片描述

(6)查询当前数据库中的所有表

show tables;

注意:使用该语句时,要先使用use语句切换到一个数据库下。

如我们查看test数据库中的表数据,由于当前test数据库下没有表,所以显示为空:
在这里插入图片描述

(7)创建表结构

create table 表名(字段1 字段1类型[comment 字段1注释],字段2 字段2类型[comment 字段2注释],字段3 字段3类型[comment 字段3注释],......字段n 字段n类型[comment 字段n注释])[comment 表注释];

我们创建一个如下图所示的表结构,并将表格名字命名为characters:
在这里插入图片描述
在这里插入图片描述
可以看到我们成功在名为test的数据库中创建了一张名为characters的表结构。

(8)查看指定表结构

desc 表名;

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

(9)查询指定表的建表语句

show create table 表名;

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

(10)表中添加字段

alter table 表名 add 字段名 类型 [comment 注释] [约束];

为characters表添加一个名为tel的字段,类型为varchar(11)如下图所示:
在这里插入图片描述

(11)在表中修改指定数据类型

alter table 表名 modify 字段名 新数据类型;

修改tel字段的类型为varchar(12),如下图所示:
在这里插入图片描述

(12)表中修改字段名和字段类型

alter table 表名 change 旧字段名 新字段名 类型 [comment 注释] [约束];

如将字段tel改为newname,类型为varchar(30),如下图所示:
在这里插入图片描述

(13)表中删除字段

alter table 表名 drop 字段名;

将字段newname字段删除,如下图所示:
在这里插入图片描述

(14)修改表名

alter table 表名 rename to 新表名;

将characters表名改为test如下图所示:
在这里插入图片描述

(15)删除表

drop table [if exists] 表名;

我们将test表删除,如下图所示:
在这里插入图片描述

(16)删除指定表,并重新创建表

truncate table 表名;

该语句的作用是将指定表删除并重新创建一个表名、表头与原表完全相同的表,只不过表中存储的数据被清空了,起到一个刷新表的作用。

总结

本文主要介绍了SQL语句中的DDL语句的使用方法,希望对您有所帮助。

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

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

相关文章

Netty简易聊天室

文章目录 本文目的参考说明环境说明maven依赖日志配置单元测试 功能介绍开发步骤 本文目的 通过一个简易的聊天室案例,讲述Netty的基本使用。同时分享案例代码。项目中用到了log4j2,junit5,同时分享这些基础组件的使用。项目中用到了awt&…

基于Java+SpringBoot+Vue前后端分离美食推荐商城设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

操作系统-笔记-汇总

目录 📚 前言 🌸章节汇总 🚀 学习心得 ⌛2023年8月24日 星期四 📚 前言 在学习过了《计算机组成原理》之后,对计算机硬件有了一定清晰的认识 从一个架构,到一个个硬件的诞生,一个个线路的规…

云服务器(Centos7系统)配置JAVA+mysql+tomcat 环境

文章主要内容来源云服务器(Centos7系统)部署javaweb项目(二)配置JAVAmysqltomcat 环境_man_zuo的博客-CSDN博客 模仿途中遇到的问题 连接无效 有时连接无法下载,可能是过期了,将其更换为官网给的下载连接即…

2023最详细的接口测试用例设计教程

一、接口测试流程 1、需求讨论 2、需求评审 3、场景设计 4、数据准备 5、测试执行 二、分析接口文档元素 1、接口名称 2、接口地址 3、支持格式 4、请求方式 5、请求参数(参数名称、类型、是否必填、参数说明等) 6、返回参数(返回…

Visual Studio中Linux开发头文件intellisense问题的解决办法

文章目录 前言个人环境 SSH到WSL复制文件后记 前言 最近在用我心爱的Visual Studio配合WSL2做一些Linux开发&#xff0c;但是有一个问题&#xff0c;就是当我#include <sys/socket.h>&#xff0c;会提示找不到文件 我尝试了各种姿势&#xff0c;包括修改CMakeSettings.…

第三讲,旋转向量和欧拉角

1.旋转向量 旋转矩阵来描述旋转&#xff0c;有了变换矩阵描述一个六自由度 的三维刚体运动&#xff0c;是不是已经足够了呢&#xff1f;但是&#xff0c;矩阵表示方式至少有以下几个缺点&#xff1a; SO(3) 的旋转矩阵有九个量&#xff0c;但一次旋转只有三个自由度。因此这种…

谁说银行U盾有OK键,就不能远程连接调用?

如今很多公司都在用USB Server管理U盾&#xff0c;但是有的U盾不是要按OK键吗&#xff1f;怎么远程连接呢&#xff1f; 了解一下U盾OK键远程点按器&#xff01; 有了它就可以配合USB Server自动点按OK键、远程连接调用网银U盾&#xff01; 把U盾固定在点按器上&#xff0c; 将…

无涯教程-Python机器学习 - Analysis of Silhouette Score函数

剪影得分的范围是[-1,1]。其分析如下- 1分数-接近1 剪影分数表示样本距离其邻近簇很远。 0分数-0 剪影分数表示样本在将两个相邻聚类分隔开的决策边界上或非常接近。 -1分数-1 剪影分数表示样本已分配给错误的聚类。 Silhouette得分的计算可以使用以下公式完成 $$剪影得…

腾讯云coding平台平台inda目录遍历漏洞复现

前言 其实就是一个python的库可以遍历到&#xff0c;并不能遍历到别的路径下&#xff0c;后续可利用性不大&#xff0c;并且目前这个平台私有部署量不多&#xff0c;大多都是用腾讯云在线部署的。 CODING DevOps 是面向软件研发团队的一站式研发协作管理平台&#xff0c;提供…

水库大坝北斗RTK位移自动监测系统方案

一、方案背景 我国已拥有水库大坝9.8万余座&#xff0c;其中95%以上为土石坝&#xff0c;95%以上是上个世纪80年代以前建设的老坝。虽然近10年来我国进行了大规模的病险水库除险加固&#xff0c;但水库大坝数量多&#xff0c;土石坝多&#xff0c;出险的几率非常高。大坝作为一…

element-ui中的el-table的summary-method(合计)的使用

场景图片&#xff1a; 图片1&#xff1a; 图片2&#xff1a; 一&#xff1a;使用element中的方法 优点&#xff1a; 直接使用summary-method方法&#xff0c;直接&#xff0c;方便 缺点&#xff1a; 只是在表格下面添加了一行&#xff0c;如果想有多行就不行了 1&#xff1a;h…