sql语法:详解DDL

Mysql版本:8.0.26
可视化客户端:sql yog

目录

  • 一、DDL是什么?
  • 二、和数据库相关的DDL
    • 2.1 创建数据库
    • 2.2 删除数据库
    • 2.3 查看所有的数据库,当前用户登录后,可以看到哪些数据库
    • 2.4 查看某个数据库的详细定义
    • 2.5 修改数据库的编码
    • 2.6 使用数据库
  • 三、和数据表相关的DDL
    • 3.1 查看某个数据库的所有表格
    • 3.2 创建数据表
    • 3.3 查看表的详细定义信息
    • 3.4 查看表结构
    • 3.5 删除表格,包括表结构和里面的数据
    • 3.6 修改表的字符集和校对规则
    • 3.7 修改表结构:增加字段
    • 3.8 修改表结构:删除字段
    • 3.9 修改一个字段名称
    • 3.10 修改表结构:修改字段的数据类型
    • 3.11 修改表结构:修改字段位置
    • 3.12 修改表名称(重命名表)


提示:以下是本篇文章正文内容,下面案例可供参考

一、DDL是什么?

DDL,英文全称为Data Definition Language,中文释义为“数据库模式定义语言”,即是用于创建库、创建表、修改库和表的结构,虽说有了可视化客户端,可以很方便的使用上述功能,但在批量修改的业务场景下,以此DDL写成的sql脚本比在可视化客户端下执行相比,简直好用太多。


二、和数据库相关的DDL

2.1 创建数据库

👉语法:

CREATE DATABASE 数据库名

案例: 创建数据库0225db

CREATE DATABASE 0225db;

在这里插入图片描述

2.2 删除数据库

👉语法:

DROP DATABASE IF EXISTS 数据库名称

案例:删除数据库0225db

DROP DATABASE IF EXISTS 0225db;

2.3 查看所有的数据库,当前用户登录后,可以看到哪些数据库

👉语法:

SHOW DATABASES:

SHOW DATABASES:

在这里插入图片描述

2.4 查看某个数据库的详细定义

👉语法:

SHOW CREATE DATABASE 数据库名称;

案例:查看0225db的详细定义

代码演示如下:

SHOW CREATE DATABASE 0225db;

在这里插入图片描述

2.5 修改数据库的编码

👉语法

ALTER DATABASE 数据库名 CHARACTER SET 新的字符集名称 COLLATE 校对规则

案例:修改数据库0106db的编码规则

修改之前:

在这里插入图片描述
代码修改如下所示:

ALTER DATABASE 0106db CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `0106db` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */

在这里插入图片描述
在这里插入图片描述

注意:

假如你现在修改了数据库的字符集规则,原来已经存放的数据表的字符集规则不变

2.6 使用数据库

👉语法:

use 数据库名;


三、和数据表相关的DDL

一般先要指定在哪个数据库,才能对表进行操作

3.1 查看某个数据库的所有表格

👉语法

USE 数据库名;
SHOW TABLES;

show tables from 数据库名;

案例:查看0106db下的所有数据表

代码演示如下:

USE 0106db;
SHOW TABLES;


SHOW TABLES FROM 0106db;

在这里插入图片描述

3.2 创建数据表

👉语法

CREATE TABLE 表名称(
	字段名1 数据类型,
	字段名2	数据类型,
	字段名3 数据类型
)

案例:创建学生表Stu,其中包含学生学号,姓名,出生日期,成绩,体重,性别,电话等字段。

代码演示如下:

CREATE TABLE Stu(
	sid INT,
	sname VARCHAR(20),
	birthday DATE,
	score INT,
	gender ENUM('男','女'),
	weight DOUBLE(4,1),
	tel CHAR(11)
)

在这里插入图片描述

3.3 查看表的详细定义信息

👉语法:

SHOW CREATE TABLE 表名称;

案例:查看表stu的详细定义信息

SHOW CREATE TABLE STU;

在这里插入图片描述

3.4 查看表结构

👉语法:

DESC 数据表名;

案例:查看数据表stu的表结构

代码演示如下:

DESC stu;

在这里插入图片描述

3.5 删除表格,包括表结构和里面的数据

👉语法:

①DROP TABLE 表名称;

②DROP TABLE stu IF EXISTS;

第二句的意思是:如果数据库中存在stu表,就把它从数据库0102db中删掉。
👉推荐使用第二种,避免出现“Unknown table ‘0106db.stu’”报错信息。

案例:删除学生表stu

代码演示如下:

DROP TABLE  IF EXISTS stu;

