DDL数据定义语言

2023-10-31

DDL(Data Definition Language)数据定义语言

DDL其实是Data Definition Language的缩写,意思就是数据定义语言。

数据库的管理

#创建一个数据库
# create database 数据库名;    此命令可以创建一个数据库
# create database 数据库名 character set utf8;  创建一个字符集是utf8的数据库

#修改数据库
# alter database 数据库名 character set 字符集;

#库的删除
# drop database books if exists 数据库;    如果存在数据库就删除

表的管理

表的创建
# 表的创建
create table 表名(
	列名 列的类型[(类型长度)  列级约束],
    ......
    表级约束
);

#常见列级约束
not null:非空约束,用于保证该字段的值不能为空
default:默认约束,用于保证该字段有默认值
primary key:主键约束,用于保证该字段的值具有唯一性,并且非空
unique:唯一约束,用于保证该字段的值具有唯一性,可以为空
check:检查约束
#常见表级约束
primary key(id,name)
foreign key(id) references 表名(id)
foreign key(name) references 表名(name)

创建一个class班级表和一个student学生表,如下图:

在这里插入图片描述

check列级约束的用法如下图:

在这里插入图片描述

表的删除
#表的删除
# drop table 表名;    删除一个表
# drop table if exists 表名;    如果表存在则删除
表的复制
#仅仅复制表的结构
# create table 复制后的表名 like 要复制哪个表

#不仅要复制表的结构,还要复制表中的内容
# create table 复制后的表名 select * from 要复制的那个表的表名

演示过程如下图:

在这里插入图片描述

在这里插入图片描述

表的修改
#修改表名
# alter table 表名 rename to 要修改为的表名;

在这里插入图片描述

#修改列名并重新指定该列的类型
# alter table 表 change column 旧的列名 新的列名 新的列名的类型;

在这里插入图片描述

#添加列
# alter table 表名 add column 新列列名 新列类型;

在这里插入图片描述

#删除列
# alter table 表名 drop column 要删除的列的列名;

在这里插入图片描述

#修改列的类型和列级约束条件
# alter table 表名 modify column 要修改的列名 

在这里插入图片描述

