MySQL——数据类型以及对表结构的修改

MySQL的数据类型

刚才我们在创建表的时候,说到了一个字段类型,所谓的字段类型就是这个字段能存放的数据的数据类型,在MySQL中有以下几种数据类型:

数据类型

大小(字节)

用途

格式

INT

4

整数

FLOAT

4

单精度浮点类型

DOUBLE

8

双精度浮点类型

ENUM

-

单选,比如性别

ENUM('a','b','c')

SET

-

多选

SET('1','2','3')

DATE

3

日期

YYYY-MM-DD

TIME

3

时间点或持续日期

HH:MM:SS

YEAR

1

年份值

YYYY

CHAR

0~255

定长字符串

VARCHAR

0~255

变长字符串

TEXT

0~65535

长文本数据

整形

除了可以使用INT表示整形之外,还可以使用TINYINT,SMALLINT,MEDIUMINT,BIGINT。区别在于占用的字节大小的不同

CHAR和VARCHAR的区别

CHAR的长度是固定的,而VARCHAR的长度是可以变化的,比如,存储字符串“abc",对于CHAR(10),表示存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR(12)则只占用4个字节的长度,增加一个额外字节来存储字符串本身的长度,12只是最大值,当你存储的字符小于12时,按实际长度存储。

ENUM和SET的区别

ENUM类型的数据的值,必须是定义时枚举的值的其中之一,即单选,而SET类型的值则可以多选。

插入数据

首先我们要查看数据,使用查看数据的命令:

select * from 表名;

表示查看表中的所有数据:

此时我们的表因为是新创建的所有是没有数据的,我们需要向里面插入数据,使用插入数据的命令:

insert into 表名 values ('数据1','数据2','数据3','数据4'.……);

使用这种格式表示我们向表中所有的字段插入数据,数据的个数与格式必须和表中的字段数量和字段类型对应匹配才可以:

然后我们再次查看表中的所有数据:

然后就可以在表中看到我们刚才插入的一行数据。

插入数据的格式

在插入数据的时候,valus关键字后面括号中的值就是我们要插入到表中的值,可以看到我们在写值的时候,有一些值被引号包含着,有一些则没有。根据MySQL的规定,我们在向表中插入数据的时候,CHAR,VARCHAR,TIME,DATA,TEXT,ENUM这些类型需要使用单引号包裹,而INT,FLOAT,DOUBLE这些类型则不用。

根据字段插入数据

在插入数据的时候,出了向全部的列插入数据,还可选择想要插入数据的列,而没有选择的列则不会被插入数据

insert into 表名(列名1,列名2,列名3) values ('数据1','数据2','数据3');

然后我们使用查询命令查看表中的数据:

可以看到,我们插入数据的列会存在数据,没有选择的列中则不会有数据。

MySQL修改与删除

删除数据库

drop database 数据库的名字;

在删除之前先查看一下我们已有的这些数据库,我们先创建一个空的数据库:

然后我们删除这个数据表:

drop database test;

然后这个数据库就被删除了。

关于修改数据库

目前MySQL没有提供修改数据库名称的方法,因为这曾导致一系列安全问题。

在老版本中 RENAME DATABASE可以修改数据库名称,这条命令在MySQL 5.1.7中被加入,但官方很快就发现这条命令所带来的危险,于是在MySQL 5.1.23中把这条命令移除。

事实上,数据库名几乎不会遇到必须修改的情况,如果你一定要这么做,比较安全的做法是重新建一个新库,然后将旧库中的数据转移到新库中,并且暂时不要删除l旧的数据库,以防数据遗失。

对一张表的修改

重命名

rename table 原名 to 新名字; alter table 原名 rename 新名字; alter table 原名 rename to 新名字;

这三种方式都可以做到修改数据表的名字,在修改之前,我们先来看一下原有的数据表:

可以看到我们现在又很多的数据表,现在我们要把user表的名字修改成client:

rename table user to client; alter table user rename client; alter table user rename to client;

三种方式选择其中一种使用即可,但是不能三种方式一起使用。

删除一张表

删除表的方式可以直接参考之前我们删除数据库的方式:

drop table 表名;

使用drop关键字进行删除,比如现在我要删除client表:

现在client表就已经被删除了。

对一列的修改(既对表结构的修改)

对表结构的修改,是本节实验的难点,有时候一些小的错误会造成不可挽回的后果,所以请细心操作。另外需要注意,非必要情况不要修改表结构。

增加一列

在已经创建好的表中增加一列使用以下命令

alter table 表名 add column 列名 数据类型 [约束];

