前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL数据库基础(七):DDL数据表操作

MySQL数据库基础(七):DDL数据表操作

作者头像
Lansonli
发布2024-03-19 10:05:46
670
发布2024-03-19 10:05:46
举报
文章被收录于专栏:Lansonli技术博客Lansonli技术博客

DDL数据表操作

特别注意:创建数据表必须有一个前提,首先要明确选择某一个数据库。

一、数据表的基本操作

1、数据表的创建

创建 => create

数据表 => table

创建 + 数据表 = create table 数据表名称

基本语法:

代码语言:javascript
复制
mysql> create table 数据表名称(
	字段1 字段类型 [字段约束],
	字段2 字段类型 [字段约束],
	...
); 

案例:创建一个admin管理员表,拥有3个字段(编号、用户名称、用户密码)

代码语言:javascript
复制
mysql> create database db_lanson;
mysql> use db_lanson;

use在MySQL中的含义代表选择,use 数据库名称相当于选择指定的数据库。而且use比较特殊,其选择结束后,其尾部可以不加分号;但是强烈建议所有的SQL语句都要加分号,养成一个好习惯。

代码语言:javascript
复制
mysql> create table tb_admin(
	id tinyint,
    username varchar(20),
    password char(32)
) engine=innodb default charset=utf8;

tinyint :微整型,范围-128 ~ 127,无符号型,则表示0 ~ 255

表示字符串类型可以使用char与varchar,char代表固定长度的字段,varchar代表变化长度的字段。

案例:创建一个article文章表,拥有4个字段(编号、标题、作者、内容)

代码语言:javascript
复制
mysql> use db_lanson;
mysql> create table tb_article(
	id int,
	title varchar(50),
	author varchar(20),
	content text
) engine=innodb default charset=utf8;

text :文本类型,一般情况下,用varchar存储不了的字符串信息,都建议使用text文本进行处理。

varchar存储的最大长度,理论值65535个字符。但是实际上,有几个字符是用于存放内容的长度的,所以真正可以使用的不足65535个字符,另外varchar类型存储的字符长度还和编码格式有关。1个GBK格式的占用2个字节长度,1个utf8格式的字符占用3个字节长度。gbk= 65532~65533/2,utf8 = 65532~65533/3

2、查询已创建数据表

显示 => show

数据表 => table

显示所有数据表(当前数据库)

代码语言:javascript
复制
mysql> use 数据库名称;
mysql> show tables;

显示数据表的创建过程(编码格式、字段等信息)

代码语言:javascript
复制
mysql> desc 数据表名称;
3、修改数据表信息
① 数据表字段添加

修改 => alter

数据表 => table

基本语法:

代码语言:javascript
复制
mysql> alter table 数据表名称 add 新字段名称 字段类型 first|after 其他字段名称;
选项说明:
first:把新添加字段放在第一位
after 字段名称:把新添加字段放在指定字段的后面

案例:在tb_article文章表中添加一个addtime字段,类型为date(年-月-日)

代码语言:javascript
复制
mysql> alter table tb_article add addtime date after content;
mysql> desc tb_article;
② 修改字段名称或字段类型

修改字段名称与字段类型(也可以只修改名称)

代码语言:javascript
复制
mysql> alter table tb_admin change username user varchar(40);
mysql> desc tb_admin;

仅修改字段的类型

代码语言:javascript
复制
mysql> alter table tb_admin modify user varchar(20);
mysql> desc tb_admin;
③ 删除某个字段
代码语言:javascript
复制
mysql> alter table tb_article drop 字段名称;
mysql> desc tb_article;
④ 修改数据表名称
代码语言:javascript
复制
rename table 旧名称 to 新名称;
4、删除数据表

删除 => drop

数据表 => table

代码语言:javascript
复制
mysql> drop table 数据表名称;

二、字段类型详解

1、整数类型

分类

类型名称

说明

tinyint

很小的整数

-128 ~ 127

smallint

小的整数

-32768 ~ 32767

mediumint

中等大小的整数

-8388608 ~ 8388607

int(integer)

普通大小的整数

-2147483648 ~ 2147483647

以上字段类型,都是指有符号型(有正负);无符号型我们可以通过unsigned关键字来进行表示,如tinyint unsigned代表的范围就是0 ~ 255(只有正数)

2、浮点类型

浮点类型(精度失真情况)和定点类型(推荐使用定点类型)

分类

类型名称

float

单精度浮点数,占用4个字节

double

双精度浮点数,占用8个字节

decimal(m,d)

定点数,decimal(10,2),占用情况,如果M>D,为M+2否则为D+2

decimal(10,2) :代表这个数的总长度为10 = 整数长度 + 小数长度,2代表保留2位小数

问题:float/double/decimal如何选择?

1)如果你要表示的浮点型数据转成二进制之后能被32位float存储(1个字节=8位),或者可以容忍截断,则使用float,这个范围大概为要精确保存6位数字左右的浮点型数据 比如10分制的店铺积分可以用float存储,小商品零售价格(1000块之内)

2)如果你要表示的浮点型数据转成二进制之后能被64位double存储,或者可以容忍截断,这个范围大致要精确到保存13位数字左右的浮点型数据 比如汽车价格,几千万的工程造价

3)相比double,已经满足我们大部分浮点型数据的存储精度要求,如果还要精益求精,则使用decimal定点型存储 比如一些科学数据,精度要求很高的金钱

3、日期类型

份额里

类型名称

year

YYYY 1901~2155

time

HH:MM:SS -838:59:59~838:59:59

date

YYYY-MM-DD 1000-01-01~9999-12-3

datetime

YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59

timestamp

YYYY-MM-DD HH:MM:SS 1970~01~01 00:00:01 UTC~2038-01-19 03:14:07UTC

4、文本

类型名称

说明

char(m)

m为0~255之间的整数定长(固定长度)

varchar(m)

m为0~65535之间的整数变长(变化长度)

text

允许长度0~65535字节

mediumtext

允许长度0~167772150字节

longtext

允许长度0~4294967295字节

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DDL数据表操作
    • 一、数据表的基本操作
      • 1、数据表的创建
      • 2、查询已创建数据表
      • 3、修改数据表信息
      • 4、删除数据表
    • 二、字段类型详解
      • 1、整数类型
      • 2、浮点类型
      • 3、日期类型
      • 4、文本
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档