天天看点

mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表

mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表

本资料为产品岗位作为日常工作参考,语言口语化

At 2019/4/16 By David.Yang

了解数据表的“字段”概念

我们前面说到,Excel、数据表都有一个表头,

比如学生号、姓名、性别、年龄、地址、生日

这些表头中的项我们在数据库中称之为字段(field)。

字段有自己的数据类型、大小、用途,比如:

学生号,明显是一个数值,姓名明显是一个文本。

MySQL中对数据类型有相应的规范,

你在设计自己的数据表的时候,

根据自己的业务,业务中的数据类型,

去规范你需要的字段类型即可。

数值类型

mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表
mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表

日期时间类型

mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表

字符串类型

mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表

数据类型文献:

MySQL 数据类型_w3cschool​www.w3cschool.cn

mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表

以上数据类型虽然很多,但不是你需要将他们都死记硬背下来,

着更多是一种参考意义,

因为字段怎么确定类型、确定长度是你根据自己的业务来确定的。

最常用的类型熟悉即可:

数值类型一般常用:int;

日期类型:我们一般也使用数值类型存事件戳,使用的时候程序端自己转成时间格式;

文本类型一般常用:varchar、text、longtext

your first show time of create table!

设计一张学生表

SQL

CREATE TABLE `analyst`.`students` (

`number` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号',

`name` varchar(50) NULL COMMENT '姓名',

`gender` tinyint(2) NOT NULL DEFAULT 0 COMMENT '性别 0未知 1女 2男',

`age` int(4) NOT NULL DEFAULT 0 COMMENT '年龄',

`dynasty` varchar(10) NULL COMMENT '朝代',

`address` varchar(255) NULL COMMENT '地址',

`class` int(2) NULL COMMENT '班级',

`deleted` int(2) NOT NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',

PRIMARY KEY (`number`),

KEY `deleted` (`deleted`)

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '学生表';

使用SQL创建数据表有固定的语法:

CREATE TABLE table_name

(

column_name1 data_type(size),

column_name2 data_type(size),

column_name3 data_type(size),

....

);

  • 针对CREATE 语句尾部我们可以补充(ENGINE)类型、(CHARACTER)字符、(COMMENT)注释等

ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '学生表';

  • 针对CREATE语句中的每个字段,包括以下内容
mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表
mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表

创建一张学生表

通过截图进行解释:

查看所有数据库

SQL

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| analyst |

+--------------------+

2 rows in set (0.00 sec)

mysql>

选择要操作的数据库(重要,憋手贱操作错误的数据库)

SQL

mysql> use analyst;

Database changed

mysql>

Database changed提示即表示你已经成功切换到想要操作的数据库

查看有哪些数据表

mysql> show tables;

+-------------------+

| Tables_in_analyst |

+-------------------+

| test |

+-------------------+

1 row in set (0.01 sec)

这个库中已经存在的数据表有哪些,这里我之前已经创建了个test数据表,

如果0 row in set则表示当前数据库是空的,没有数据表。

创建已经设计好的数据表

SQL

CREATE TABLE `students` (

`number` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号',

`name` varchar(50) NULL COMMENT '姓名',

`gender` tinyint(2) NOT NULL DEFAULT 0 COMMENT '性别 0未知 1女 2男',

`age` int(4) NOT NULL DEFAULT 0 COMMENT '年龄',

`dynasty` varchar(10) NULL COMMENT '朝代',

`address` varchar(255) NULL COMMENT '地址',

`class` int(2) NULL COMMENT '班级',

`deleted` int(2) NOT NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',

PRIMARY KEY (`number`),

KEY `deleted` (`deleted`)

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '学生表';

结果如下

mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表

再查看创建的数据表

SQL

mysql> show tables;

+-------------------+

| Tables_in_analyst |

+-------------------+

| students |

| test |

+-------------------+

2 rows in set (0.00 sec)

mysql>

mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表

我们可以看到statudents学生表已经创建好了。

如果对创建的数据表正确性不放心,也可以通过下面SQL查看表结构

SQL

mysql> desc students;
mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表

到此为止,我们已经能够创建一张数据表了。

不想要一张数据表该怎么办?

数据表支持直接删除,在生产环境中请谨慎操作,

删库一时爽,悔时要剁手。

示例:

我先复制一张表出来,然后再演示删除一张表。

SQL

mysql> CREATE TABLE `test1` SELECT * FROM `test`;

Query OK, 1 row affected (0.05 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> show tables;
mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表

-- 删除数据表

-- DROP TABLE `数据表名`;

SQL

mysql> DROP TABLE `test1`;

Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
mysql 从一个表insert到另一张表_产品操作MySQL第2篇 – 设计一张表

我们会发现之前的test1表已经被删除掉了。

本片讲解怎么设计一张数据表,以及创建一张自己的数据表,

到此完事儿。