MySQL数据库从入门到精通学习第5天(创建数据表,查看,修改表结构,删除表)

news2024/9/21 16:38:21

创建数据表,查看,修改表结构

  • 创建数据表
  • 查看表结构
  • 修改表结构
  • 删除表

创建数据表

在对MySQL数据表进行操作之前我们需要创建数据库,并使用USE语句选择数据库。

创建数据库使用CREATE TABLE语句:

语法:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名 [(create_definition,...)][select_statement];

[TEMPORARY]:表示创建一个临时表。

[IF NOT EXISTS]:表示判断表是否存在,不存在即创建,存在则防止报错。

[(create_definition,...)]:表示创建表时,表中每一列的属性,需要注意的是,创建数据表时,必须包含一个列属性,否则会报错。

[select_statement]:SELECT语句描述部分,用于快速创建表。


对于create_define,即创建表的属性,我们来进行单独的说明,因为在创建表,最重要的部分就在于此了。

语法:col_name type [NOT NULL | NULL][DEFAULT default_value][AUTO_INCREMENT][PERIMARY KEY];

col_name:字段名。

type:字段类型。

[NOT NULL | NULL]:指出该列是否允许是空值,系统一般会默认允许为空值,,所以当不允许为空值时,必须使用NOT NULL。

[DEFAULT default_value]:表示默认值是多少。

[AUTO_INCREMENT]:表示自动编号,可以设定从什么值开始自增,每个表只能有一个AUTO_INCREMENT列,并且必须被索引。

[PERIMARY KEY]:主键,一个表只能有一个主键,并且在设置的主键的列中的值必须唯一并且不能为空。


示例:

CREATE TABLE TEXT(ID INT AUTO_INCREMENT PRIMARY KEY,
						NA VARCHAR(30),
						COURSE VARCHAR(30) NOT NULL,
						CREATETIME DATETIME);

首先使用USE语句选择要使用的数据库,再使用上面语句的创建,运行结果如下:

在这里插入图片描述

还可以使用SELECT语句进行快速创建表,他是在一个已经存在的数据表的基础上创建该表的备份,相当于复制一个表的结构。

语法:CREATE TABLE [IF NOT EXISTES] 数据表名 {LIKE 源数据表名}

{LIKE 源数据名}:必选项,表示指定依照哪个数据表来创建新表。

示例:CREATE TABLE IF NOT EXISTES TEXT_1 {LIKE TEXT};

结果如下:

在这里插入图片描述

这里可以看出两个表的结果是一样的,即我们复制表text创建text_1成功了。

注意:这里我们虽然复制了表的结构,但是并不能对表的内容进行复制,即新复制的表为空表,如果要复制源数据表的内容,可以通过AS语句来实现,如:CREATE TABLE TEXT_1 AS SELECT * FROM TEXT,这里的SELECT我们后面会讲该语句。

查看表结构

通过上面创建数据表,现在我们来查看我们刚创建的数据表,使用SHOW COLUMNS语句来查看表结构。

语句:SHOW COLUMNS FROM 数据库表名 [FROM 数据库名]; 或者 SHOW COLUMNS FROM 数据库表名.数据库名;

示例:SHOW COLUMNS FROM TEXT;

结果如下:

在这里插入图片描述

修改表结构

修改表结构指的是增加或删除字段、修改字段名\类型以及修改表名等,这里可以使用ALTER语句来实现。

语法:ALTER [IGNORE] TABLE 数据表名 alter_spec;

[IGNORE]:如果出现重复关键的行,则只执行一行,其他重复的行被删除。

数据库表名:用于指定要修改的数据表的名称。


