当前位置: 首页 > news >正文

【重学 MySQL】四十六、创建表的方式

【重学 MySQL】四十六、创建表的方式

  • 使用CREATE TABLE语句创建表
  • 使用CREATE TABLE LIKE语句创建表
  • 使用CREATE TABLE AS SELECT语句创建表
  • 使用CREATE TABLE SELECT语句创建表并从另一个表中选取数据(与CREATE TABLE AS SELECT类似)
  • 使用CREATE TEMPORARY TABLE语句创建临时表
  • 指定表空间的创建方式
  • 注意事项

在这里插入图片描述

使用CREATE TABLE语句创建表

这是MySQL中创建表最常用的方式,可以通过手动定义表的结构来完成表的创建。CREATE TABLE语句的基本语法如下:

CREATE TABLE [IF NOT EXISTS] table_name (column1 datatype constraints,column2 datatype constraints,...[table_constraints]
);
  • table_name:指定要创建的表的名称。
  • column1, column2, ...:定义表中的列,包括列名和数据类型,以及可选的约束条件。
  • datatype:指定列的数据类型,如INT、VARCHAR、DATE等。
  • constraints:对列进行约束,如NOT NULL、PRIMARY KEY、UNIQUE等。
  • table_constraints:可选的表级约束,如FOREIGN KEY等。

例如,创建一个名为department的表,包含部门编号和部门名称两个字段:

CREATE TABLE department (dept_id INT NOT NULL PRIMARY KEY,dept_name VARCHAR(50) NOT NULL
);

使用CREATE TABLE LIKE语句创建表

这种方式可以复制已有表的结构来创建新表,但不会复制数据。语法如下:

CREATE TABLE [IF NOT EXISTS] new_table_name LIKE existing_table_name;

例如,基于employee表的结构创建一个名为emp_copy的新表:

CREATE TABLE emp_copy LIKE employee;

使用CREATE TABLE AS SELECT语句创建表

这种方式可以通过从另一个表中选取数据来创建新表,并同时复制数据。语法如下:

CREATE TABLE new_table_name AS
SELECT column1, column2, ...
FROM existing_table_name
[WHERE condition];

例如,从employee表中选取所有员工的信息创建一个名为emp_backup的新表:

CREATE TABLE emp_backup AS
SELECT * FROM employee;

使用CREATE TABLE SELECT语句创建表并从另一个表中选取数据(与CREATE TABLE AS SELECT类似)

这种方式与CREATE TABLE AS SELECT类似,也是通过从另一个表中选取数据来创建新表,但具体语法可能因MySQL版本而异。在某些版本中,可能需要使用CREATE TABLE new_table_name SELECT ...的形式。

使用CREATE TEMPORARY TABLE语句创建临时表

临时表只在当前会话中有效,当会话结束时,临时表会自动删除。语法如下:

CREATE TEMPORARY TABLE table_name (column1 datatype constraints,column2 datatype constraints,...
);

例如,创建一个名为temp_table的临时表:

CREATE TEMPORARY TABLE temp_table (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL
);

指定表空间的创建方式

在创建表时,还可以指定表空间来存储表的数据。这需要使用TABLESPACE关键字。语法如下:

CREATE TABLE table_name (column1 datatype constraints,column2 datatype constraints,...
) TABLESPACE tablespace_name;

其中,tablespace_name是预先创建好的表空间的名称。

注意事项

  1. 在创建表之前,应确保已经连接到MySQL数据库,并具有相应的权限。
  2. 表名、列名等标识符应使用有效的MySQL标识符命名规则。
  3. 数据类型和约束条件应根据实际需求进行选择和设置。
  4. 创建表时,可以使用ENGINE关键字指定表的存储引擎,如InnoDB、MyISAM等。

通过以上方式,可以在MySQL中灵活地创建表,以满足不同的数据存储需求。

相关文章:

【重学 MySQL】四十六、创建表的方式

【重学 MySQL】四十六、创建表的方式 使用CREATE TABLE语句创建表使用CREATE TABLE LIKE语句创建表使用CREATE TABLE AS SELECT语句创建表使用CREATE TABLE SELECT语句创建表并从另一个表中选取数据(与CREATE TABLE AS SELECT类似)使用CREATE TEMPORARY …...

WPS在表格中填写材料时,内容过多导致表格不换页,其余内容无法正常显示 以及 内容过多,导致表格换页——解决方法

一、现象 1,内容过多导致表格不换页,其余内容无法正常显示 2,内容过多,导致表格换页 二、解决方法 在表格内右击,选择表格属性 在菜单栏选择行,勾选允许跨页断行,点击确定即可 1&#xff0…...

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-01

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-01 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-01目录1. Beyond Text-to-Text: An Overview of Multimodal and Generative Artificial Intelligence for Education Using Topi…...

第一弹:C++ 的基本知识概述

文章目录 知识点 1:C 的概述1. C的特征2. C 程序的编辑、编译和执行3. 第一个 C 源程序4. 面向对象程序设计思想4.1 面向对象程序设计思想初始4.2 面向对象程序设计思想的核心 知识点 2:C 对 C 的扩展1. 作用域访问运算符 ::1.1 全局变量和局部变量1.2 作…...

在职场,没人告诉你的人情世故

职场中,想要过得游刃有余,就必须懂一些人情世故和处事原则。今天,给大家分享个人认为非常重要的5点人情世故,希望能帮你在职场里少吃点亏、多份从容。 01 不要空口道谢 在职场中,别人帮了你,口头道谢是基…...

激光切割机适用材质有哪些

