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

news2024/11/24 4:58:51

文章目录

    • 创建表🗡
    • 查看表🗡
      • ✒ 查看表内所有信息(描述\表结构等)
      • ✒ 根据条件查看表内数据
      • ✒ 查看表的具体详细信息:
    • 修改表🗡
      • ✒ 修改表名:
      • ✒ 修改表的存储引擎、编码集(字符集和校验集):
      • ✒ 表内插入数据:`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.coloradmin.cn/o/1185819.html

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

相关文章

mmpi 明尼苏达多项人格测验,可用于筛查心理和精神问题

我们对于心理问题(精神问题)可谓是觉得又神秘又惧怕,很多人觉得心理问题仅仅影响的是情绪,其实心理问题的危害比你想象的严重的多,心理问题严重的话可以影响我们的生活和工作。 那么出现哪些症状,我们要特…

重新审视对比特币的九大批评!有些已被揭穿,而有些担忧可能会发生?

近日富达(Fidelity)发布《重新审视持续存在的比特币批评》长篇报告,针对9种常见针对比特币的批评进行回应,希望促使旁观者看清一些先入为主的观念,以理解比特币完整的价值主张。 批评1:比特币波动性太大&am…

SpringBoot 学习笔记(四) - 原理篇

一、自动配置 1.1 bean加载方式 bean的加载方式1 - xml方式声明bean 导入依赖&#xff1a; <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.9</ver…

高性能网络编程 - select、 poll 、epoll 、libevent

文章目录 概述优缺点SelectPollEpollLibEvent 概述 Select&#xff08;选择&#xff09;&#xff1a; Select 是一种传统的 I/O 多路复用机制&#xff0c;用于在类 Unix 操作系统&#xff08;如 Linux&#xff09;中同时管理多个文件描述符&#xff08;如网络套接字或文件&…

chatGLM中GLM设计思路

GLM是结合了MLM和CLM的一种预训练方式&#xff0c;其中G为general&#xff1b;在GLM中&#xff0c;它不在以某个token为粒度&#xff0c;而是一个span&#xff08;多个token&#xff09;&#xff0c;这些span之间使用自编码方式&#xff0c;而在span内部的token使用自回归的方式…

基础课25——业务流程分析

1.流程的定义&作用 业务流程是企业中一系列创造价值的活动的组合&#xff0c;它是企业运营的基础&#xff0c;也是企业提高效率、优化资源配置的重要手段。通过优化业务流程&#xff0c;企业可以更好地满足客户需求&#xff0c;提高客户满意度&#xff0c;同时也可以提高自…

Django框架简介

文章目录 Django框架介绍MVC与MVT模型MVCMTV 版本问题运行django注意事项 Django的下载与基本命令下载Django方式一&#xff1a;在命令界面使用pip安装方式二&#xff1a;使用pycharm安装 Django的基础命令命令行操作pycharm操作 Django项目命令行操作与Pycharm操作的区别应用D…

【Qt之QAssociativeIterable】使用

介绍 QAssociativeIterable类是QVariant中一个关联式容器的可迭代接口。这个类允许多种访问在QVariant中保存的关联式容器元素的方法。如果一个QVariant可以转换为QVariantHash或QVariantMap&#xff0c;那么QAssociativeIterable的实例可以从中提取出来。 QHash<int, QSt…

【工具】旋转图片-数据集制作工具, 开源!

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] Github&#xff1a;https://github.com/1061700625/small_tools_v2 之前做了一个下载百度的旋转图片验证码的工具(多进程下载百度旋转验证码图片-制作数据集)&#xff0c;那么拿到了图片数据&#xff0c;就需要手…

还不知道IP地址不够用是怎么被大牛们解决的?(NAT/NAPT, IPv6, DHCP)

文章目录 前言1. DHCP网络管理协议什么是 DHCPDHCP 两种分配机制 2. NAT网络地址转换协议什么是 NATNAT 技术使用NAT网络设备间如何通信两个内网设备相互通信不同内网中的设备相互通信NAT IP转换过程 NAPT 技术NAT 技术的缺陷 3. IPv6 协议什么是 IPv6 总结 前言 在之前的文章…

【教3妹学编程-算法题】2915. 和为目标值的最长子序列的长度

3妹&#xff1a;2哥&#xff0c;今日都立冬了&#xff0c; 可是天气一点都不冷。 2哥 : 立冬了&#xff0c;晚上要不要一起出去吃饺子&#xff1f;&#x1f95f; 3妹&#xff1a;好呀好呀&#xff0c;2哥请吃饺子喽 2哥 : 歪歪&#xff0c;我说的是一起出去吃&#xff0c;没说我…

[Java/力扣160]相交链表

这道题的关键是&#xff0c;使两个链表上的指针同时到达相交点处 方法一&#xff1a;分别遍历两个链表&#xff0c;得到其长度。然后先让较长的链表上的指针走“两链表长度之差”。然后两指针分别一步一步走&#xff0c;就能同时到达相交点处。 方法二&#xff1a;让 p1 遍历…

SHCTF-校外赛道

SHCTF-校外赛道 [WEEK1]babyRCE 1 (1)more:一页一页的显示档案内容2 (2)less:与 more 类似&#xff0c;但是比 more 更好的是&#xff0c;他可以[pg dn][pg up]翻页3 (3)head:查看头几行4 (4)tac:从最后一行开始显示&#xff0c;可以看出 tac 是 cat 的反向显示5 (5)tail:查看…

Android内存回收机制、GC算法及内存问题分析解决

Android内存回收机制、GC算法及内存问题分析解决 在Android开发中&#xff0c;Java内存回收和垃圾收集&#xff08;GC&#xff09;机制是确保应用程序高效运行的关键部分。针对不同对象存活率&#xff0c;Android平台采用了引用计数算法和可达性分析法来判定对象的可回收性&am…

命名管道原理(和匿名管道的对比),mkfifo(命令行,函数),命名管道模拟实现代码+与多个子进程通信代码

目录 命名管道 引入 原理 和匿名管道的对比 使用 -- mkfifo 命令行指令 创建 文件类型p 使用 函数 函数原型 模拟实现 头文件 客户端代码 服务端代码 运行情况 模拟实现 -- 与多个子进程 介绍 服务端代码: 运行情况 命名管道 引入 匿名管道只能用于父子进程…

一篇文章带你搞懂DNS全流程

1.DNS与CDN DNS是域名系统的缩写&#xff0c;它是一种将域名和IP地址相互映射的分布式数据库&#xff0c;能够使人更方便地访问互联网。 DNS的主要功能是将域名解析为IP地址。当你在浏览器中输入一个网址时&#xff0c;浏览器会向DNS服务器发送一个请求&#xff0c;以获取该网…

5G-A 商用加速,赋能工业互联网

2019 年 6 月&#xff0c;中国工业和信息化部发放 5G 商用牌照。同年 10 月&#xff0c;三大运营商公布 5G 商用套餐&#xff0c;11 月 1 日正式上线 5G 商用套餐&#xff0c;标志中国正式进入 5G 商用新纪元。今年是 5G 商用的第五年&#xff0c;在当前数字经济蓬勃发展的催化…

什么是屏蔽机房?

屏蔽机房是一种用于保护数据中心设备的安全和可靠的措施。通过屏蔽机房&#xff0c;可以防止电磁干扰、防止物理入侵以及提供更好的隔离和安全性。下面是一些关于屏蔽机房的常见做法&#xff1a; 电磁屏蔽&#xff1a;为了防止电磁干扰对数据中心设备的影响&#xff0c;可以在屏…

代码随想录算法训练营第15天|102. 二叉树的层序遍历226. 翻转二叉树101. 对称二叉树

JAVA代码编写 102. 二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9…

11.8旧有报错与修改

我将uart_done&#xff08;出问题的信号&#xff09;的变量类型设为reg了&#xff0c;也就是我是reg uart_done这个信号的&#xff0c;这样做是错误的&#xff0c;哪怕你在接收模块确实定义的是reg类型&#xff0c;但是在顶层模块的时候&#xff0c;它可以视为是一条单纯的线而…