『 MySQL数据库 』数据库基础之表的基本操作

文章目录

    • 创建表🗡
    • 查看表🗡
      • ✒ 查看表内所有信息(描述\表结构等)
      • ✒ 根据条件查看表内数据
      • ✒ 查看表的具体详细信息:
    • 修改表🗡
      • ✒ 修改表名:
      • ✒ 修改表的存储引擎、编码集(字符集和校验集):
      • ✒ 表内插入数据:`insert into`
      • ✒ 在表中新添一个字段(列):`add`
      • ✒ 修改字段(列)char/varchar数据类型长度:`modify`
      • ✒ 修改字段(列)名:`change`
      • ✒ 删除字段(列):`drop`


创建表🗡

create table table_name(field1 datatype,field2 datatype,field3 datatype,
) character set 字符集 collate 校验规则 engine 存储引擎;
  • field 列名
  • datatype该列的类型
  • character setcharset=''字符集,如果没用指定字符集就以数据库的字符集为准
  • collate或者collate=''校验规则,如果没有指定校验规则则以数据库的校验规则为准

示例:

create table user1(id int  comment '序列号',name varchar(20) comment '用户名',password char(32) comment '密码'
)charset='utf9' collate='utf8_general_ci' engine MyISAM;

其中的comment为对该列的描述;

engine表示存储引擎:

  • 不同的存储引擎对于磁盘文件的个数要求不同

    对于MyISAM来说:

    1. frm代表表结构
    2. MYD中的MY代表MyISAM,D代表data数据;

    在配置文件my.cnf中已经配置了默认的存储引擎为InnoDB,所以在此处的创建表若是没有指明存储引擎则是使用配置文件中默认中默认设置的存储引擎;


查看表🗡

✒ 查看表内所有信息(描述\表结构等)

  • desc table_name查看表内详细信息,其中descDescription的简写,意思为描述;

✒ 根据条件查看表内数据

  • select ... from ...

    例如:

    1. select * from table_name; - 查看表内所有数据
    2. select * from table_name while name='a' - 以name='a'为条件查看该表中符合该条件的所有数据,其中where用于过滤记录;

✒ 查看表的具体详细信息:

  • show create table table_name;查看创建该表的具体详细信息,其中包括对该列描述、存储引擎等的字段也会显式;

在这里插入图片描述

但是以该形式显式详细信息时弹出信息过于杂乱;

可用show create table table_name \G;

在这里的显式与创建表时的指令不同是因为当输入sql指令时将会对这些指令进行词法语法分析,最终将这些指令统一成同一指令;

从这里可以得出:mysql将记录用户的所有操作痕迹;


修改表🗡

修改表主要用的关键字为 ALTER TABLE;

当然根据所需要修改的内容不同,对应关键字后所跟的语句选择也不同,涉及到的可能有修改表的属性以及表内各个字段的数据修改;


✒ 修改表名:

  • alter table table_name rename to new_name;

    此处的to可以省略;


✒ 修改表的存储引擎、编码集(字符集和校验集):

  • alter table table_name engine='engine_name' charset='charset_name' collate='collate_name';

    举例:atler table user_1 engine='InnoDB' charset='utf8' collate='utf8_bin';

    将名为user_1的表结构中的存储引擎修改为InnoDB;

将该表结构中的字符集修改为utf8,校验集修改为utf8_bin;

(修改结束后可使用show create table user_1 \G;进行查看);


✒ 表内插入数据:insert into

  • 表内插入数据的具体关键字为insert into,分为添加单个字段信息与所有字段信息;

    • insert into table_name (字段名)value(字段信息);

      在该插入指令中以(字段名),在括号中指定了字段名,表示添加下一行数据时在该字段内添加数据;

      例如:insert into table_name (id)value(1); - 添加下一行数据,在该行数据中id字段内数据为1;

      同时这里第一个()内的字段可以是单个也可以是多个,单个时关键字为value,多个时关键字为values,同时若是()内的字段有多个,则在添加数据的时候按照第一个()内的字段插入相应的数据;

      例:

      1. insert into _user (id)value(1),(2),(3); 添加三行数据,其中这新添加的三行数据的id分别为1,2,3;

      2. insert into _user (id,name)values(1,'zhangsan'),(2,'lisi'),(3,'wangwu'); 添加三行数据,其中这新添加的三行的idname分别为(1,'zhangsan'),(2,'lisi'),(3,'wangwu');

      3. 若是没有使用()指定字段进行添加则默认认为将在所有字段(按照顺序)中添加数据;

        insert into _user values(字段1数据,字段2数据,字段3数据......);


