MySQL学习笔记_2_MySQL创建数据表(上)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL创建数据表(上) 一、创建数据表的SQL语句模型【弱类型】 CREATETABLE [IF NOT EXISTS] 表名称( 字段名1列的类型[属性][索引], ...

MySQL创建数据表(上)

一、创建数据表的SQL语句模型【弱类型】

CREATETABLE [IF NOT EXISTS] 表名称(

字段名1列的类型[属性][索引],

字段名2 列的类型[属性][索引],

字段名n列的类型[属性][索引],

[表属性][表字符集]

【表名称,字段名需要自己来命名】

SQL语句并不区分大小写,但是一个文件名:在Windows下不区分大小写,但是在 Linux/UNIX下是区分大小写的】

【命名规则: 1、有意义(英文,英文组合或英文缩写)

2、自己定的名称最好小写。

3SQL语句最好大写。】


1 CREATETABLE users(

idINT,

nameCHAR(32)

);

2 SHOWTABLES;

3 DESCusers;

4 SELECT* FROM users;


二、数据值与列类型

都以空间大小来细分,能够存下即可!


1、数值型

整型(整数):

非常小整数型 1字节 -128127 0255(无符号) TINYINIT

较小整数型 2字节 -3276832767 SMALLINIT

中等大小整数型 3字节 016777215 MEDIUMIINT

标准整数型 4字节 -21474836482147483647 INT

大整数型 8字节 BIGINT

【可以添加属性:UNSIGNED

浮点型(小数):

FLOATMN 4字节 【长度M,保留小数点后N位】

DOUBLEMN 8字节 【五舍六入】

DECIMALMN M+2字节 【定点数,以字符串形式存储数据, 更精确的保存数据,但是效率会有所折扣。】【四舍五入】

【浮点数会存在误差,因此在对数字敏感的时候,需要用定点数来存储!】

3、字符型

MySQL支持以单引号与双引号表示字符串类型。

如“MySQL”'MySQL'相同

char(M) 最大255 固定长度字符串

varchar(M) 最大255 可变长度字符串

char(4) varchar(4)// 永远比字符多一个字节

'' 4 '' 1字节

'a' 4 'a' 2字节

'abcd' 4 'abcd' 5字节

'abcdefg' 4 'abcdefgh' 5字节


char类型会截取尾部的空格;

示例: CREATETABLE IF NOT EXISTS tab(v varchar(4),c char(4));

INSERTINTO tab(v,c) VALUES(“ab ”,”ab ”);

SELECTCONCAT(v,”#”),CONCAT(c,”#”) FROM tab;


最佳实践:

固定长度,推荐使用char类型(可能会浪费一定空间)。

可变长度,推荐使用varchar类型(可能会付出一些性能损耗)


text 文本数据:文章,日志 长度:2^16-1

MEDIUMTEXT

LONGTEXT


blob 二进制数据:照片,电影 长度:2^16-1

MEDIUMBLOB

LONGBLOB

【虽然没法通过SQL语句将照片,电影,压缩包等二进制文件插入到数据库中, 但是我们可以通过C++/Java等编程语言将二进制文件读成二进制数据流,然 后保存到数据库中】

ENUM 枚举 12字节

ENUM(“one”,”two”,”three”,”four”)~65535

一次只能有一个值


SET集合 12348字节

SET(“one”,”two”,”three”,”four”)~64

一次可以有多个值,用“,”隔开。

4、日期型

DATE YYYY-MM-DD //如果位数充足,可以不用加‘-’

TIME hh:mm:ss //位数充足,可以忽略‘:’,位数不足,从后面截取

DATETIME YYYY-MM-DDhh:mm:ss

TIMESTAMP YYYYMMDDhhmmss //位数不足时,不可忽略前导0

YEAR YYYY


【创建数据表时,最好不要使用这些时间值,最好使用C++/Java等编程语言中的整数来保存 时间,这样更方便计算,如C++中的intPHP中时间戳1970-1-10:0:0


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
21天前
|
SQL 存储 关系型数据库
轻松入门MySQL:玩转数据表的增、删、改、查(4)
轻松入门MySQL:玩转数据表的增、删、改、查(4)
|
3月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
49 0
|
3月前
|
关系型数据库 MySQL 数据库
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
49 0
|
2月前
|
关系型数据库 MySQL
MySQL学习笔记
MySQL学习笔记
|
2月前
|
安全 关系型数据库 MySQL
某教程学习笔记(一):09、MYSQL数据库漏洞
某教程学习笔记(一):09、MYSQL数据库漏洞
19 0
|
2月前
|
存储 关系型数据库 MySQL
《高性能Mysql》学习笔记(二)
《高性能Mysql》学习笔记(二)
136 0
|
2月前
|
存储 SQL 关系型数据库
《高性能Mysql》学习笔记(一)
《高性能Mysql》学习笔记(一)
94 0
|
2月前
|
存储 缓存 关系型数据库
Mysql专栏 - 缓冲池补充、数据页、表空间简述
Mysql专栏 - 缓冲池补充、数据页、表空间简述
25 0
|
3月前
|
SQL 关系型数据库 MySQL
MySQL操作数据表(DDL语句)
MySQL操作数据表(DDL语句)
42 1
|
3月前
|
存储 SQL 关系型数据库
【MySQL进阶之路丨第七篇】MySQL数据类型及数据表的创建与删除
【MySQL进阶之路丨第七篇】MySQL数据类型及数据表的创建与删除
34 0