SQL语法与DDL语句的使用

news2024/11/16 12:06:59

文章目录

  • 前言
  • 一、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.coloradmin.cn/o/933931.html

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

相关文章

【Linux-Day8- 进程替换和信号】

进程替换和信号 问题引入 我们发现 终端输入的任意命令的父进程都是bash,这是因为Linux系统是用fork()复制出子进程,然后在子进程中调用替换函数进行进程替换,实现相关命令。 (1) exec 系列替换过程:pcb 使用以前的只…

开源项目的资金来源:捐赠、赞助与商业模式

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

C语言(第三十一天)

6. 调试举例1 求1!2!3!4!...10!的和&#xff0c;请看下面的代码&#xff1a; #include <stdio.h> //写一个代码求n的阶乘 int main() {int n 0;scanf("%d", &n);int i 1;int ret 1;for(i1; i<n; i){ret * i;}printf("%d\n", ret);return …

delphi7创建DLL步骤方法

delphi7创建DLL步骤方法1.打开delphi7,点击File/New/Other...,如下图&#xff1a; 2.选择New/DLL Wizard,如下图&#xff1a; 3.起一个项目名称&#xff0c;然后点击File/SaveAll,这里以TestDll为例&#xff0c;如下图&#xff1a; 4.新建一个单元文件File/New/Unit,保存…

Vue2向Vue3过度核心技术插槽

目录 1 插槽-默认插槽1.作用2.需求3.问题4.插槽的基本语法5.代码示例6.总结 2 插槽-后备内容&#xff08;默认值&#xff09;1.问题2.插槽的后备内容3.语法4.效果5.代码示例 3 插槽-具名插槽1.需求2.具名插槽语法3.v-slot的简写4.总结 4 作用域插槽1.插槽分类2.作用3.场景4.使用…

C语言(第三十二天)

1. 递归是什么&#xff1f; 递归是学习C语言函数绕不开的一个话题&#xff0c;那什么是递归呢&#xff1f; 递归其实是一种解决问题的方法&#xff0c;在C语言中&#xff0c;递归就是函数自己调用自己。 写一个史上最简单的C语言递归代码&#xff1a; #include <stdio.h>…

拼多多anti-token分析

前言&#xff1a;拼多多charles抓包分析发现跟商品相关的请求头里都带了一个anti-token的字段且每次都不一样,那么下面的操作就从分析anti-token开始了 1.jadx反编译直接搜索 选中跟http相关的类对这个方法进行打印堆栈 结合堆栈方法调用的情况找到具体anti-token是由拦截器类f…

wazuh环境配置和漏洞复现

1.wazuh配置 虚拟机 &#xff08;OVA&#xff09; - 替代安装 (wazuh.com)在官方网页安装ova文件 打开VMware选择打开虚拟机&#xff0c;把下载好的ova文件放入在设置网络改为NAT模式 账号:wazuh-user 密码:wazuh ip a 查看ip 启动小皮 远程连接 账号admin …

Vue2向Vue3过度Vuex核心概念getters

目录 1 核心概念 - getters1.定义getters2.使用getters2.1原始方式-$store2.2辅助函数 - mapGetters 2 使用小结 1 核心概念 - getters 除了state之外&#xff0c;有时我们还需要从state中筛选出符合条件的一些数据&#xff0c;这些数据是依赖state的&#xff0c;此时会用到get…

数据结构(Java实现)-二叉树(下)

获取二叉树的高度 检测值为value的元素是否存在(前序遍历) 层序遍历 判断一棵树是不是完全二叉树 获取节点的路径 二叉树的最近公共祖先

小研究 - JAVA 虚拟机内存使用优化研究与应用

Java 虚拟机在运行 Java 应用程序的查询操作时&#xff0c;存在由于查询结果数据量大和查询并发性高而出现系统不稳定的问题。提出了一种 JVM 内存使用优化方案&#xff1a;恒定使用 JVM 内存&#xff0c;能够在不提高硬件成本的情况下&#xff0c;保证系统连续稳定地运行。 目…

c++的分文件编写

前言 在C中&#xff0c;你可以将代码分割成多个文件来提高可维护性和组织性。分割文件有助于将代码模块化&#xff0c;使大型项目更易于管理。以下是C中关于分文件的一些规则和概念&#xff1a; 理论知识 头文件&#xff08;Header Files&#xff09;&#xff1a; 头文件通常…

深入理解 C++ 中的 std::cref、std::ref 和 std::reference_wrapper

深入理解 C 中的 std::cref、std::ref 和 std::reference_wrapper 在 C 编程中&#xff0c;有时候我们需要在不进行拷贝的情况下传递引用&#xff0c;或者在需要引用的地方使用常量对象。为了解决这些问题&#xff0c;C 标准库提供了三个有用的工具&#xff1a;std::cref、std:…

2023年 Java 面试八股文下(20w字)

目录 1.1 面试过程最关键的是什么&#xff1f; 1.2 面试时该怎么说&#xff1f; 1.3 面试技巧 1.3.1 六个常见问题 1.3.2 两个注意事项 1.3.3 自我介绍&#xff08;控制在4分半以内&#xff0c;不超过5分钟&#xff09; 手写代码 2.1 冒泡排序&#xff08;Bubble Sort&…

Spring Boot整合RabbitMQ之路由模式(Direct)

RabbitMQ中的路由模式&#xff08;Direct模式&#xff09;应该是在实际工作中运用的比较多的一种模式了&#xff0c;这个模式和发布与订阅模式的区别在于路由模式需要有一个routingKey&#xff0c;在配置上&#xff0c;交换机类型需要注入DirectExchange类型的交换机bean对象。…

自动化测试 —— Pytest测试框架

01 | 简介 Pytest是一个非常成熟的全功能的Python测试框架&#xff0c;主要有以下特点&#xff1a; 简单灵活&#xff0c;容易上手&#xff0c;文档丰富 支持参数化&#xff0c;可以细粒度地控制测试用例 支持简单的单元测试与复杂的功能测试&#xff0c;还可以用来做Seleni…

软考A计划-系统集成项目管理工程师-法律法规-下

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

小研究 - Java虚拟机即时编译器的一种实现原理

深入分析了 &#xff2b;&#xff41;&#xff46;&#xff46;&#xff45;虚拟机的 &#xff2a;&#xff29;&#xff34;&#xff08;&#xff2a;&#xff55;&#xff53;&#xff54;&#xff0d;&#xff29;&#xff4e;&#xff0d;&#xff34;&#xff49;&#xf…

websocket和uni-app里使用websocket

一、HTTP是无状态协议 特点&#xff1a; 1、浏览器发送请求时&#xff0c;浏览器和服务器会建立一个连接。完成请求和响应。在http1.0之前&#xff0c;每次请求响应完毕后&#xff0c;会立即断开连接。在http1.1之后&#xff0c;当前网页的所有请求响应完毕后&#xff0c;才断…

64位ATT汇编语言调用自己编写的两个数相加函数,使用printf输出,发现报错Segmentation fault

cat /etc/redhat-release看到操作系统是CentOS Linux release 7.6.1810&#xff0c;uname -r看到内核版本是3.10.0-957.el7.x86_64&#xff0c;gcc --version可以看到gcc版本是12.2.0&#xff0c;gdb --version可以看到gdb版本是12.1。 twoNumberPlus.s里边的内容如下&#x…