✒ 在表中新添一个字段(列):add

alter table table_name add 字段 字段类型;

示例: alter table user add path varchar(20) after password;

  • 在表user中的字段password后添加一个类型为varchar(20)的名为path的字段(列);

    当然,这里的after password若是不添加的话则默认在表中的最后一列进行添加;

    同时这里也可以进行添加描述:alter table user add path varchar(20) comment '路径' after password;


✒ 修改字段(列)char/varchar数据类型长度:modify

alter table table_name modify 字段名+新属性 [comment 'xxx'];

示例:alter table user modify name varchar(30) comment'用户名';

该处的 [comment 'xxx']为可选项,若是原字段内有comment描述而并不在修改后添加comment描述时,原描述将会被覆盖;

例:


✒ 修改字段(列)名:change

除了可以修改字段的数据类型以外还可以修改字段(列)的名字;

alter table table_name change old_name new_name 数据类型 [comment 'xxxx'];

示例:alter table user change name Name varchar(30) comment'用户名';

应该注意:修改字段的名字,应该在新名字后将该有的要素补齐!!!

✒ 删除字段(列):drop

表的操作可以删除表内的字段;

alter table table_name drop 字段;

示例alter table user drop password;

由于创建表是创建相应的文件,所以对表内数据的增删查改也是对表内数据的修改;

所以在数据库中对表的操作时尽量避免对表或者对表内数据的删除;

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

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

相关文章

【react.js + hooks】使用 useLoading 控制加载

在页面上 loading(加载)的效果十分常见,在某些场景下,一个页面上甚至可能有特别多的 loading 存在,此时为每一个 loading 专门创建一个 state 显然太过繁琐,不如试试写一个 useLoading 来集中管理&#xff…

HarmonyOS应用开发-ArkTS基础知识

作者:杨亮Jerry 作为多年的大前端程序开发工作者,就目前的形式,个人浅见,在未来3-5年,移动端依旧是Android系统和iOS系统的天下。不过基于鸿蒙系统的应用开发还是值得我们去花点时间去了解下的,阅读并实践官…

【洛谷 P5019】[NOIP2018 提高组] 铺设道路 题解(模拟+双指针)

[NOIP2018 提高组] 铺设道路 题目背景 NOIP2018 提高组 D1T1 题目描述 春春是一名道路工程师,负责铺设一条长度为 n n n 的道路。 铺设道路的主要工作是填平下陷的地表。整段道路可以看作是 n n n 块首尾相连的区域,一开始,第 i i i …

【大学视听说上】网络学习计划清单

每单元建议学习时长为约2小时,每2-3周完成一个单元 视听说1: Online Self-Study Assignment (U校园) Week 2-9 Unit 3 3-2Sharing: Practice 2, 3, 4, 5 3-3 Listening: Use the skills 3, 4 3-4 Viewing: View it 1, 2 3-8 More practice in listening 3-10 …

MYSQL---基础篇