添加表级约束,如下图:

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DDL数据定义语言 的相关文章

  • 使用唯一索引删除重复项

    我在两个表字段 A B C D 之间插入 相信我已经在 A B C D 上创建了唯一索引以防止重复 然而我以某种方式简单地对这些做了一个正常的索引 因此插入了重复项 这是2000万条记录的表 如果我将现有索引从普通索引更改为唯一索引 或者只
  • 在docker中使用MySQL数据库设置aspnetcore

    我正在尝试设置一个 docker compose 文件 其中包含 asp net core mysql 数据库和 phpmyadmin 的容器 设置我的 mysql 服务器没有问题 我可以使用 phpmyadmin 访问它 我的 asp n
  • 将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句

    我有这个 UPDATE MySQL 语句 效果很好 UPDATE table1 Inner Join table2 ON table2 id table1 gw id SET table1 field1 1 table1 field2 2
  • 将记录分成两列

    我的数据库中有一个 学生 表 其中包含大约 5 000 条记录 我想将这些记录显示在two分区 如何在不执行查询两次的情况下做到这一点 仅使用单个查询 显示示例http www freeimagehosting net uploads f1
  • 对于数据库来说,选择正确的数据类型会影响性能吗?

    如果是这样 为什么 我的意思是 tinyint 的搜索速度比 int 快吗 如果是这样 性能上的实际差异是什么 是的 根据数据类型 它确实有所不同 int vs tinyint不会在速度上产生明显的差异 但会在数据大小上产生差异 假设tin
  • Mysql innoDB 不断崩溃[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的数据库 mysql 服务器不断崩溃 重新启动 我不知道该怎么办 我不断在 dbname org err 文件中收到以下内容 13120
  • 为什么 MySQL 创建带有 _seq 后缀的表?

    我创建了一个 InnoDB 表 名为foo在 MySQL 中 一旦我对表执行插入操作 我就会看到另一个表foo seq被建造 如果我删除自动生成的表 它会在下一次插入后出现 是什么原因造成的 听起来像是正在创建一个序列 您是否有自动生成的主
  • 截断 Mysql 表 Cron 作业?

    我在如何使用 cron 作业截断 Mysql 表时遇到了一些麻烦 无论我尝试什么 我似乎都无法让数据库清除表格 感谢您的帮助 mysql uderp example pexample hlocalhost Dexample e TRUNCA
  • InnoDB 因读未提交而死锁! - Java - Glassfish - EJB3(JPA/Hibernate)

    几天来 我在使用 Glassfish EJB3 和 Mysql InnoDB 的 Java 应用程序上遇到了死锁问题 配置 Mysql InnoDB Ver 14 12 Distrib 5 0 51a 适用于 debian linux gn
  • 使用 PHP 的 MySQL 连接字符串

    我正在尝试通过本地计算机连接到托管在我的服务器上的数据库 我的服务器有cPanel 11 它是一个典型的共享服务器 由CentOS提供支持 安装了PHP和MySQL 准确地说 我在同一台服务器上持有经销商帐户 我想在不同帐户或域之间访问数据
  • 忽略重复条目并在 EF Core 中的 DbContext.SaveChanges() 上提交成功条目

    我有一个 ASP Net Core 2 2 Web API 在我的一个控制器操作中 我向 MySQL 数据库表添加了一堆行 我使用的是 Pomelo 例如 dbContext AddRange entities dbContext Save
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • 如何使用 vitess 仅对特定表进行分片

    我创建了一个包含三个表的未分片键空间 现在我想对前两个表的键空间进行分片 但不想对第三个表进行分片 如何才能做到这一点 Vitess 文档不包含任何与此相关的信息或示例 请帮忙 Thanks vitess 中的垂直分片与水平分片类似 您应该
  • gem install mysql:无法构建 gem 本机扩展 (Mac Lion)

    我为 Mac OS X Lion 安装了 MySQL 5 5 27 来自 dmg 现在我尝试安装 mysql gem gem install mysql Building native extensions This could take
  • Mysql 将 int 转换为 MAC

    我有一些数据可以转换 其中有 2 列 其中一列有 IP 它包含整数值 我在 mysql 查询中使用了以下函数 是否有一个函数可以用来转换我的 mac 列 其中包含整数和数据类型是bigint to MAC地址 SELECT INET NTO
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 同一配置文件上的两个不同提供程序

    我在用着实体框架 6 1 0 I have 2 家提供者 MysqlClient 和 SQLServerCE 我需要创建2个不同的DBContext 这迫使我创造2个配置类因为mysql有一些不同的东西 但是当我初始化应用程序时 Datab
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • 一次从多个表中删除行

    我正在尝试将 2 个查询合并为一个这样的查询 result db gt query DELETE FROM menu WHERE name new or die db gt error result db gt query DELETE F
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤

随机推荐

  • 人生就是不断地战斗。 --王者荣耀之宫本武藏

    阿里巴巴Dubbo Zookeeper注册中心 阿里巴巴MyCat分库分表 JVM调优 垃圾收集器与内存分配策略 串行 并行收集器带来的作用 Redis缓存技术 session统一管理案例实现 引入接口联调过程 Tomcat运行机制及框架
  • 端口转发及穿透内网

    文章目录 portmap nc 正向连接 内网主机出网 反向连接 内网主机不出网 netsh端口转发 端口转发 netsh端口转发监听meterpreter frp 例子 参考 portmap https github com Brucet
  • Linux中日志管理和常见故障

    作者 小刘在C站 个人主页 小刘主页 每天分享云计算网络运维课堂笔记 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 夕阳下 是最美的绽放 树高千尺 落叶归根人生不易 人间真情 目录 一 关于日志及管理 1 日志的功能
  • OD华为机试 25

    按索引范围翻转文章片段 描述 输入一个英文文章片段 翻转指定区域的单词顺序 标点符号和普通字母一样处理 例如输入字符串 I am a developer 0 3 则输出 developer a am I 输入描述 使用换行隔开3个参数 第一
  • @Cacheable使用详解

    1 功能说明 Cacheable 注解在方法上 表示该方法的返回结果是可以缓存的 也就是说 该方法的返回结果会放在缓存中 以便于以后使用相同的参数调用该方法时 会返回缓存中的值 而不会实际执行该方法 注意 这里强调了一点 参数相同 这一点应
  • QT开发之QLineEdit

    1 设置输入限制 QLineEdit lineedit new QLineEdit this QRegExp rx a zA Z0 9 0 设置为只能输入数字和英文 QRegExpValidator pRevalidotor new QRe
  • vue使用echarts中tooltip自定义显示——使用值params参数详解

    tooltip trigger item formatter a br b c d formatter function params 在此处直接用 formatter 属性 console log params 打印数据 debugger
  • CAN接口芯片MCP2515的波特率和滤波器设置问题

    配置波特率代码 MCP2515ByteWrite CNF1 3 MCP2515ByteWrite CNF2 0x80 PHSEG1 3TQ PRSEG 1TQ MCP2515ByteWrite CNF3 PHSEG2 3TQ 功能 波特率的
  • opencv调用yolov7 yolov7 c++ yolov7转onnx opencv调用yolov7 onnx

    一 YOLOV7主要贡献 主要是现有的一些trick的集合以及模块重参化和动态标签分配策略 最终在 5 FPS 到 160 FPS 范围内的速度和准确度都超过了所有已知的目标检测器 当前目标检测主要的优化方向 更快更强的网络架构 更有效的特
  • 【零基础学QT】第一章 QT安装与工程创建

    作者主页 凉开水白菜 作者简介 共同学习 互相监督 热于分享 多加讨论 一起进步 专栏目录 零基础学QT 文章导航篇 专栏资料 https pan baidu com s 192A28BTIYFHmixRcQwmaHw 提取码 qtqt 点
  • 详解数据库基本概念

    数据库 DataBase 简称 DB 是一个长期存储在计算机内的 有组织的 可共享的 统一管理的大量数据的集合 数据库管理系统 DataBase Management System 简称 DBMS 是一种操纵和管理数据库的大型软件 用于建立
  • C#基础详解

    Excerpt C 是微软公司发布的一种面向对象的 运行于 NET Framework和 NET Core 完全开源 跨平台 之上的高级程序设计语言 C 是一种安全的 稳定的 简单的 优雅的 由C和C 衍生出来的面向对象的编程语言 它在继承
  • 使用 Python 实现斐波那契数列

    介绍 斐波那契数列是一个非常经典的数列 其前两项为 1 从第三项开始 每一项都等于前两项之和 这个数列很有意思 因为它的每一项都是前两项的和 而且越往后 数列中的数字就越大 以至于数列中的第 100 项就是黄金分割比例的倒数 斐波那契数列的
  • 关键词共现分析_结巴分词5--关键词抽取

    1 简介 关键词抽取就是从文本里面把跟这篇文档意义最相关的一些词抽取出来 这个可以追溯到文献检索初期 当时还不支持全文搜索的时候 关键词就可以作为搜索这篇论文的词语 因此 目前依然可以在论文中看到关键词这一项 除了这些 关键词还可以在文本聚
  • 三分钟教你如何写代码,构建自己的“思维帝国”

    很多人都在抱怨科技行业的知识更新的太快 他们疯狂的追逐新技术 当掌握一门新技术后突然发现 又有更新的技术来了 于是就想逃离这个行业 逃离这些不堪重负的压力 互联网的世界使用代码构建起来的 从事互联网行业就免不了时刻与代码交流 但是 技术永远
  • linux查看端口对应的应用

    根据端口查看对应进程 lsof i 端口 根据进程号PID查看对应应用 ps axu grep 进程号 根据进程号PID查看对应端口 netstat anp grep 进程号
  • 配置maven指定的JDK版本

    配置maven指定的JDK版本 第一种 最省事 在我们安装maven环境的conf目录下修改settings xml文件 如下 在profiles中加入以下配置
  • debian终端tab键无法补全命令,apt install 无法补全

    debian终端无法补全命令 输入apt i 按tab键无法补全install 这很不方便 解决方法 1 安装bash completion 包 2 编辑 etc bash bashrc 3 编辑 etc profile 4 重新登录系统即
  • Mysql和Oracle的语法区别?

    Mysql和Oracle是两种不同的关系型数据库 MySQL通常在中小型应用程序 Web应用程序和小型企业中广泛使用 因为它易于学习和部署 而且成本较低 Oracle数据库通常用于大型企业和复杂的企业级应用程序 因为它提供了高度可扩展性 高
  • DDL数据定义语言

    文章目录 DDL Data Definition Language 数据定义语言 数据库的管理 表的管理 表的创建 表的删除 表的复制 表的修改 DDL Data Definition Language 数据定义语言 DDL其实是Data