对于alter_spec我们单独拿出来说明,因为他涉及到对数据表的结构的修改操作,语句比较多。

  • 添加新字段ADD [COLUMN] create_definition [FIRST | AFTER column_name] >>> create_definition 用于定义列的数据类型和属性。>>> [FIRST | AFTER column_name] 用于指定位于哪个字段的前面(FIRST)或者后面(AFTER),columns_name表示指定名。

  • 添加索引名称ADD INDEX [index_name] (index_col_name,...)>>> [index_name] 用于指定索引名。>>> (index_col_name,…) 指定索引列名。

  • 添加主键名称ADD PRIMARY KEY (index_col_name,...) >>> (index_col_name,…) 指定索引列名。

  • 添加唯一索引ADD UNIQUE [index_name] (index_col_name,...) >>> [index_name] 用于指定索引名。>>> (index_col_name,…) 指定索引列名。

  • 修改字段默认值ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} >>> {SET DEFAULT literal | DROP DEFAULT} 表示字段设置或者删除默认值。

  • 修改字段名/类型CHANGE [COLUMNS] old_col_name create_definition >>> old_col_name用于指定要修改的字段名。>>>create_definition用于定义列的数据类型和属性。

  • 修改子句定义字段MODIFY [COLUMNS] create_definition >>> create_definition用于定义列的数据类型和属性。

  • 删除字段名称DROP [COLUMNS] col_name

  • 删除主键名称DROP PRIMARY KEY

  • 删除索引名称DROP INDEX index_name

  • 更改表名RENAME [AS] new_tbl_name

提示:ALTER TABLE语句允许指定多个动作,其动作间使用逗号分隔,每个动作表示对表的结构进行修改。这里更改表名还可以直接使用RENAME TABLE old_tbl_name TO new_tbl_name; 语句。

删除表

语法:DROP TABLE [IF EXISTS] 数据表名;>>> 这里的数据表名可以为多个,他们之间使用英文的“,”隔开

示例:DROP TABLE TEXT_1;

结果如下:

在这里插入图片描述

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

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

相关文章

机试打卡 -06 异位词分组(哈希表)

最容易想到的是利用 ord( ) 函数,按照字母计数的特征归类,代码如下: class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:ans_list[]# 哈希表 {word_count:ans_list中的索引}word_count_dictdict()# 遍历strfo…

NR RLC(三) TM and UM mode

欢迎关注同名微信公众号“modem协议笔记”。 实网下VOLTE通话时常会出现通话无声或者断续的情况,通常的做法是通过检查MO/MT UL发送和DL接收,进一步排查问题原因,modem就避免不了要查看RLC的收发情况,而voice配置一般都是RLC UM …

【Linux系统编程(文件编程)】之读、写文件、文件光标移动

文章目录 一、文件写入二、文件读取三、文件光标移动使用 lseek() 计算文件大小 一、文件写入 write() writes up to count bytes from the buffer starting at buf to the file referred to by the file descriptor fd.write() write() 函数,将从buf缓冲区开始&…

开发实例:Spring Boot、MyBatis和Layui打造增删改查项目

目录导航 1. 技术栈介绍1.1 Springboot1.2 MyBatis1.3 Layui 2. 开发环境2.1 前端示例代码2.2 后端示例代码2.3 数据库建表语句 3. 项目截图4. 运行截图4.1 查询界面4.2 新增界面4.3 修改界面4.4 删除界面 5. 小结6. 完整代码下载 通过学习这个实例项目,我们将积累点…

[HarekazeCTF2019]baby_rop2

小白垃圾笔记,不建议阅读。 这道题学到了两个思想吧: 1.一个是有的函数泄露libc打印不写出来。 2.另一个是printf函数的利用吧。 3.栈对齐好像是只有system有。 分析下题目吧: 64位 绕过nx 本来以为第10行,有坑呢。结果好像是…

简单三招教你音频怎么翻译

随着世界全球化的加速发展和文化交流的增多,音频翻译这项技术变得越来越重要。在国际商务和学术会议中,语言的沟通至关重要。不同国家或地区的参与者会用不同的语言进行交流,这时候,使用音频翻译就可以帮助他们更好地沟通&#xf…

2023年最强测试工程师Linux面试题及答案

前言: 大家好,前段时间有很多朋友给我私信留言:在面试软件测试工作时,部分的liunx的问题答不上来,于是雷叔快马加鞭,连夜给大家整理了一份关于linux的面试题,请看好了。 正文: 1.三…

算法分析基础

问题:如何比较不同算法的性能? 分析算法的运行时间 算法分析的原则 归纳基本操作 如:运算、赋值、比较 统一机器性能 假设基本操作代价均为1 统一机器性能后,算法运行时间依赖于问题输入规模与实例 相同输入规模&#xff0c…

python神经网络实现手写数字识别实验

手写数字识别实验是机器学习中最常见的一个示例,可以有很多种办法实现,最基础的其实就是利用knn算法,根据数字图片对应矩阵与经过训练的数字进行距离计算,最后这个距离最短,那么就认为它是哪个数字。 这里直接通过神经…

