本资料为产品岗位作为日常工作参考,语言口语化
At 2019/4/16 By David.Yang
了解数据表的“字段”概念
我们前面说到,Excel、数据表都有一个表头,
比如学生号、姓名、性别、年龄、地址、生日
这些表头中的项我们在数据库中称之为字段(field)。
字段有自己的数据类型、大小、用途,比如:
学生号,明显是一个数值,姓名明显是一个文本。
MySQL中对数据类型有相应的规范,
你在设计自己的数据表的时候,
根据自己的业务,业务中的数据类型,
去规范你需要的字段类型即可。
数值类型
日期时间类型
字符串类型
数据类型文献:
MySQL 数据类型_w3cschoolwww.w3cschool.cn
以上数据类型虽然很多,但不是你需要将他们都死记硬背下来,
着更多是一种参考意义,
因为字段怎么确定类型、确定长度是你根据自己的业务来确定的。
最常用的类型熟悉即可:
数值类型一般常用: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语句中的每个字段,包括以下内容
创建一张学生表
通过截图进行解释:
查看所有数据库
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 = '学生表';
结果如下
再查看创建的数据表
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表已经被删除掉了。
本片讲解怎么设计一张数据表,以及创建一张自己的数据表,
到此完事儿。