激光切割机是一种利用激光束对各种材料进行高精度、高速度切割的机器设备。其适用材质广泛,包括但不限于以下两大类: 一、金属材料 不锈钢:激光切割机较容易切割不锈钢薄板,使用高功率YAG激光切割系统,切割不锈钢板的…...

C#自定义工具类-数组工具类

目录 数组工具类基本操作 1.排序:升序,降序 2.查找 1)查找最值:最大值,最小值 2)查找满足条件的单个对象 3)查找满足条件的所有对象 4)选取数组中所有对象的某一字段 完整代…...

18年408数据结构

第一题: 解析:这道题很简单,按部就班的做就可以了。 画出S1,S2两个栈的情况: 第一轮: S1: S2: 2 3 - 8 * 5 从S1中依次弹…...

Android 通过自定义注解实现Activity间跳转时登录路由的自动拦截

应用场景 在Android 中部分软件需要登录才能使用,但是有的页面又不需要登录,Android不同于Web可以直接拦截重定向路由,因此如果在Android中如果需要检测是否登录,如果没登录跳转登录的话就需要再每个页面中判断,当然也…...

安全开发指南

1. 准备工作与培训 安全文化与意识:建立并强化组织的安全文化,对所有成员进行安全意识培训。安全策略与标准:制定明确的安全开发策略、标准和流程,包括代码审查、安全测试、事件响应等。工具与技术选择:选择合适的开发…...

【word脚注】双栏设置word脚注,脚注仅位于左栏,右栏不留白

【word脚注】双栏设置word脚注,脚注仅位于左栏,右栏不留白 调整前效果解决方法调整后效果参考文献 调整前效果 调整前:脚注位于左下角,但右栏与左栏内容对其,未填充右下角的空白区域 解决方法 备份源文件复制脚注内…...

ROS学习笔记(三):VSCode集成开发环境快速安装,以及常用扩展插件配置

文章目录 前言VSCode集成开发环境1 安装VSCode2 VSCode扩展插件2.1 VSCode扩展插件模块介绍2.1 常用扩展插件配置一、语言支持类插件二、智能辅助类插件三、科学计算与数据分析类插件四、ROS开发相关插件 3 总结相关链接 前言 关于Ubuntu与ROS的常规安装,可以看这几…...

论文精读--Two-Stream Convolutional Networks for Action Recognition in Videos

对于单张图片,丢进卷积和全连接层直接得出分类结果就行 但对于视频,早期的一些工作把视频中的一些关键帧抽取出来,把一个个帧通过网络,最后把结果合并,或者把帧叠起来,一起丢进网络。在网络中进行early fu…...

JAVA姓氏头像情侣头像家庭头像签名头像谐音顽埂头像设计小程序头像大全系统小程序源码

姓氏头像到谐音梗,打造你的专属头像大全系统 🎨✨ 👨‍👩‍👧‍👦 家庭头像:记录温馨瞬间 在这个充满爱的时代,用一张家庭头像来记录你和家人的美好瞬间吧!我们的“姓氏…...

UE5.4.3 Replay 重播回放系统

工程的配置文件DefaultEngine.ini中需要加入 +NetDriverDefinitions=(DefName=“DemoNetDriver”,DriverClassName=“/Script/Engine.DemoNetDriver”,DriverClassNameFallback=“/Script/Engine.DemoNetDriver”) 此步骤将启用并加载DemoNetDriver .ini添加示例 [/Script/En…...

深入掌握 Protobuf 与 RPC 的高效结合:实现C++工程中的高效通信

目录 一、Protobuf与RPC框架的通信流程概述二、Protobuf与RPC在C中的实际应用2.1 定义 .proto 文件2.2 编译 .proto 文件生成C代码2.3 实现服务器端逻辑2.4 实现客户端逻辑2.5 使用CMake构建工程2.6 编译与运行2.7 关键组件解析2.8 序列化与反序列化的实现 三、关键实现与解析四…...

录屏软件大比拼:四款必备工具助你轻松录制精彩瞬间!

哎呀,说到电脑录屏这事儿,我这个办公室小文员可是深有体会啊!平时工作里,经常需要录个会议啊、做个教程啊,或者分享个操作技巧给同事们看。市面上的录屏软件多得数不清,但我最常用的几款工具。今天就来跟大…...

计算机毕业设计宠物领养网站我的发布领养领养用户信息/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序

目录 1.课题背景 2.课题意义 ‌ 3.技术介绍 4.技术性需求 4.1后端服务‌: 4.2 前端展示‌ 5.数据库设计‌: 6.系统性能‌: 7.安全性‌: 8. 功能介绍: 9. 部分代码 1.课题背景 近年来,随着宠物饲养数量…...

用示波器测动态滞回线

大学物理(下)实验-中南民族大学通信工程2022级 手动逐个处理数据较为麻烦且还要绘图,故想到用pythonmatplotlib来计算结果并数据可视化。 代码实现 import matplotlib.pyplot as plt# 样品一磁化曲线 X [0, 0.2, 0.4, 0.6, 0.8, 1, 1.5, 2.…...

【JDK动态代理】JDK动态代理:为何只能代理接口和接口实现类

在Java开发中,JDK动态代理是一种非常有用的技术,它允许开发者在不修改目标类代码的情况下,为目标类添加额外的功能。然而,JDK动态代理的使用有一些限制,特别是它只能代理接口和接口实现类。本文将深入探讨这一限制的原…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

今日科技热点速览

🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM&#xff09…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...

Spring AOP代理对象生成原理

代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】,这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...

ThreadLocal 源码

ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...