MySQL---数据类型和表的基本操作

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/74027710

数据类型

整型

  • TINYINT 1个字节
  • SMALLINT 2个字节
  • MEDIUMINT 3个字节
  • INT 4个字节
  • BIGINT 8个字节

可以用UNSIGNED表示无符号整形

浮点型

  • FLOAT[(M,D)] M总共位数,D小数位数,精度时小数点后7位
  • DOUBLE[(M,D)] M总共位数,D小数位数
类型 大小 范围(有符号) 范围(无符号)UNSIGNED 用途
TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT(M,D) 4 字节 (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度
浮点数值 M表示总位数,D表示小数位数
DOUBLE(M,D) 8 字节 (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度
浮点数值 M表示总位数,D表示小数位数
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

日期

类型 大小(字节) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 ‘-838:59:59’ ~ ‘838:59:59’ HH:MM:SS 时间值或持续时间
YEAR 1 1901 ~ 2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 1970-01-01 00:00:00 ~ 2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

字符型

  • CHAR(M) : M个字节(0~255)定长
  • VARCHAR(M) : 变长(0~65535)
  • TINYTEXT : 1个字节(0~255)
  • TEXT : 2个字节
  • MEDIUMTEXT : 3个字节
  • LONGTEXT : 4个字节
  • ENUM(‘value1’,’value2’) : 枚举值(最多65535个)
  • SET(‘value1’,’value2’) : 集合,最多64个成员

创建表

  • USE 使用/打开数据库
  • SELECT DATABASE() 显示当前打开的数据库

*CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type,

)*

mysql> CREATE TABLE tb1(
    -> username VARCHAR(20),
    -> age TINYINT UNSIGNED,
    -> salary FLOAT(8,2) UNSIGNED
    -> );

查看表

SHOW TABLES [FROM db_name] [LIKE ‘pattern’ | WHERE expr]

可以查看其他数据库的表,当前数据库不会改变

查看表结构

  • SHOW COLUMNS FROM tbl_name
  • DESCRIBE

插入记录

INSERT [INTO] tbl_name [(col_name,…)]VALUES(val,…)
如果省略col_name则必须插入所有字段

    mysql> INSERT INTO tb1 VALUES('TOM',20,5000.00);
    Query OK, 1 row affected (0.34 sec)
    mysql> INSERT tb1 (username,age) VALUES('jhon',25);
    Query OK, 1 row affected (0.09 sec)

查询

SELECT expr,… FROM tbl_name

mysql> SELECT * FROM tb1;
+----------+------+---------+
| username | age  | salary  |
+----------+------+---------+
| TOM      |   20 | 5000.00 |
| jhon     |   25 |    NULL |
+----------+------+---------+
2 rows in set (0.00 sec)

约束

  • AUTO_INCREMENT 自增
  • [PRIMARY] KEY 主键 自动禁止为null
  • UNIQUE KEY 唯一性,可以存空值
  • DEFAULT 默认值
  • NULL/NOT NULL 是否允许空值

自动增加

AUTO_INCREMENT 起始值为1递增量为1 ,该字段必须是主键

可以自己指定自增主键的值,如果不指定,则在最大的序号上自增

mysql> CREATE TABLE tb2(
    -> id INT(5) PRIMARY KEY AUTO_INCREMENT,
    -> username VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.37 sec)

UNIQUE KEY

唯一性约束:

mysql> CREATE TABLE tb3(
    -> id INT(5) KEY AUTO_INCREMENT,
    -> username VARCHAR(20) UNIQUE KEY ,
    -> age INT(5)
    -> );

mysql> SHOW COLUMNS FROM tb3;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int(5)      | NO   | PRI | NULL    | auto_increment |
| username | varchar(20) | YES  | UNI | NULL    |                |
| age      | int(5)      | YES  |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+

DEFAULT 默认

mysql> CREATE TABLE tb4(
    -> id INT(5) PRIMARY KEY AUTO_INCREMENT,
    -> username VARCHAR(20) UNIQUE KEY,
    -> sex ENUM('MEN','WOMEN','NONE') DEFAULT 'MEN'
    -> );
Query OK, 0 rows affected (0.26 sec)

mysql> DESCRIBE tb4;
+----------+----------------------------+------+-----+---------+----------------+
| Field    | Type                       | Null | Key | Default | Extra          |
+----------+----------------------------+------+-----+---------+----------------+
| id       | int(5)                     | NO   | PRI | NULL    | auto_increment |
| username | varchar(20)                | YES  | UNI | NULL    |                |
| sex      | enum('MEN','WOMEN','NONE') | YES  |     | MEN     |                |
+----------+----------------------------+------+-----+---------+----------------+

mysql> INSERT INTO tb4 (username) VALUES('TOM');
Query OK, 1 row affected (0.07 sec)

mysql> select * from tb4;
+----+----------+------+
| id | username | sex  |
+----+----------+------+
|  1 | TOM      | MEN  |
+----+----------+------+
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL 数据库
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
44 5
|
6月前
|
存储 关系型数据库 MySQL
MySQL数据库的数据类型、语法和高级查询
MySQL数据库的数据类型、语法和高级查询
89 0
|
2月前
|
存储 关系型数据库 MySQL
MySQL支持多种数据类型
MySQL支持多种数据类型
138 3
|
2月前
|
存储 关系型数据库 MySQL
什么是mysql的数据类型?
什么是mysql的数据类型?
53 2
|
2月前
|
存储 关系型数据库 MySQL
MySQL数据类型
MySQL数据类型
61 2
|
4月前
|
关系型数据库 MySQL Linux
数据类型和运算符(MySQL服务器的安装,MySQL客户端,数据类型,运算符,MySQL的语法规范)
无论是对于初学者还是有经验的开发者,了解MySQL的安装、客户端使用、数据类型、运算符和语法规范都是至关重要的。这不仅有助于高效地管理和查询数据,而且对于设计和实现数据库解决方案来说是基础工作。通过深入学习和实践这些知识,您可以更好地发挥MySQL数据库的强大功能。
37 2
|
4月前
|
存储 关系型数据库 MySQL
MySQL 中的 BLOB 数据类型深入解析
【8月更文挑战第31天】
592 0
|
4月前
|
存储 关系型数据库 MySQL
|
4月前
|
存储 XML 关系型数据库
深入理解MySQL中的BLOB和TEXT数据类型
【8月更文挑战第31天】
746 0
|
4月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
539 0