MySQL数据库,创建和管理表

news2024/11/26 22:51:10

创建数据库:

方式一:创建数据库

CREATE DATABASE 数据库名;(使用的是默认的字符集)

方式二:创建数据库并指定字符集

CREATE DATABASE 数据库名 CHARACTER SET 字符集;

方式三:判断数据库是否已经存在,不存在则创建数据库

CREATE DATABASE IF NOT EXISTS 数据库名;

(也可以指定字符集:CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET 字符集)

如果MySQL中已经存在相关的数据库,则忽略创建语句,不再创建此名称的数据库

管理数据库

查看当前连接中的数据库:

SHOW  DATABASES;

切换数据库:

USE 数据库名;

查看当前数据库中保存的数据表:

SHOW  TABLES;

查看当前使用的数据库:

SELECT  DATABASE( )  FROM  DUAL;

查看指定的数据库下保存的表:

SHOW  TABLE  FROM  数据库名;

修改数据库:

更改数据库字符集:

ALTER  DATABASE  数据库名  CHARACTER  SET  字符集;

删除数据库:

方式一:删除指定的数据库

DROP  DATABASE  数据库名;

方式二:删除指定的数据库(如果存在即删除,不存在即结束操作)

DROP  DATABASE  IF  EXISTS  数据库名;

数据类型:

其中,常见的数据类型介绍如下:

创建数据表:

创建数据表(方式一):

CREATE  TABLE  IF  NOT  EXISTS  表名(

字段名  数据类型  [约束条件] [默认值],

字段名  数据类型  [约束条件] [默认值],

……

[表约束条件]

); 

注:

[ ]中的内容表示约束,也可以没有

如果创建表时没有指明使用的字符集,则默认使用表所在的数据库的字符集。

IF  NOT  EXISTS可以没有,但是建议要有

查看表结构:

DESC  表名;

查看创建表的语句结构:

SHOW  CREATE  TABLE  表名;

创建数据表(方式二):基于现有的表

CREATE  TABLE  表名

AS

SELECT  字段……

FROM 现有的表的表名

……(查询的操作)

将查询现有的表的查询结果来创建一个新的表

注:若AS后面的查询操作中的字段起了别名,则该方法创建的表中的字段名即为相应的字段的别名

修改表:

修改表使用 ALTER  TABLE  表名  ……

添加字段

ALTER  TABLE  表名

ADD  新字段名  数据类型  [约束条件];

新字段默认添加到表中的最后一个字段的位置后

除此之外,还可以添加字段到指定位置:

ALTER  TABLE  表名

ADD  新字段名  数据类型  [约束条件]  FIRST;

表示添加新字段到首列

ALTER  TABLE  表名

ADD  新字段名  数据类型  [约束条件]  AFTER  字段名;

表示新字段在指定的字段名的位置后添加

修改一个字段

ALTER  TABLE  表名

MODIFY  字段名  数据类型  DEFAULT  默认值;

要将字段的位置进行修改,可以在末尾加上FIRST/AFTER 字段名

注:数据类型一般不会做大更改,一般是将VARCHAR一类的数据类型的长度做修改

若不涉及更改默认值,DEFAULT的语句可省略

重命名一个字段

ALTER  TABLE  表名

CHANGE  字段名  新字段名  数据类型;

注:可以在重命名时对字段的数据类型做修改。

删除一个字段

ALTER  TABLE  表名

DROP  COLUMN  字段名;

重命名表:

方式一:

RENAME  TABLE  表名

TO  新表名;

方式二:

ALTER  TABLE  表名

RENAME  TO   新表名;

删除表:

DROP  TABLE  IF  EXTSTS  表名;

清空表:

清空表中的所有数据,表本身还在。

TRUNCATE  TABLE  表名;

对比TRUNCATE  TABLE 和 DELETE  FROM

相同点:都可以实现对表中的所有数据的删除,同时保留表结构。

不同点:

TRUNCATE  TABLE:执行此操作,表中数据全部清除。同时,数据不能回滚。属于DDL。

DELETE  FROM:表中数据被指定删除,同时数据可以实现回滚。属于DML。

COMMIT 和 ROLLBACK

COMMIT:提交数据。执行COMMIT,数据就被永久的保存在数据库中,意味着数据不可回滚

ROLLBACK:回滚数据。一旦执行ROLLBACK,则可以实现数据的回滚

关于DDL和DML的说明:

DDL的操作一旦执行,就不可回滚。执行完后,会自动执行一次COMMIT,不受SET  autocommit  =  false的影响

DML的操作默认情况下,一旦执行,也是不可回滚的。但是若在执行DML之前,执行了SET  autocommit  =  false的操作,则执行的操作就可以实现回滚

TRUNCATE  TABLE 比 DELETE  FROM速度快,且使用的系统和事务日志资源少,但TRUNCATE无事务且不触发TRIGGER,有可能造成事故,故不建议在开发代码中使用此语句

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

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

相关文章

【原创】【一类问题的通法】【真题+李6卷6+李4卷4(+李6卷5)分析】合同矩阵A B有PTAP=B,求可逆阵P的策略

【铺垫】二次型做的变换与相应二次型矩阵的对应:二次型f(x1,x2,x3)xTAx,g(y1,y2,y3)yTBy ①若f在可逆变换xPy下化为g,即P为可逆阵,有P…

【大数据】Hudi 核心知识点详解(二)

😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 &#x…

设计模式篇---代理模式

文章目录 概念结构实例静态代理动态代理 总结 概念 代理模式:给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。 比如我们想从其他国家买东西,但我们无法直接联系外国的商家,可以找代理商,让他们…

ipa文件怎么去除包体内的插件在线签名工具步骤

