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

【⑩MySQL】:表管理,让数据管理不再困难

前言

✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL表/数据库创建和管理的讲解

目录

  • 前言
  • 1. 基础知识
  • 2. 创建和管理数据库
  • 3.创建表
  • 4. 修改表
  • 5. 删除表
  • 6.总结


1. 基础知识

1.1 表的基本概念

在MySQL数据库中,表是一种很重要的数据库对象,是组成数据库的基本元素,由若干个字段组成,主要用来实现存储数据记录。表的操作包含创建表、查看表、删除表和修改表,这些操作是数据库对象的表管理中最基本、最重要的操作。

本小节只要讲解如下内容:

  • 表的相关概念;
  • 表的基本操作:创建、查看、更新和删除;
  • 表的使用策略。

表是包含数据库中所有数据的数据库对象。数据在表中的组织方式与在电子表格中相似,都是按行和列的格式组织的。其中每一行代表一条唯一的记录,每一列代表记录中的一个字段,如下图所示。

在这里插入图片描述

1.2 标识符命名规范

  1. 数据库名、表名不得超过30个字符,变量名限制为29个
  2. 只能包含大写、小写、数字字符以及下划线
  3. 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
  4. 不能和保留字、函数名冲突
  5. 保持字段名和类型的一致性:假如某个字段在一个表里面是整型,那在另一个表里面可就别变成字符串了

1.3 MySQL中的数据类型

类型具体类型
整数类型TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT
浮点类型FLOAT、DOUBLE
定点数类型DECIMAL
位类型BIT
日期时间类型YEAR、TIME、DATE、DATETIME、TIMESTAMP
文本字符串类型CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT
枚举类型ENUM
集合类型SET
二进制字符串类型BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB
json类型JSON对象、JSON数组
空间数据类型单值:GEOMETRY、POINT、LINESTRING、POLYGON
集合:MULTPOINT、MULTILINESTRING、MULTIPOLGON、GEOMTRYCOLLECTION

其中,常用的几类类型介绍如下:

类型描述
INT4个字节
CHAR(size)定长字符数据,若未指定,默认为一个字符,最大长度255
VARCHAR(size)可变字符数据,更具字符串实际长度保存,必须指定长度
FLOAT(M,D)单精度,4个字节。M=整数位+小数位,D=小数位(D<=M<=255,0<=D<=30),默认M+D<=6
DOUBLE(M,D)双精度,8个字节。D<=M<=255,0<=D<=30,默认M+D<=15
DECIMAL(M,D)高精度,M+2个字节。D<=M<=65,0<=D<=30,默认最大取值范围和DOUBLE一样
DATE日期类型,格式‘YYY-MM-DD’
BLOD二进制心事的长文本数据,最大可达4G
TEXT长文本数据,最大可达4G

2. 创建和管理数据库

2.1 创建数据库

  • 方式1:创建数据库

    CREATE DATABASE 数据库名;
    
  • 方式2:创建数据库并指定字符集

    CREATE DATABASE 数据库名 CHARACTER SET "uft8";
    
  • 方式3:判断数据库是否已经存在,不存在则创建(推荐)

    CREATE DATABASE IF NOT EXISTS 数据库名;
    

    注意:数据库不能改名。一些可视化工具可以改名,它是创建新库,然后把所有表复制到新库,再把旧库删掉完成的。

数据库创建完成之后,可以通过SHOW CREATE DATABASE 数据库名;查看创建数据库时使用的语句。

我们来看看一个创建的例子:

CREATE DATABASE king;
SHOW CREATE DATABASE king;

在这里插入图片描述

我们查看一下,发现它默认创建的时候的字符集就是utf_8

2.2 使用数据库

  • 查看当前连接中有哪些数据库
SHOW DATABASES;
  • 切换数据库,在多个数据库之间切换
0USE 数据库名;
  • 查看当前使用的数据库
SELECT DATABASE();
  • 查看指定数据库所有表
SHOW TABLES FROM 数据库名;

下图是在我的电脑上执行以上语句得到的结果:

在这里插入图片描述

2.3 修改数据库

✨✨修改数据库字符集

ALTER DATABASE 数据库名 CHARACTER SET 字符集;	#比如 gbk、utf8
#查看默认字符集
SHOW VARIABLES LIKE '%character%';
#查看所有字符集
SHOW CHARSET;

