MySQL学习之路_数据的组织方式-表

本文介绍了MySQL中数据的组织方式,重点讲解了三大数据类型:数值、文本和日期。接着阐述了如何创建表,设置列的数据类型,并讨论了主键的重要性。此外,还涵盖了查询数据库表、更改列类型、添加/删除列以及修改表的相关操作。
数据库组织数据的方式

前面已经讲过了创建数据库相关的(没看的,可以点此链接 跳过去),既然数据库已经创建好了,那么我们就要开始往里面装数据了,要怎么装呢?MySQL(不止MySQL是这样,Oracle等其它也是一样)组织数据是像excel表格一样。首先创建一张表,设置表的列的保存的内容是什么,插入进表的一行数据称为一个记录。
在具体到代码创建表之前,我们先来看看MySQL的数据类型,毕竟,知道了数据类型,我们才能为每个表列保存的值设置合适的类型。

MySQL三大数据类型

MySQL数据类型具体可以分为三大类:数值、文本、日期。

数值
数值占用字节说明
BIT1/8位类型,默认值1范围(1-64)
TINYINT[UNSIGNED][ZEROFILL]1带符号的范围是-128到127。无符号0-255。相当于java的byte
BOOL, BOOLEAN1范围跟BIT一样,用0、1分别代表false、true。存储时,true和false会被转换为1和0存储
SAMLLINT[UNSIGNED][ZEROFILL]2(相当于java的short)
MEDIUMINT[UNSIGNED][ZEROFILL]3范围为2的24次方
INT[UNSIGNED][ZEROFILL]4范围2的32次方(相当于java的int)
BIGINT[UNSIGNED][ZEROFILL]8范围2的64次方(相当于java的long类型)
FLOAT[(M,D)][UNSIGNED][ZEROFILL]4范围2的32次方,M指定显示数字的个数,D指定小数位数
DOUBLE[(M,D)][UNSIGNED][ZEROFILL]8范围2的64次方。M指定显示数字的个数,D指定小数位数
文本、二进制
字符串类型占用字节范围说明
CHAR(size)0-255定长字符串
VARCHAR(size)0-65535变长字符串
TYINTBLOB,MEDIUMBLOB,LONGBLOB0-255, 0-65535, 0-16777215, 0-4294 967295占用字节不同的二进制数据(音乐,图片,视频)
TINYTEXT, MEDIUMTEXT,LONGTEXT0-255, 0-65535, 0-16777215, 0-4294 967295占用字节数不同的文本类型(字符串)
VARBINARY(M)允许长度0-M个字节的定长字节符串,值的长度+1个字节
BINARY(M)M允许长度0-M个字节的定长字节符串

需要注意的是 :CHARVARCHAR 类型定长和可变的意思是,一旦CHAR类型确定了长度,譬如CHAR(10),表示10个字节的字符,那么它所占的字节就总是10个字节,即使存放的数据没有10个字节,它所占空间也是10个字节,VARCHAR和它正好正好相反,譬如VARCHAR(10) 能保存10个字符,但是如果你的数据小于10,那么实际长度取决于实际保存的数据长度。但是如果要保存的数据超过了所声明的大小,SQL语句会报错

日期
类型占用字节范围格式用途
DATE41000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3‘-838:59:59’/’838:59:59’ HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY 年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:00/2037 年某时YYYYMMDD HHMMSS混合日期和时间值,时间戳

MySQL三大数据类型上面都已经列出来了,数据类型不止说明了要保存的值是什么类型,还说明了保存值得范围是多少。现在我们就可以开始就创建表来存储数据。

创建表

在创建表之前,应该登入DBMS,然后USE 所创建的数据库,才能创建表。创建表的语法如下:

CREATE TABLE 数据表名
    (列声明);

其中列声明之间用逗号隔开。看例子:

CREATE TABLE example
    (id TYINT(2) NOT NULL PRIMARY KEY,
    name VARCHAR(10) NOT NULL,
    );

上面语句在当前使用的数据库创建了一个名为example的表,这个表包括两个字段—idname,类型分别是TYINTVARCHARNOT NULL 表示数据的值不能是NULL,字段id 后面的PRIMARY KEY 表示字段id 是主键。
主键的意思是一个表里面独一无二的一个值,靠主键能唯一索引一个表内的一个记录。因为一个表内的数据你不能保证数据值的唯一性,那么当你要查询某条记录时,就比较麻烦。设定主键就便于查询想查询的记录。

查询数据库的表

在你创建一个表后,想要查看是否已经创建成功,或者想查看当前操作的数据库所包含的表可以使用一下语句:

SHOW TABLES;

下面语句可以查询创建详情

SHOW CREATE TABLE 表名;
更改表的列类型

在创建表后,可以通过一下语句查看表字段的详情

SHOW COLUMNS FROM 表名;

或者

DESC 表名;

上述两条语句都可以实现对表字段情况的查询,且结果是一样的,DESCDESCRIBE 是一样的, 可以互换,为了方便才那样写。
此时如果此时发现需要更改字段的类型和名字,如下语句可以做到:

-- 更改列类型
ALTER TABLE 表名 MODIFY 列名 类型;

上面的-- 是MySQL的注释。
更改上述创建的表example 的列id 的类型为INT

ALTER TABLE example id INT;
-- 更改列名和类型
ALTER TABLE CHANGE COLUMN 列名 新列名 类型;

更改上述创建的表example 的列id 的名字和类型为useridSAMLLINT

-- 更改列名和类型
ALTER TABLE CHANGE COLUMN  id userid SMALLINT;
添加/删除列

添加列的语句也是ALTER TABLE

-- 默认在添加在列的最后
ALTER TABLE 表名 ADD 列名 类型;
-- 添加到列的最前面
ALTER TABLE 表名 ADD 列名 类型 frist;
-- 添加到指定列之后
ALTER TABLE 表名 ADD 列名 类型 after 表中已存在的列名

上面语句都很简单,就不在做示例了。
有添加就有删除,现在来看看删除列:

ALTER TABLE 表名 drop 指定的列名

删除列很简单,同样,也不做示例了。

修改表相关

修改表相关这里,我们就只讲下如何修改表的字符集和表名。
修改表的字符集:

ALTER TABLE 表名 CHARACTER SET 字符集;

修改表名:

RENAME TABLE 表名 TO 新表名;

上面都非常简单,就不多说了。


这次内容比较多,写博客也挺费时间的,打字慢,花了将近三小时才弄完,不敢相信!w(゚Д゚)w,看来还要多多加油了。

我自己也能力有限,如果有错的地方,敬请指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值