当开发者完成iOS应用的开发并构建完成后,应用程序会被打包为一个.ipa文件,这是一个iOS App Store的安装包格式。在某些情况下,开发者可能需要去除.ipa文件中包含的插件(通常指的是app extension、frameworks或watch apps等&#x…

内测分发是什么?十年的前端开发者带你了解

内测分发是软件开发过程中的一个阶段,特别指软件还未完全完成或准备对外广泛发布前,向一定范围的用户群体提供该软件版本的测试机会,以便收集反馈和修复潜在的问题。在讲解内测分发之前,我们需要明确几个相关概念: 软件…

12.视图

目录 1.视图的含义与作用 2.视图的创建与查看 1.创建视图的语法形式 2、查看视图: 1.使用DESCRIBE语句查看视图基本信息 2.使用SHOW TABLE STATUS语查看视图基本信息查看视图的信息 3.使用SHOW CREATE VIEW语查看视图详细信息 4.在views表中查看视图详细信息…

23.12.10日总结

周总结 这周三的晚自习,学姐讲了一下git的合作开发,还有懒加载,防抖,节流 答辩的时候问了几个问题: 为什么在js中0.10.2!0.3? 在js中进行属性运算时,会出现0.10.20.300000000000000004js遵循IEEE754标…

DIP——边缘提取与分割

1.使用canny算法进行边缘提取 本实验比较简单,基本思路是对原图像进行一个高斯模糊处理,用于去噪,之后转换为灰度图,直接调用cv库中的canny记性边缘提取。若想直接得到彩色边缘,则通过按位与操作,将原始彩色…

docker-centos中基于keepalived+niginx模拟主从热备完整过程

文章目录 一、环境准备二、主机1、环境搭建1.1 镜像拉取1.2 创建网桥1.3 启动容器1.4 配置镜像源1.5 下载工具包1.6 下载keepalived1.7 下载nginx 2、配置2.1 配置keepalived2.2 配置nginx2.2.1 查看nginx.conf2.2.2 修改index.html 3、启动3.1 启动nginx3.2 启动keepalived 4、…

MySQL - 聚簇索引和非聚簇索引,回表查询,索引覆盖,索引下推,最左匹配原则

聚簇索引和非聚簇索引 聚簇索引和非聚簇索引是 InnoDB 里面的叫法 一张表它一定有聚簇索引,一张表只有一个聚簇索引在物理上也是连续存储的 它产生的过程如下: 表中有无有主键索引,如果有,则使用主键索引作为聚簇索引;…

Kafka 最佳实践:构建可靠、高性能的分布式消息系统

Apache Kafka 是一个强大的分布式消息系统,被广泛应用于实时数据流处理和事件驱动架构。为了充分发挥 Kafka 的优势,需要遵循一些最佳实践,确保系统在高负载下稳定运行,数据可靠传递。本文将深入探讨 Kafka 的一些最佳实践&#x…

TailwindCSS 配置可视化检查器

问题 TailwindCSS 框架为我们提供了大量默认的类和属性,而且开发者也能够自定义类和配置。 对于初学者来说,这些配置其实是比较复杂的,这也是tailwindcss最大的入手成本,开发者的记忆负担和心智负担也都比较大。 有没有办法能够…

【BUG】微信小程序image不会随着url动态变化

问题描述: 第一次打开界面,显示的是默认头像而不是用户头像,似乎image里面的src只要第一次有值就不会再更新了 解决 不要给src里面的变量设置初始值,而是直接赋空值

ChatGPT 应用开发(一)ChatGPT OpenAI API 免代理调用方式(通过 Cloudflare 的 AI Gateway)

前言 开发 ChatGPT 应用,我觉得最前置的点就是能使用 ChatGPT API 接口。首先我自己要能成功访问,这没问题,会魔法就可以本地调用。 那用户如何调用到我的应用 API 呢,我的理解是通过用户能访问到的中转服务器向 OpenAI 发起访问…

[软件工具]文本去重含有重复的全部删除不是保留一个重复的方法

文本去重含有重复的全部删除不是保留一个重复的方法 第一步:首先打开软件 第二步:设置好保存目录后,将文件夹拖拽到列表,软件会自动识别导入txt 第三步:点击开始处理,即可完成任务 本软件支持批量处理&a…

Go1.21.0 程序启动过程

版本说明 Go 1.21.0操作系统:Windows11 Intel64 结论先行 开发关注版 在 Go 语言中,启动顺序通常如下: 导入包:首先,Go 编译器按照源文件中的 import 语句导入所有需要的包。初始化常量和变量:接着&am…

uc_16_UDP协议_HTTP协议

1 UDP协议 适合游戏、视频等情景,安全性要求不高,效率要求高。 1)UDP不提供客户机与服务器的链接: UDP的客户机与服务器不必存在长期关系。一个UDP的客户机在通过一个套接字向一个UDP服务器发送了一个数据报之后,马上…

UE小:物品拼装功能

蓝图B1的实现步骤: 获取玩家控制器和视角:首先获取玩家控制器,然后使用Deproject Screen to World节点将屏幕上的鼠标位置转换为世界空间中的一条射线。 射线检测:使用Line Trace by Channel或Line Trace for Objects节点发射射线…

【数学建模】《实战数学建模:例题与讲解》第十讲-时间序列预测(含Matlab代码)

【数学建模】《实战数学建模:例题与讲解》第十讲-时间序列预测(含Matlab代码) 基本概念移动平均(Moving Average, MA):指数平滑法(Exponential Smoothing):季节性调整(Seasonal Adju…

并发编程的基本概念

进程与线程 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的当一个程序被运行&…