在这里插入图片描述

3.6 修改表的字符集和校对规则

👉语法:

ALTER TABLE 表名称 CHARSET=新字符集 COLLATE=新校对规则;

案例:修改表stu的字符集为utf8mb4,校队规则为utf8mb4_0900_ai_ci

修改之前:

在这里插入图片描述

代码修改如下:

ALTER TABLE stu CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

在这里插入图片描述

3.7 修改表结构:增加字段

👉语法:

ALTER TABLE 表名称 ADD COLUMN 字段名 数据类型;

案例:给学生表stu增加一个varchar(50) 的字段address

代码演示如下:

ALTER TABLE stu ADD COLUMN address VARCHAR(50);

在这里插入图片描述

3.8 修改表结构:删除字段

👉语法:

ALTER TABLE 表名称 DROP COLUMN 字段名;

案例:在学生表中删除刚才新加的字段address

代码演示如下:

ALTER TABLE stu DROP COLUMN address ;

在这里插入图片描述

3.9 修改一个字段名称

👉语法:

ALTER TABLE 表名称 CHANGE 旧字段名称 新的字段名称 数据类型;

案例:将stu表的tel字段改名为phone

修改之前:
在这里插入图片描述
代码修改之后;

ALTER TABLE stu CHANGE tel phone CHAR(11);

在这里插入图片描述

3.10 修改表结构:修改字段的数据类型

👉语法:

ALTER TABLE 表名称 MODIFY 字段名称 新数据类型;

案例:将stu表的score字段的数据类型修改为double

修改之前:

在这里插入图片描述

代码修改之后:

ALTER TABLE stu MODIFY score DOUBLE:

在这里插入图片描述

3.11 修改表结构:修改字段位置

👉语法:

①ALTER TABLE 表名 MODIFY 字段名称 数据类型 AFTER 另一个字段;

👉上述代码的意思:将要修改位置的字段挪到指定字段的后面

②ALTER TABLE 表名称 MODIFY 字段名称 数据类型 FIRST;

👉上述代码的意思:将要修改位置的字段挪到表格第一行

案例:在stu表中将phone字段挪到sname字段之后

修改之前:

在这里插入图片描述
代码修改之后:

ALTER TABLE stu MODIFY phone CHAR(11) AFTER sname

在这里插入图片描述

案例:将表stu中的字段gender挪到表格首行

修改之前:

在这里插入图片描述
代码修改之后;

ALTER TABLE stu MODIFY gender ENUM('男','女') FIRST;

在这里插入图片描述

3.12 修改表名称(重命名表)

👉语法;

ALTER TABLE 表名称 RENAME TO 新名称;

案例:将表stu重命名为t_stu

代码演示如下:

ALTER TABLE stu RENAME TO t_stu;

在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在深圳做了5年软件测试,到头来啥也不是~