现在book表中已经存在四列,现在要添加一列可以使用以下命令:

现在我们就在已经创建好的表中新添加了一列。

现在我们创建一个新的列,并添加一个约束:

对于约束的查看方式和表数据的查看方式略有不同,如果要查看表中的约束要使用另一种方法:

使用查看表结构的方式可以查看部分的约束。

在添加列的时候决定列的位置

在我们添加列的时候,默认新添加的列是在最后一个,但是如果我们想让添加的列向前移动,那么就需要使用一个新的关键字:after

alter table 表名 add 列名 数据类型 [约束] after 列名1;

当我们使用这个语句之后,我们新创建的列就会排在after关键字后面的列之后:

在上面的图中,我们新建了一列叫做information,并在最后添加了after name,那么我们创建的列就会在name之后出现。

除了使用after来调整创建列的时候列的位置,还可以使用first将创建的列直接放在第一个:

删除一列

删除表中的一列和刚才使用的新增─列的语句格式十分相似,只是把关键词ADD改为DROP,语句后面不需要有数据类型、约束或位置信息。具体语句格式:

alter table 表名 drop 列名;

在上图中我们删除了book表的job列,执行之后这个列就被删除了。

修改一列

这条语句其实不只可用于重命名一列,准确地说,它是对一个列做修改(CHANGE):

alter table 表名 change 原列名 新列名 数据类型 [约束];

现在我们要把class列修改成c_class:

当原列名和新列名相同的时候,指定新的数据类型或约束,就可以用于修改数据类型或约束。需要注意的是,修改数据类型可能会导致数据丢失,所以要慎重使用。

注意在修改列名的时候一定要带上数据结构,否则会修改失败。

先看一下现在的表结构:

现在要把sex列的数据类型修改成int,但是列名不变:

这样就完成了对一列数据库的修改。

修改表中的数据

先看一下现在表中的数据

使用命令对表中的数值进行修改:

update 表名 set 列名 = 值 , 列名 = 值 , 列名 = 值 where 条件;

现在我添加一条数据:

现在要修改第二列数据的address的值:

并且可以同时修改多个列的值:

这样就完成了对列中数据的修改。

注意这里在修改的时候一定要加where条件,否则会将所有的列都进行修改。

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

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

相关文章

QT的介绍和优点,以及使用QT初步完成一个登录界面

QT介绍 QT主要用于图形化界面的开发,QT是基于C编写的一套界面相关的类库,进程线程库,网络编程的库,数据库操作的库,文件操作的库…QT是一个跨平台的GUI图形化界面开发工具 QT的优点 跨平台,具有较为完备…

http实现文件分片下载