一、数据库操作 1.创建数据库:CREATE DATABASE db_test1; 2.使用数据库:use 数据库名; 3.删除数据库:DROP DATABASE [IF EXISTS] db_name; 4.创建表:CREATE TABLE table_name ( field1 datatype, field2…

win环境Jenkins高级配置各种插件和启动jar包

今天分享Jenkins高级配置各种插件,在看此篇之前必须先了解上一篇博客内容,因为此篇是在上篇的基础上完善的: 一、git仓库的多分支选择 想要多分支选择部署,需要全局安装Git parameter 插件 1、点击入口 来到 2、点击进入 安装一…

python flask_restful “message“: “Failed to decode JSON object: None“

1、问题表现 "message": "Failed to decode JSON object: None"2、出现的原因 Werkzeug 版本过高 3、解决方案 pip install Werkzeug2.0解决效果 可以正常显示json数据了 {"message": {"rate": "参数错误"} }

深入理解JVM虚拟机第二十三篇:详解JVM当中的栈顶缓存技术

大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻JVM 本文章简介:话不多说,让我们讲清楚JVM当中与操作数栈相关的字节码指令…

rust 闭包

文章目录 闭包使用闭包来简化代码传统函数实现 闭包实现闭包的类型推导结构体中的闭包捕获作用域中的值三种 Fn 特征闭包作为函数返回值 闭包 闭包是一种匿名函数,它可以赋值给变量也可以作为参数传递给其它函数,不同于函数的是,它允许捕获调…

【m98】webrtc vs2017构建带符号的debug库

调试有符号 调试 无符号 试试exe不输出到独立的文件? -】 直接输出到sln下面

Semantic Kernel 学习笔记1

1. 挂代理跑通openai API 2. 无需魔法跑通Azure API 下载Semantic Kernel的github代码包到本地,主要用于方便学习python->notebooks文件夹中的内容。 1. Openai API:根据上述文件夹中的.env.example示例创建.env文件,需要填写下方两个内…

aws亚马逊云:置以使用 Amazon EC2!!!

完成本部分中的任务,以便为首次启动 Amazon EC2 实例进行设置: 注册一个 AWS 账户 创建管理用户 创建密钥对 创建安全组 完成后,您将准备好学习 Amazon EC2 入门教程。 注册一个 AWS 账户 如果您还没有 AWS 账户,请完成以下…

【神经网络】GAN:生成对抗网络

GAN:生成对抗网络 Generator(生成器)概念 和传统的神经网络不同,Generator除了接受x的输入之外,还会接受一个简单的分布作为z进行输入,从而使得网络的输出也是一个复杂的分布 为什么输出需要时一个分布呢…

2-CentOS7.9下安装docker

默认情况下,CentOS7.9下有两种方法可以安装docker,分别是在线安装docker和离线安装docker(伪离线,最后还是需要网络支持) 1.环境信息 HostNameIPAddressOS VersionDocker VersionNotecentos79172.20.10.12CentOS Linux release 7.9.2009 (Core)Docker version 23.0.6, buil…

VScode + opencv(cmake编译) + c++ + win配置教程

1、下载opencv 2、下载CMake 3、下载MinGW 放到一个文件夹中 并解压另外两个文件 4、cmake编译opencv 新建文件夹mingw-build 双击cmake-gui 程序会开始自动生成Makefiles等文件配置,需要耐心等待一段时间。 简单总结下:finish->configuring …

Linux的make和Makefile

目录 一、 介绍二、快速使用三、依赖关系和依赖方法四、语法 一、 介绍 1、makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。 2、make是一个命令工具&…

设计模式——适配器模式(Adapter Pattern)+ Spring相关源码

文章目录 一、适配器模式定义二、例子2.1 菜鸟教程例子2.1.1 定义两个不兼容的播放接口MediaPlayer 、AdvancedMediaPlayer2.1.2 定义AdvancedMediaPlayer两个实现类VlcPlayer 、Mp4Player2.1.3 定义适配器MediaAdapter2.1.4 定义AudioPlayer 并使用MediaAdapter2.1.5 使用 2.2…

Python异常处理:三种不同方法的探索与最佳实践

Python异常处理:三种不同方法的探索与最佳实践 前言 本文旨在探讨Python中三种不同的异常处理方法。通过深入理解各种异常处理策略,我们可以更好地应对不同的编程场景,选择最适合自己需求的方法。 异常处理在编程中扮演着至关重要的角色。合…

Win10共享打印机,别人连接不上出现无法连接到打印机错误码0x0000011b

环境: Win10 专业版 惠普L1119 问题描述: Win10共享打印机,别人连接不上出现无法连接到打印机错误码0x0000011b 解决方案: 1.打开我这台电脑的注册表找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print在右侧…

JVM之类加载器

文章目录 版权声明类加载器类加载器的分类启动类加载器拓展类加载器&应用程序类加载器 双亲委派机制解决三个问题 打破双亲委派机制自定义类加载器案例演示线程上下文类加载器案例梳理OSGi模块化 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我…