本地执行结果如下:

在这里插入图片描述
在这里插入图片描述

2.4 删除数据库

  • 直接删除

    DROP DATABASE 数据库名;
    
  • 如果数据库存在则删除,否则报一个警告(不会报错)

    DROP DATABASE IF EXISTS 数据库名;
    

3.创建表

在 MySQL数据库管理系统中创建表通过SQL语句CREATE TABLE 来实现

3.1 创建方式1

自己指定字段和数据类型

✨✨语法:

CREATE TABLE [IF NOT EXISTS] 表名(字段名 数据类型,字段名 数据类型,...字段名 数据类型,
);

✨✨范例:

CREATE TABLE myemp
(id INT COMMENT '员工编号',ename VARCHAR(20) COMMENT '员工名称',deptno INT COMMENT '所在部门编号',sal INT COMMENT '工资'
);

这里有一个词—COMMENT,也就是注释的意思,防止我们以后忘记这里代表什么含义,用如下语句查看:

SHOW CREATE TABLE mmp;

在这里插入图片描述

3.2 创建方式2

基于现有表创建新表

  • 基于现有表创建新表,同时导入数据

    #单个表
    CREATE TABLE myemp1
    AS
    SELECT empno,ename,sal FROM emp;#多个表
    CREATE TABLE myemp2
    AS
    SELECT e.empno,e.ename,e.sal,d.dname 
    FROM emp e JOIN dept d
    ON e.deptno=d.deptno;
    

在这里插入图片描述

  • 基于现有表创建新表,只复制表结构,不导入数据

    CREATE TABLE myemp3
    AS
    SELECT empno,ename,sal FROM emp WHERE 1 = 2;
    

在这里插入图片描述

3.3 查看表结构

✨✨创建完表,如果需要查看一下表的结构,可以通过执行SQL语句 DESCRIBE来实现,其语法形式如下:

DESC/DESCRIBE table_name;

DESC为DESCRIBE的简写形式,更为方便。

在这里插入图片描述

还有一种更详细查看表结构的语句:

SHOW CREATE TABLE table_name;

在这里插入图片描述

4. 修改表

✨修改数据表的前提是数据库中已经存在该表。修改表指的是修改数据库中已经存在的数据表的结构。修改数据表的操作也是数据库管理中必不可少的,就像画素描一样,画多了可以用橡皮擦掉,画少了可以用笔加上。

4.1 修改数据表

✨✨4.1.1 修改表名

方法一:通过 ALTER TABLE 语句来修改表名,语法规则如下:

ALTER TABLE <旧表名> RENAME [TO] <新表名>;

其中,TO 为可选参数,使用与否均不影响结果。

只能对一张表的表名进行修改。

范例:

ALTER TABLE myemp RENAME memp;

方法二:通过 RENAME TABLE 语句来修改表名,语法规则如下

RENAME TABLE <旧表名> TO <新表名>[,旧表名2 TO 新表名2]

范例:

RENAME memp TO myemp,myemp1 TO memp1;

可以同时修改多个表的表名。

✨✨4.1.2 修改字符集

通过ALTER TABLE语句来实现表字符集的修改,语法规则如下:

ALTER TABLE <表名> [DEFAULT] CHARACTER SET <字符集名> [DEFAULT] COLLATE <校对规则名>;

其中,DEFAULT 为可选参数,使用与否均不影响结果。

ALTER TABLE myemp CHARACTER SET gb2312;

4.2 增加字段

对于表,可以看成是由列和行来构成的,其中“列”经常被称为字段。

✨✨4.2.1 在最后添加字段

在创建表之后如果要增加一列,需要使用下面的语句。

ALTER TABLE table_name ADD 字段名 数据类型;

范例:

ALTER TABLE myemp ADD job VARCHAR(10);

✨✨4.2.2 在第一个位置添加字段

ALTER TABLE table_name ADD 字段名 数据类型 FIRST;

✨✨4.2.3 在指定位置添加字段

把字段1 添加到字段2之后

ALTER TABLE table_name ADD 字段名1 数据类型 AFTER 字段名2;

4.3 删除字段

ALTER TABLE table_name DROP 字段名;

4.4 修改字段

✨✨4.4.1 修改字段的数据类型

ALTER TABLE table_name MODIFY 字段名 数据类型;

✨✨4.4.2 修改字段名