项目的延伸

目录 推送模块 1.表 1.1 表字段 1.2 字段类型 1.3 索引 1.4 关联查询 2.参数的含义 3.以技术流的维度讲业务逻辑 4.redis 4.1基础知识 5.设计模式 5.1策略模式 5.2工厂模式 6.遇到的问题 6.1稳定性 7.锁 即时通讯模块 1.表 1.1 表字段 1.2 字段类型 1.3 索…

关于队头阻塞的一些笔记

一、队头阻塞(Head-of-Line Blocking,HOL) 看到队头,联想到了数据结构课程中学到的队列,队列的一个特点就是FIFO(First In First Out),即先进入队列的数据先出队列。所以&#xff0…

【Linux高级 I/O(6)】存储映射 I/O进阶应用(附代码示例)

mprotect()函数 使用系统调用 mprotect()可以更改一个现有映射区的保护要求&#xff0c;其函数原型如下所示&#xff1a; #include <sys/mman.h>int mprotect(void *addr, size_t len, int prot);参数 prot 的取值与 mmap()函数的 prot 参数的一样&#xff0c;m…

Pycharm 配置jupyter notebook 且Windos 安装vim编辑器

请记住要想让你的python成功安装jupyter notebook &#xff0c;你的python最好使用p大于等于python3.7 最好不要在python2大版本中安装jupyternotebook 这个会报错&#xff0c;需要你改一些配置文件&#xff0c;除非你想挑战一下自己&#xff0c;不过后面我会尝试在python2大版…

NeRF-VAE:将场景看作一个分布【ICML‘2021】

文章目录 GQN网络介绍Amortized InferenceNeRF-VAE GQN网络介绍 论文标题&#xff1a;Neural scene representation and rendering 作者&#xff1a;S. M. Ali Eslami, Danilo Jimenez Rezende, et al. 期刊&#xff1a;Science 发表时间&#xff1a;2018/06/15 该文章提出…

单视觉L2市场「鲶鱼」来了,掀起数据反哺高阶新打法

作者 | 张祥威编辑 | 德新 智驾方案的降本行动仍在推进。 早年&#xff0c;单视觉L2市场的玩家以Mobileye、博世为主&#xff0c;后来国内智驾公司加入&#xff0c;共同推动 1V、1R1V、nR1V等不同的方案兴起&#xff0c;L2近乎成为车辆的必备功能。 当下&#xff0c;在行业降低…

认识linux文件系统/文件夹名字解释

linux系统因为其高效、直接的底层操作而被很多代码开发者使用&#xff0c;谈及linux&#xff0c;大家普遍的印象就是黑乎乎的终端命令行&#xff0c;后来基于linux系统开发出来的具有可视化桌面的ubuntu版本&#xff0c;让大家的使用体验兼顾了windows系统的直观性可linux系统代…

YOLOV5使用(一): docker跑通,详解TensorRT下plugin的onnx

yolov5的工程使用(以人员检测为案例) 使用ubuntu为案例 docker run --gpus all -it -p 6007:6006 -p 8889:8888 --name my_torch -v $(pwd):/app easonbob/my_torch1-pytorch:22.03-py3-yolov5-6.0使用端口映射功能也就是说打开jupyter lab的指令是 http://localhost:8889/l…

windows先的conda环境复制到linux环境

如果是迁移的环境一致&#xff1a;同是windows或同是linux直接用这个命令即可&#xff1a; conda create -n new_env_name --clone old_env_path 如果是window的环境迁移到linux这种跨环境就不能用上面的方法&#xff0c;网上这方面的资料也很多&#xff0c;记录一下我的…

小蝌蚪找妈妈:Python之作用域链与 LEGB 原则

文章目录 参考描述作用域对象全局作用域globals() 局部作用域locals() 包含作用域内置作用域builtins 模块builtins 模块与 \_\_builtins__builtins is \_\_builtins__??? \_\_builtins__ 与内置作用域赶不走的 \_\_builtins__ 作用域链作用域链 与 LEGB 原则狗急跳墙之法 参…

【Go语言从入门到实战】基础篇

Go语言从入门到实战 — 基础篇 First Go Program 编译 & 运行 基本程序结构 应用程序入口 package mainimport "fmt"func main() {fmt.Println("Hello World") }退出返回值 package mainimport ("fmt""os" )func main() {fmt.Pr…