本科非计算机专业,在深圳做了5年软件测试工作,从一开始一脸懵的点点点,到现在会自动化测试了,浅谈一下从事软件测试的一点点心得体会,仅供参考交流。如果你本科且非计算机专业的话可以试下(但就目前环境建议…

谈一谈Java的ThreadLocal

目录 先说原理: 再上代码: 运行结果: 先说原理: ThreadLocal 是一个本地线程副本变量工具类,它可以在每个线程中创建一个副本变量,每个线程可以独立地修改自己的副本变量,而不会影响其他线程…

测试的价值不仅仅是找

测试的价值不仅仅是找Bug 在我测试工作的前5年,一直以为测试的目标和价值就是在黑盒测试活动中找bug,以找到bug越多越自豪。但当我随着商业意识的不断积累,跳出测试的视角,站在公司的角度看测试时,会发现测试的目标是商…

linux驱动学习加强版-5(ioctl的使用)

文章目录一、添加ioctl控制节点二、修改测试APP2.1 测试APP的代码:2.2 驱动代码:ioctl是用户空间和内核空间相互交流时候用的比较多的一种手段。我们也可以在HAL层通过ioctl调到驱动里面。一、添加ioctl控制节点 先看patch 吧 这是在驱动中添加的ioct…

个人-计算机操作系统第五章

第五章 虚拟存储器 一、章节练习 1.系统抖动是指( )。 A. 使用机器时,千万屏幕闪烁的现象 B. 刚被调出的页面又立刻被调入所形成的频繁调入调出现象 C. 系统盘不净,千万系统不稳定的现象 D. 由于内存分配不当,偶然造成内存不够…

02-神经网络基础

一、从机器学习到神经网络 1. 两层神经网络 - 多层感知机 2. 浅层神经网络特点 (1)需要数据量小、训练速度快; (2)对复杂函数的表示能力有限,泛化能力受到制约。 Kurt Hornik 证明了理论上两层神经网络足以拟合任意函数,而且过去没有足够的数据和计算能力,因此之前的…

兰伯特光照模型(Lambert Lighting)和半兰伯特光照模型(Half-Lanbert)

关于漫反射 光打到凹凸不平的平面上,光线会被反射到四面八方,被称为漫反射 关于这种模型,由于光线由于分散,所以进入人眼的光线强度和观察角度没有区别 在A点和B点接收到的光线强度是一样的 在漫反射下,光线强度只和光…

卫龙携手契约锁,推动人事、采购、销售业务电子签

知名辣味休闲食品企业——卫龙,携手契约锁就印章管控及电子签章技术展开合作,打造覆盖总部及20多家子公司的印章管控平台,以现有泛微OA、钉钉APP为基础,推动人事、采购、销售业务电子签,通过签字、盖章无纸化&#xff…

使用Navicat进行ssh通道连接MySQL数据库

1、正常打开连接窗口,选择SSH; 2、填写完SSH对应参数,重新选择常规; SSH参数: 主机 > 服务器IP 端口 > 22 【一般22,SSH监听端口】 用户名 > 登录服务器账户 密码 > 登录服务器密码常规的参数…

mplfinancet绘制K线图

mplfinancet绘制K线图 1、安装 安装速度快 pip install mplfinance -i https://pypi.tuna.tsinghua.edu.cn/simple C:\Users>pip install mplfinance -i https://pypi.tuna.tsinghua.edu.cn/simple Defaulting to user installation because normal site-packages is not …

35岁的测试工程师被公司强行辞退,感叹道:我以前就该好好努力了

曾经的高薪软件测试工程师,今年35岁了,被公司劝退了,外卖跑到凌晨,很累,但还是有一种想诉说的冲动。哪怕让大家觉得已经说得太多了,烦了,都成祥林嫂了,但是,我是真的想说…

js:手写一个promise

背景 promise 作为前端开发中常用的函数,解决了 js 处理异步时回调地狱的问题,大家应该也不陌生了,今天来学习一下 promise 的实现过程,这样可以加(面)深(试)理(要&…

第八天并发编程篇

一、简述线程、进程、程序的基本概念? 1.进程: 我们把运行中的程序叫做进程,每个进程都会占用内存与CPU资源,进程与进程之间互相独立. 2.线程: 线程就是进程中的一个执行单元,负责当前进程中程序的执行。一个进程可以包含多个线程…

Matlab在线IDE:计算定积分上限

上一篇文章:Matlab在线IDE:MATLAB Online介绍与计算定积分案例 1、案例介绍 % 定义符号变量 x syms x;% 定义函数 f(x) x f x;% 定义定积分的值 I I 2;% 计算函数 f(x) 在 [0, x] 区间的定积分,并求其反函数 F(x) F finverse(int(f, 0, …

【hello Linux】Linux软件管理器yum

目录 1.Linux软件管理器yum 1.1 关于lrzsz 1.2 使用yum时的注意事项 1.3 查看软件包:yum list 1.4 安装软件:yum install 1.5 卸载软件:yum remove 1.6 更新yum源 1.7 实战项目 Linux🌷 1.Linux软件管理器yum 在windows系统下有应…

ROS学习——艰辛的环境安装之路一Ubuntu

文章目录Ubuntu安装和下载页面设置安装Vmware Tools安装VSCODE用几个常用命令简单熟悉下UbuntuUbuntu 安装和下载 Ubuntu的安装和下载 看这个链接 Ubuntu安装和下载1 或者这个链接 Ubuntu安装和下载2 页面设置 安装Vmware Tools 看这个链接 VMware Tools的介绍和安装 安装…

超详细从入门到精通,pytest自动化测试框架实战-pytest插件的开发(八)

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 pytest框架采用的是…

3年测试经验只会“点点点”,不会自动化即将面临公司淘汰?沉淀100天继续做测试

前段时间一个朋友跟我吐槽,说自己做软件测试工作已经3年了,可这三年自己的能力并没有得到提升,反而随着互联网的发展,自己只会“点点点”的技能即将被淘汰。说自己很苦恼了,想要提升一下自己,可不知道该如何…

简单的做一个学校毕业啊项目

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

每日一练——Day 13

前言: 小亭子正在努力的学习编程,接下来将开启编程题的练习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请点赞关注支持一波, 感激不尽~~ 第一题 题目描述: 刷…