产品操作MySQL第2篇 – 设计一张表

MYSQL

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

At 2019/4/15 By David.Yang


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

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

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

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

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

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

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

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

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

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


数值类型


日期时间类型


字符串类型


数据类型文献:

https://www.w3cschool.cn/mysql/mysql-data-types.html


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

着更多是一种参考意义,

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


最常用的类型熟悉即可:

数值类型一般常用:int;

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

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


your first show time of create table!

设计一张学生表

SQL

CREATETABLE `analyst`.`students`  (

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

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

  `gender` tinyint(2) NOT NULL DEFAULT 0COMMENT '性别 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_name1data_type(size),

       column_name2data_type(size),

       column_name3data_type(size),

       ....

);

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

ENGINE = InnoDB CHARACTER SET = utf8

COLLATE = utf8_general_ci COMMENT = '学生表';


- 针对CREATE语句中的每个字段,包括以下内容


创建一张学生表

通过截图进行解释:

查看所有数据库

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

CREATETABLE `students`  (

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

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

  `gender` tinyint(2) NOT NULL DEFAULT 0COMMENT '性别 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

mysql>show tables;

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

| Tables_in_analyst |

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

|students          |

| test             |

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

2 rows in set (0.00 sec)


mysql>



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


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

SQL

mysql>desc students;



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


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

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

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

示例:

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

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;


-- 删除数据表

-- DROP TABLE `数据表名`;


SQL

mysql>DROP TABLE `test1`;

Query OK, 0 rows affected (0.02 sec)


mysql>show tables;



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


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


到此完事儿。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容