ALTER TABLE table_name CHANGE 旧字段名 新字段名 数据类型;

如果数据类型和原来的数据类型一样,则只会修改字段名,如果数据类型不同,则同时会修改数据类型。

✨✨4.4.3 修改字段的顺序

ALTER TABLE table_name MODIFY	字段名 数据类型 FIRST;
ALTER TABLE table_name MODIFY	字段名1 数据类型 AFTER 字段名2;	
  • 第一个语句:把字段移动到第一个
  • 第二个语句:把字段1 移动到字段2之后

5. 删除表

DROP TABLE [IF EXISTS] table_name[,表1,表2...];

6.总结

本节主要为大家带来了MySQL表/数据库创建和管理的讲解,下节将为大家带来约束的讲解~

相关文章:

【⑩MySQL】:表管理,让数据管理不再困难

前言 ✨欢迎来到小K的MySQL专栏&#xff0c;本节将为大家带来MySQL表/数据库创建和管理的讲解✨ 目录 前言1. 基础知识2. 创建和管理数据库3.创建表4. 修改表5. 删除表6.总结 1. 基础知识 ✨1.1 表的基本概念 在MySQL数据库中&#xff0c;表是一种很重要的数据库对象&#xf…...

Springboot项目使用原生Websocket

目录 1.启用Websocket功能2.封装操作websocket session的工具3.保存websocket session的接口4.保存websocket session的类5.定义websocket 端点6.创建定时任务 ping websocket 客户端 1.启用Websocket功能 package com.xxx.robot.config;import org.springframework.context.a…...

在Vue 3中如何实现服务端渲染(SSR)

今天我要给你们介绍一个很酷的功能——在Vue 3中实现服务端渲染&#xff08;SSR&#xff09; 首先&#xff0c;我们来聊聊SSR是什么。它就像是一个魔术师&#xff0c;能让你的网页在服务器上就预先渲染好&#xff0c;然后发送到客户端。想象一下&#xff0c;你在浏览一个网页&…...

【计算机组成原理期末课设作业】16位微型计算机实现——MOVS串传送扩展指令设计

16位微型计算机实现——MOVS串传送扩展指令设计&#x1f60e; 前言&#x1f64c;教学目的&#xff1a;1、数据**加粗样式**通路分析2、微程序控制器分析3、指令系统分析4、微程序控制器指令周期流程图5、微指令编码6、测试程序和运行结果&#xff08;1&#xff09;首先先在内存…...

CodeMirror 对 XML 文档熟悉及元素控制自定义

CodeMirror 是一个网络代码编辑器组件。它可以在网站中用于实现支持多种编辑功能的文本输入字段&#xff0c;并具有丰富的编程接口以允许进一步扩展。 本文为 xml 格式的代码提示约束格式规范的自定义示例内容。 先看效果&#xff0c;如下&#xff1a; 官方 Demo 的完整代码如…...

Jetpack - ViewModel

一、概念 二、使用 2.1 创建ViewModel //无参 class MainViewModel : ViewModel() {} //有参 class MainViewModel(mainRepository: MainRepository) : ViewModel() {} class MainViewModelFactory(private val mainRepository: MainRepository) : ViewModelProvider.Factor…...

【新版系统架构】第十三章-层次式架构设计理论与实践

软考-系统架构设计师知识点提炼-系统架构设计师教程&#xff08;第2版&#xff09; 第一章-绪论第二章-计算机系统基础知识&#xff08;一&#xff09;第二章-计算机系统基础知识&#xff08;二&#xff09;第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…...

剖析Linux文件系统

Linux 文件系统体系结构是一个对复杂系统进行抽象化的有趣例子。通过使用一组通用的 API 函数&#xff0c;Linux 可以在许多种存储设备上支持许多种文件系统。例如&#xff0c;read 函数调用可以从指定的文件描述符读取一定数量的字节。read 函数不了解文件系统的类型&#xff…...

简介Maven结构与配置方法

一、Maven是什么 Maven是apache旗下的一个开源项目&#xff0c;是一款用于管理和构建java项目的工具。 它有什么用呢&#xff1f; 比如我以前要IOUtils这个包&#xff0c;那要到网站下去下载下来&#xff0c;再导入。 当jar包多的时候&#xff0c;一个一个导出&#xff0c;…...

好用的网址6