文章目录 检测是否支持HTTP Range 语法Range请求cURL示例单一范围多重范围条件式分片请求 Range分片请求的响应文件整体下载文件分片下载文本下载图片下载封装下载方法 HTTP分片异步下载是一种下载文件的技术,它允许将一个大文件分成多个小块(分片&#…

c++异步框架workflow分析

简述 workflow项目地址 : https://github.com/sogou/workflow workflow是搜狗开源的一个开发框架。可以满足绝大多数日常服务器开发,性能优异,给上层业务提供了易于开发的接口,却只用了少量的代码,举重若轻&#xff…

java+ssm+mysql电梯管理系统

项目介绍: 使用javassmmysql开发的电梯管理系统,系统包含管理员,监管员、安全员、维保员角色,功能如下: 管理员:系统用户管理(监管员、安全员、维保员);系统公告&#…

【算法训练-链表 四】【删除】:删除链表的倒数第N个节点、删除有序链表中的重复元素、删除有序链表中的重复元素II

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【删除有序链表中的重复元素】,使用【链表】这个基本的数据结构来实现,这个高频题的站点是:CodeTop&#xff0c…

分布式实时仿真系统-反射内存的应用

为了使分布式实时仿真系统(一个典型代表就行飞行模拟器)达到逼真的仿真效果,在系统内部,往往不仅需要对各种数据模型进行实时解算,而且需要一个延迟时间极低的确定性网络在系统之间传递数据,这样才能让各个子系统之间协调一致地工…

【Cisco Packet Tracer】交换机划分Vlan实验

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

优雅编码!Java与MongoDB的创新数据库架构

随着现代应用程序对数据存储和处理需求的不断增加,开发人员需要寻找更具创新性和灵活性的数据库架构来满足这些需求。在这样的背景下,Java与MongoDB的结合为开发人员提供了一种创新的数据库架构,为应用程序带来了无限可能。下面将探讨Java与M…

string容器的常用操作

string容器的常用操作 一、C语言中的字符串二、string容器1、概念2、特点 三、string类对象的常见构造1、构造2、实际构造函数3、测试代码4、运行结果 四、赋值运算符1、类型2、作用3、测试代码4、运行结果 五、string类对象的容量操作1、成员函数2、测试代码3、说明4、运行结果…

Qt应用开发(基础篇)——复选按钮 QCheckBox 单选按钮 QRadioButton

一、前言 QCheckBox类与QRadioButton类继承于QAbstractButton,QCheckBox是一个带有文本标签的复选框,QRadioButton是一个带有文本标签的单选按钮。 按钮基类 QAbstractButton QCheckBox QCheckBox复选框是一个很常用的控件,拥有开关(选中和未…

WPF Flyout风格动画消息弹出消息提示框

WPF Flyout风格动画消息弹出消息提示框 效果如图&#xff1a; XAML: <Window x:Class"你的名称控件.FlyoutNotication"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xam…

短信软件平台搭建最新客户端|移讯云短信系统

根据客户 和市场需要 增加了新的客户端 新的客户端客户登录后发送短信时可自行选择用哪个通道来进行发送短信。每个通道的充值数量不一样。 通过后台给客户分配可使用的通道&#xff0c;只有在后台给客户分配可使用的通道后客户在登录客户端发送短信时才可进行选择。 关于客…

整理mongodb文档:事务(一)

个人博客 整理mongodb文档:事务(一) 原文链接&#xff0c;个人博客 求关注&#xff0c;本文主要讲下怎么在mongose下使用事务&#xff0c;建议电脑端看 文章概叙 本文的开发环境为Nodejs&#xff0c;在‘单机模式’讲解最基本的事务概念。并没有涉及分片以及集群&#xff0…

垃圾回收 - 标记压缩算法

压缩算法是将标记清除算法与复制算法相结合的产物。 1、什么是标记压缩算法 标记压缩算法是由标记阶段和压缩阶段构成。 首先&#xff0c;这里的标记阶段和标记清除算法时提到的标记阶段完全一样。 接下来我们要搜索数次堆来进行压缩。压缩阶段通过数次搜索堆来重新填充活动对…

C#,《小白学程序》第十五课:随机数(Random)第二,统计学初步,数据统计的计算方法与代码

1 文本格式 /// <summary> /// 《小白学程序》第十五课&#xff1a;随机数&#xff08;Random&#xff09;第二&#xff0c;统计学初步&#xff0c;数据统计的计算方法与代码 /// 用随机数做简单的统计并用图形显示统计结果。 /// </summary> /// <param name&q…

vue中v-for循环数组使用方法中splice删除数组元素(每次都删掉点击的下面的一项)

总结&#xff1a;平常使用v-for的key都是使用index&#xff0c;这里vue官方文档也不推荐&#xff0c;这个时候就出问题了&#xff0c;我们需要key为唯一标识&#xff0c;这里我使用了时间戳&#xff08;new Date().getTime()&#xff09;处理比较复杂的情况&#xff0c; 本文章…

2020年12月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;字符三角形 描述 给定一个字符&#xff0c;用它构造一个底边长5个字符&#xff0c;高3个字符的等腰字符三角形。 输入 输入只有一行&#xff0c; 包含一个字符。 输出 该字符构成的等腰三角形&#xff…

C++ - 多态的实现原理

前言 本博客主要介绍C 当中 多态语法的实现原理&#xff0c;如果有对 多态语法 有疑问的&#xff0c;请看下面这篇博客&#xff1a; C - 多态语法 - 虚函数使用介绍-CSDN博客 探究&#xff0c;为什么多态的条件是那样的&#xff08;虚函数表&#xff09; 首先&#xff0c;调用…

qt day6 人脸识别

在C和C中static关键字的用法 static修饰局部变量、全局变量&#xff08;不能被外部引用extern|未初始化的值为0&#xff09;、函数&#xff08;不能被外部引用extern&#xff09;&#xff0c;不能修饰auto类型的指针&#xff08;因为计算机先为静态变量分配空间&#xff0c;后再…

重磅|Falcon 180B 正式在 Hugging Face Hub 上发布!

引言 我们很高兴地宣布由 Technology Innovation Institute (TII) 训练的开源大模型 Falcon 180B 登陆 Hugging Face&#xff01;Falcon 180B 为开源大模型树立了全新的标杆。作为当前最大的开源大模型&#xff0c;有180B 参数并且是在在 3.5 万亿 token 的 TII RefinedWeb 数据…