PPT课件网&#xff1a;http://www.pptkj.net/ ImgUpscaler&#xff1a;AI Image Upscaler - Upscale Photo, Cartoons in Batch Free 加强图片 AI Draw&#xff1a;AI Draw | Convert Images to One-Line Drawings with AI ZToDoList&#xff1a;https://www.ztodolis…...

MySQL数据库---笔记5

MySQL数据库---笔记5 一、锁1.1、介绍1.2、全局锁1.2.1、全局锁介绍1.2.2、一致性数据备份 1.3、表级锁1.3.1、表锁1.3.2、元数据锁&#xff08;meta data lock , MDL&#xff09;1.3.3、意向锁 1.4、行级锁1.4.1、介绍1.4.2、行锁1.4.3、间隙锁/临建锁 二、InnoDB引擎2.1、逻辑…...

Yocto:初始

1.构建Yocto项目前,需要先安装其所依赖的一些组件及工具 1 System Requirements — The Yocto Project 4.2.999 documentation 需要依次安装: $ sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python…...

autodl算力租用平台应用于pycharm

一、GPU租用选择 1、创建实例 首先进入算力市场 博客以2080为例&#xff0c;选择计费方式&#xff0c;选择合适的主机&#xff0c;选择要创建实例中的GPU数量&#xff0c;选择镜像&#xff08;内置了不同的深度学习框架&#xff09;&#xff0c;最后创建即可 2、SSH远程连…...

高德地图的使用

JS API 结合 Vue 使用 高德地图 jsapi 下载、引入 npm add amap/amap-jsapi-loaderimport AMapLoader from amap/amap-jsapi-loader 使用2.0版本的loader需要在window对象下先配置 securityJsCode JS API 安全密钥使用 JS API 使用 script 标签同步加载增加代理服务器设置…...

<List<Map<String,String>>> 删除元素常见的误区以及删除方法

看到这么标题可能觉得这个真是太easy了&#xff0c;不就remove吗&#xff0c;分分钟搞定。 但结果却出乎意料&#xff0c;下面我们来j简单说说list删除数据可能遇到的坑&#xff1a; 先说明我们可能会遇到的两个问题&#xff1a; 1.java.lang.IndexOutOfBoundsException(索引越…...

Linux下的编辑器——vim的简单上手指南

文章目录 一.概念1. 什么是 vim2. Vim 的模式①命令模式② 插入模式③底线命令模式 二.vim的基本操作1.如何启动vim&#xff1f;2. [命令模式」切换至 「插入模式」3.「插入模式」 切换至 「命令模式」4.「命令模式」切换至 「底行模式」5. 如何退出 vim&#xff1f; 三.vim指令…...

C++多线程学习(二、多线程的几种创造方式【有返回值的之后讲】)

目录 创建多线程 1.普通函数充当线程处理函数创造线程 2.Lambda表达式充当线程处理函数 3.带参函数创建线程 3.1普通参数 3.2传入引用 3.3智能指针充当函数参数 4.通过类中的成员函数创建 4.1仿函数方式创建&#xff1a;类名的方式调用 4.2普通类中的成员函数 创建多…...

前端开发框架生命周期详解:Vue、React和Angular

引言 作为前端开发者&#xff0c;掌握前端开发框架的生命周期是非常重要的。在现代Web应用开发中&#xff0c;Vue.js、React和Angular是三个最流行的前端开发框架。本篇博客将详细解读这三个框架的生命周期&#xff0c;包括每个阶段的含义、用途以及如何最大限度地利用它们。通…...

【Java从入门到大牛】程序流程控制

&#x1f525; 本文由 程序喵正在路上 原创&#xff0c;CSDN首发&#xff01; &#x1f496; 系列专栏&#xff1a;Java从入门到大牛 &#x1f320; 首发时间&#xff1a;2023年7月7日 &#x1f98b; 欢迎关注&#x1f5b1;点赞&#x1f44d;收藏&#x1f31f;留言&#x1f43e…...

UML学习统一建模语言

unified modeling language 统一建模语言 面向对象软件分析与设计建模的事实标准 类命名&#xff1a;帕斯卡特命名 类之间的关系 关联关系&#xff1a;班级和学生&#xff0c;一个类的对象作为另一个类的成员变量&#xff1b; 通过非构造和setter注入的方式建立联系&#xf…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...